This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Бесконечный спавн машин друг на друге в автосалоне

QWEQW123

Новый участник
6 Сен 2022
1
0
1
Всем привет, подскажите пожалуйста как можно по фиксить бесконечный спавн машин еще и друг на друге. В чем суть? У меня в автосалоне при выборе машин, одна спавнится на другой, то есть выбрал допустим neon потом primo, но при этом первая машина (neon) осталась на месте, а вторая просто сверху на первой заспавнилась. Даже, если просто одну и ту же выбирать машину из списка в автосалоне, то она будет постоянно спавнится друг на друге.


C#:
[RemoteEvent("createlveh")]
        public static void createveh(Player player, string name, int color1, int color2, int color3, int x, int y, int z)
        {
            try
            {
                if (!player.HasData("MALADOY")) return;
                if (player.HasData("ROOMCAR"))
                {
                    var uveh = player.GetData<Vehicle>("ROOMCAR");
                    uveh.Delete();
                    player.ResetData("ROOMCAR");
                }
                VehicleHash vh = (VehicleHash)NAPI.Util.GetHashKey(name);
                Vehicle veh = NAPI.Vehicle.CreateVehicle(vh, new Vector3(x, y, z - 1), new Vector3(0, 0, 155), 0, 0);
                NAPI.Vehicle.SetVehicleCustomSecondaryColor(veh, color1, color2, color3);
                NAPI.Vehicle.SetVehicleCustomPrimaryColor(veh, color1, color2, color3);
                NAPI.Entity.SetEntityDimension(veh, player.Dimension);
                //player.SetIntoVehicle(veh, 0);
                Trigger.PlayerEvent(player, "client::sendkilogramsinfoCar", VehicleInventory.GetWeightVeh(name));
                player.SetData("ROOMCAR", veh);
            }
            catch { }
        }


JavaScript:
mp.events.add("auto", (act, value) => {
  switch (act) {
    case "model":
      auto.model = autoModels[value];
      mp.events.callRemote('createlveh', autoModels[value], colors[auto.color][0], colors[auto.color][1], colors[auto.color][2], auto.x, auto.y, auto.z);
      global.autoshop.execute(`auto.speed=${JSON.stringify((mp.game.vehicle.getVehicleModelMaxSpeed(mp.game.joaat(autoModels[value])) * 3.60).toFixed())}`);
      break;
    case "color":
      auto.color = autoColors[value];
      mp.events.callRemote('vehchangecolor', colors[auto.color][0], colors[auto.color][1], colors[auto.color][2]);
      break;
  }
});

Что можно было бы сделать для фикса этого?
 

ibygi4

Участник портала
28 Июл 2021
223
14
73
Проще говоря убери машины которые добавил в астосалон
И полностью посмотри гайд как добавлять машины в астосалон, ты допустил ошибку при добавлении по этому спавн тачки друг на друга
 
Реакции: Inoi

filecore

Начинающий специалист
BackEnd developer
6 Окт 2020
227
74
82
если создал global переменную не надо больше писать
global.autoshop и тд достаточно
autoshop
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,233
2,083
208
35
Мне даже интересно стало, ну
Я пересмотрел вот это раз пять

C#:
[RemoteEvent("createlveh")]
        public static void createveh(Player player, string name, int color1, int color2, int color3, int x, int y, int z)
        {
            try
            {
                if (!player.HasData("MALADOY")) return;
                if (player.HasData("ROOMCAR"))
                {
                    var uveh = player.GetData<Vehicle>("ROOMCAR");
                    uveh.Delete();
                    player.ResetData("ROOMCAR");
                }
                VehicleHash vh = (VehicleHash)NAPI.Util.GetHashKey(name);
                Vehicle veh = NAPI.Vehicle.CreateVehicle(vh, new Vector3(x, y, z - 1), new Vector3(0, 0, 155), 0, 0);
                NAPI.Vehicle.SetVehicleCustomSecondaryColor(veh, color1, color2, color3);
                NAPI.Vehicle.SetVehicleCustomPrimaryColor(veh, color1, color2, color3);
                NAPI.Entity.SetEntityDimension(veh, player.Dimension);
                //player.SetIntoVehicle(veh, 0);
                Trigger.PlayerEvent(player, "client::sendkilogramsinfoCar", VehicleInventory.GetWeightVeh(name));
                player.SetData("ROOMCAR", veh);
            }
            catch { }
        }

И ну, вроде же нет ошибок.
Чисто в процессе раздумий -
Хотел доебаться до var uveh (почему не Vehicle?)
Хотел доебаться до uveh.Delete(); (Destroy?)

Но пошёл просто команду в чат на суммон тачки написал, вставил твой код - и у меня всё работает, старая тачка удаляется.
Получается - не доебаться.
Пошёл тоже вставил вызов клиентского евента перед сетдатой, в евенте просто вывод в чат и брейк - всё работает.

Чувствую себя тупым, обидно
Получается время везде выводить промежуточные результаты.
Ну это вроде стандартная процедура, везде всё логгировать, когда не работает шота
 
Последнее редактирование:

kozyroff

Новый участник
13 Сен 2022
2
0
15
Исправил?
 

frytech

Участник портала
15 Янв 2022
128
13
53
+, это будет работать (несмотря на то, что код убогий какой то, да и вообще зачем тачку, которая должна существовать исключительно для игрока, который смотрит магаз тачек в своем измерении, спавнить со стороны сервера и каждый раз еще и удалять старую, бредовая затея)
 

frytech

Участник портала
15 Янв 2022
128
13
53
Подозрение лишь в том, что ты где то делаешь player.ResetData("ROOMCAR");
Там, где не надо
 

Similar threads