• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Как создать точку телепорта?

bantly56

Начинающий специалист
Автор темы
15 Сен 2020
31
8
52
Объясните , как создать телепорт с точки A в точку B (подобие входа в здание с закрытым интерьером). Заранее благодарен за вашу помощь!
 

UberDron

Участник портала
15 Сен 2020
13
10
22
Заходишь в Fabrication.cs там прописан код перехода в интерьер клубов, тебе нужен будет найти координаты EnterAlcoShop and ExitAlcoShop, то есть координаты входа и выхода, прописываешь туда свои координаты, которые есть на вход и выход и значение которое там есть перед координатами, айди фракции ставишь 0, если нужна будет помощь пиши мне в дискорд AnDrey#8756
 
Последнее редактирование:
  • Wow
Реакции: Baklan

VadimMan

Начинающий специалист
17 Дек 2020
49
13
65
Разве ты таком случае телепорт исходный не будет утерян? Как создать абсолютно новый телепорт из а точки в б ?
 

Evbej

Начинающий специалист
high coder
15 Сен 2020
103
43
60
Объясните , как создать телепорт с точки A в точку B (подобие входа в здание с закрытым интерьером). Заранее благодарен за вашу помощь!
Объясню на примере фракции Merryweather
1) Заходишь в main.cs и в public void ClientEvent_interactionPressed(Player player, params object[] arguments)
ищешь
C#:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                        Fractions.Merryweather.interactPressed(player, id);
Добавляешь свободные кейсы, к примеру 572 и 573
получается так:
C#:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 572:
                    case 573:
                        Fractions.Merryweather.interactPressed(player, id);
2) Переходим к самой фракции, в Merryweather.cs
Ищешь public static List<Vector3> Coords = new List<Vector3>
и добавляешь свои координаты к ним, и они получат id считая от 0, к примеру 4 и 5
Получается так:

C#:
            new Vector3(1571.831, 2240.648, 78.40011), // 0
            new Vector3(2154.641, 2921.034, -62.82243), // 1
            new Vector3(2033.842, 2942.104, -62.82434), // 2
            new Vector3(2155.425, 2921.066, -81.99551), // 3
            new Vector3(Твои координаты точки A), // 4
            new Vector3(Твои координаты точки B), // 5
3) Создаём колшейн
в public void OnResourceStartHandler() ко всем колшейнам добавляешь

C#:
                Cols.Add(4, NAPI.ColShape.CreateCylinderColShape(Coords[4], 1f, 2, 0)); //4 == порядку координат в public static List
                Cols[4].OnEntityEnterColShape += mws_OnEntityEnterColShape;
                Cols[4].OnEntityExitColShape += mws_OnEntityExitColShape;
                Cols[4].SetData("INTERACT", 572); //572 кейс выполняемый  при нажатии
                NAPI.Marker.CreateMarker(1, Coords[4] - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 1, new Color(0, 116, 194, 220)); //создание маркера

                Cols.Add(5, NAPI.ColShape.CreateCylinderColShape(Coords[5], 1f, 2, 0));
                Cols[5].OnEntityEnterColShape += mws_OnEntityEnterColShape;
                Cols[5].OnEntityExitColShape += mws_OnEntityExitColShape;
                Cols[5].SetData("INTERACT", 573);
                NAPI.Marker.CreateMarker(1, Coords[5] - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 1, new Color(0, 116, 194, 220));
4) Добавляем действие после нажатия, в Merryweather.cs
в public static void interactPressed(Player player, int interact)

Добавляем это
C#:
                case 572:
                case 573:
                    if (player.IsInVehicle) return; //проверка, в машине ли игрок
                    if (player.HasData("FOLLOWING")) // проверка, тащит ли игрока мент
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                        return;
                    }
                    if(Main.Players[player].FractionID != 17) //прооверка на фракцию
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не состоите в Merryweather", 3000);
                        return;
                    }
                    if (interact == 572) NAPI.Entity.SetEntityPosition(player, Coords[5] + new Vector3(0, 0, 1.12)); //тп из координаты 4 в координату 5
                    else if (interact == 573) NAPI.Entity.SetEntityPosition(player, Coords[4] + new Vector3(0, 0, 1.12)); // и наоборот
                    return;

Аналогично с другими фракциями, работами или чем-нибудь ещё
 
  • Like
Реакции: nettkom и Baklan

Deja-vu

Специалист
29 Сен 2020
415
55
95
можно на js?
 

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
588
276
161
29
Объясните , как создать телепорт с точки A в точку B (подобие входа в здание с закрытым интерьером). Заранее благодарен за вашу помощь!
JavaScript:
/*Создадим колшейп по координатам, допустим это вход в дом.*/
let colshape = mp.colshapes.newCuboid(`Ваши координаты входа - x`, `Ваши координаты входа - y`, `Ваши координаты входа - z`, 2/*ширина*/, 2/*глубина*/, 2/*высота*/);
/*Зададим ему имя чтобы была возможность определить именно этот колшейп*/
colshape.name = 'enter';
/*Зарегистрируем событие входа в колшейп*/
mp.events.add("playerEnterColshape", (player, shape) => {
    /*Проверим, в тот ли мы колшейп попали*/
    if(shape.name === 'enter'){
        /*Есл попали в нужный колшейп, устанавливаем необходимые координаты игроку(телепортируем в интерьер)*/
        player.position = new mp.Vector3(`координата x - интерьера`,`координата y - интерьера`,`координата z - интерьера`)
    }
});
 
Последнее редактирование:

Deja-vu

Специалист
29 Сен 2020
415
55
95
JavaScript:
/*Создадим колшейп по координатам, допустим это вход в дом.*/
let colshape = mp.colshapes.newCuboid(`Ваши координаты входа - x`, `Ваши координаты входа - y`, `Ваши координаты входа - z`, 2/*ширина*/, 2/*глубина*/, 2/*высота*/);
/*Зададим ему имя чтобы была возможность определить именно этот колшейп*/
colshape.name = 'enter';
/*Зарегистрируем событие входа в колшейп*/
mp.events.add("playerEnterColshape", (player, shape) => {
    /*Проверим, в тот ли мы колшейп попали*/
    if(shape.name === 'enter'){
        /*Есл попали в нужный колшейп, устанавливаем необходимые координаты игроку(телепортируем в интерьер)*/
        player.position = new mp.Vector3(`координата x - интерьера`,`координата y - интерьера`,`координата z - интерьера`)
    }
}
1644170984780.png

Что делать?
 

djuvi

Активный участник
15 Фев 2022
3
0
38
Объясню на примере фракции Merryweather
1) Заходишь в main.cs и в public void ClientEvent_interactionPressed(Player player, params object[] arguments)
ищешь
C#:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                        Fractions.Merryweather.interactPressed(player, id);
Добавляешь свободные кейсы, к примеру 572 и 573
получается так:
C#:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 572:
                    case 573:
                        Fractions.Merryweather.interactPressed(player, id);
2) Переходим к самой фракции, в Merryweather.cs
Ищешь public static List<Vector3> Coords = new List<Vector3>
и добавляешь свои координаты к ним, и они получат id считая от 0, к примеру 4 и 5
Получается так:

C#:
            new Vector3(1571.831, 2240.648, 78.40011), // 0
            new Vector3(2154.641, 2921.034, -62.82243), // 1
            new Vector3(2033.842, 2942.104, -62.82434), // 2
            new Vector3(2155.425, 2921.066, -81.99551), // 3
            new Vector3(Твои координаты точки A), // 4
            new Vector3(Твои координаты точки B), // 5
3) Создаём колшейн
в public void OnResourceStartHandler() ко всем колшейнам добавляешь

C#:
                Cols.Add(4, NAPI.ColShape.CreateCylinderColShape(Coords[4], 1f, 2, 0)); //4 == порядку координат в public static List
                Cols[4].OnEntityEnterColShape += mws_OnEntityEnterColShape;
                Cols[4].OnEntityExitColShape += mws_OnEntityExitColShape;
                Cols[4].SetData("INTERACT", 572); //572 кейс выполняемый  при нажатии
                NAPI.Marker.CreateMarker(1, Coords[4] - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 1, new Color(0, 116, 194, 220)); //создание маркера

                Cols.Add(5, NAPI.ColShape.CreateCylinderColShape(Coords[5], 1f, 2, 0));
                Cols[5].OnEntityEnterColShape += mws_OnEntityEnterColShape;
                Cols[5].OnEntityExitColShape += mws_OnEntityExitColShape;
                Cols[5].SetData("INTERACT", 573);
                NAPI.Marker.CreateMarker(1, Coords[5] - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 1, new Color(0, 116, 194, 220));
4) Добавляем действие после нажатия, в Merryweather.cs
в public static void interactPressed(Player player, int interact)

Добавляем это
C#:
                case 572:
                case 573:
                    if (player.IsInVehicle) return; //проверка, в машине ли игрок
                    if (player.HasData("FOLLOWING")) // проверка, тащит ли игрока мент
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000);
                        return;
                    }
                    if(Main.Players[player].FractionID != 17) //прооверка на фракцию
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не состоите в Merryweather", 3000);
                        return;
                    }
                    if (interact == 572) NAPI.Entity.SetEntityPosition(player, Coords[5] + new Vector3(0, 0, 1.12)); //тп из координаты 4 в координату 5
                    else if (interact == 573) NAPI.Entity.SetEntityPosition(player, Coords[4] + new Vector3(0, 0, 1.12)); // и наоборот
                    return;

Аналогично с другими фракциями, работами или чем-нибудь ещё
Имя coords не существует в данном контексте..