Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
-
Объявления
-
⚙️ Новые онлайн-инструменты для DayZ 07/26/26
-
- 0

Всем привет! Есть проблема суть такова (с) ?
Есть серверный мод, его задача - в процессе игры создать некие игровые объекты, немного ими поманипулировать и удалить. Всё идёт хорошо, пока дело не касается машин. Почему-то они исчезают, если находятся вне радиуса вокруг игрока. Причём только машины, со статичными объектами никаких проблем нет.
Т.е. создаётся два объекта, к примеру "Land_Container_1Mo" и "OffroadHatchback", оба абсолютно одинаковым способом, оба заносятся в массив внутри класса, если игрок всё время находится рядом с ними, то всё хорошо, скрипт их спавнит и деспавнит в нужные моменты без проблем. Если от этих двух объектов отойти подальше, по возвращении вижу только контейнер, а машина исчезает.
В качестве эксперимента пробовал выставить так машины в ряд, висеть над ними камерой и потихоньку телепортировать игрока дальше и дальше, начинают исчезать самые дальние в ряду. Такое ощущение, что раз в сколько-то секунд проходит некий сборщик мусора и удаляет машину, если в радиусе нет игроков.
Собственно, вопрос, как сообщить сборщику, что машины трогать не надо?
P.S. Ещё догадка, вся работа происходит на уровне 4_World, может поэтому нормально работают статичные объекты, а динамические не цепляются к Mission?
ref SomeWorkingClass GlobalSomeWorkingClass = new ref SomeWorkingClass; // Висит в игре постоянно class SomeWorkingClass { ref array<Object> SpawnedObjects = new array<Object>; //array<SomeOtherClass> CarList ... - список машин с координатами и аттачами void SpawnCarObjects() { for (int i=0;i<CarList.Count();i++) { Object CarObject = GetGame().CreateObjectEx(CarList[i].ObjType,CarList[i].Pos, ECE_PLACE_ON_SURFACE); // Создание CarObject.SetOrientation(CarList[i].Rot); // Поворот ... if (CarObject.CanAffectPathgraph()) { CarObject.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, CarObject); } ... SpawnedObjects.Insert(CarObject); // В массив для дальнейшей работы } } }Второй вопрос глупый, но маленький, так что задам тут же) Как заставить заспавненный RoadFlare загореться? Пробовал с дымовыми гранатами, там срабатывает SmokeGrenadeBase.Unpin() и он сразу пускает дым. А фальшвейеры, если правильно понимаю, не граната, а некий используемый элемент, какую функцию какого класса нужно дёрнуть?
Изменено пользователем Torlan (история изменений)Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах