Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
ka3ant1p

ошибка в отладчике после смерти при использовании nearEntities

В общем есть триггер который от своего центра ищет по nearEntities цели, вот таким образом:

 

_objects = _epicenter nearEntities [["MAN", "LandVehicle", "AIR"], _range];
	
{if ((!(alive _x)) or (_x isKindOf "DAP_ARTEFACT")) then {_objects=_objects-[_x];};}ForEach _objects;

но после смерти ругается на эти строки почему то
проверяю через редактор с отладчиком, и в отладчике показывает ошибку, оно то не на что не влияет но хотелось бы понять и исправить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
 

а что за редактор с отладчиком?

 

 

Мне кажется прогонять цикл по массиву и в этом же цикле удалять что то из этого массива не совсем верно.

Изменено пользователем Golgofinyanin (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

 

 

а что за редактор с отладчиком?

 

 

Мне кажется прогонять цикл по массиву и в этом же цикле удалять что то из этого массива не совсем верно.

просто в редакторе проверяю некоторые скрипты что бы по 100 раз сервак не перезапускать ибо долго, а отладчик это ( -showScriptErrors) в свойствах ярлыка =)

 

Ну по логике вот пошел цикл мы получили объекты, и перед тем как начинать с ними работать мы их пропускаем через фильтр

в ошибке еще написано: Error 0 elements provided, 3 expected

Изменено пользователем ka3ant1p (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
 

Я просто слышал недавно про то что есть какой то редактор для кода армы который проверяет его на наличие ошибок.

 

 

Смотри из-за этого куска _objects=_objects-[_x]; может получатся такая фигня что будет пропускать куски массива. Я точно не знаю как работает ForEach но если длину массива она проверяет только один раз, то в итоге может пытаться получить  уже не существующие значения ибо в цикле массив уже изменился. То есть изначально в массиве было 5 значений на четвертом прогоне массиве осталось 4 значения, а ForEach поедет дальше и будет пытаться получить пятое.

 

_array = [1,1,2,2,3,3,4,4,5,5];
_array = _array - [1];
//_array is now [2,2,3,3,4,4,5,5]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

 

 

Я просто слышал недавно про то что есть какой то редактор для кода армы который проверяет его на наличие ошибок.

 

 

Смотри из-за этого куска _objects=_objects-[_x]; может получатся такая фигня что будет пропускать куски массива. Я точно не знаю как работает ForEach но если длину массива она проверяет только один раз, то в итоге может пытаться получить  уже не существующие значения ибо в цикле массив уже изменился. То есть изначально в массиве было 5 значений на четвертом прогоне массиве осталось 4 значения, а ForEach поедет дальше и будет пытаться получить пятое.

 

_array = [1,1,2,2,3,3,4,4,5,5];

_array = _array - [1];

//_array is now [2,2,3,3,4,4,5,5]

пробовал убирать эту строку - ничего не поменялось.

 

Там получается такая система, триггер во время активации активирует скрипт который спавнит юнитов, в зависимости от того какой юнит заспавнился идет вызов скрипта его поведения.

В скрипте поведения идет бесконечный цикл (while {true}) поиска целей (_objects = _epicentr nearEntities).

И получается эта ошибка происходит во время деспауна или смерти, то есть как я понимаю когда пропадает источник цикла, то есть цикл становится фолс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
 

Если while {true}, а после смерти вылетает ошибка, значит внутри этого цикла какая то перменная перестает получать данные. Надо делать проверку и при смерти выходить с цикла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.