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

bantly56

Активный участник
Автор темы
48
7
27
Объясните , как создать телепорт с точки A в точку B (подобие входа в здание с закрытым интерьером). Заранее благодарен за вашу помощь!
 

UberDron

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

VadimMan

Участник портала
6
1
5
Разве ты таком случае телепорт исходный не будет утерян? Как создать абсолютно новый телепорт из а точки в б ?
 

Evbej

Начинающий специалист
high coder
86
31
50
Объясните , как создать телепорт с точки 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
Реакции: Baklan