Привет всем.
Крч, сделал триггер на GUI, чтобы юнит, используя спелл, отправлял в точку каста другого юнита( аля артиллерия) которая прилетая туда ставит мину(юнита) и пропадает, и вот, это всё в принципе очень легко, но если этот спелл юзается сразу несколько раз, то условие Wait until слетает на новую точку и юнит(артиллерия) который был первее вызван не заканчивает триггер ибо условие прилететь в область поменялось под следующего юнита(артилллерия) . Собственно вот, как сделать Идентификатор для нового запуска если уже запущен триггер и он на стадии 'Wait until" ?
P.S: Крч я полный дурак не наю как это реализовать на GUI, делал через две переменные с массивами но это всё сильно нагромождает, пытался делать через условия если триггер уже запущен но тогда если первый прилетел то он не пропадёт пока второй не прилетит и пропадают уже вместе и т.д. На джассе думаю через локалки бы это всё было легко отлавливать и застаивать, но я его уже забыл :D

Принятый ответ

MoreDoPass, для этого и нужны массивы, чтобы было MUI
  1. первый триггер сохраняет все нужные данные на один общий индекс, например PlantmineCount, и увеличивает этот индекс на один.
  2. второй триггер каждые 0,0Х секунд пробегается по массиву от нуля до PlantmineCount, проверяет расстояние и если оно подходит, делает нужные действия. После этого, чтобы тот же элемент не обрабатывался заново, нужно заменить его во всех массивах на последний и уменьшить PlantmineCount на 1. И счетчик цикла тоже уменьшить на 1, иначе этот последний элемент будет пропущен тк индекс по циклу уйдет дальше.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
20
5 лет назад
0
скинь скриншоты своих триггеров чтобы было видно где ты накосячил с переменными
0
26
5 лет назад
0
Если сильно не отходить от переменных, то можно либо через массивы переменных делать, либо как-то через Custom Value мутить. Но было бы лучше вспомнить локалки в jass.
0
2
5 лет назад
0
Это уже не канон, но работает так же.
Загруженные файлы
0
20
5 лет назад
Отредактирован biridius
0
Бред какой-то сделал. Зачем в качестве индекса массивов используется массив plantmineX[plantminey]?
С массивами можно нормально сделать и без локалок, но надо понимать что и куда идет, а тут просто как попало наложены массивы. Области какие-то создаются. Используйте Distance between points.
ну и утечки тут еще докучи, надо удалять location'ы, но сперва конечно надо саму логику починить. для начала переделать все. Использовать отдельный триггер с таймером который будет пробегаться по массиву циклом и проверять что снаряд долетел до цели.
0
2
5 лет назад
0
Ибо пытался разделить когда кто-то запускает триггер.
За Distance between points спасиб, не знал. Но в целом проблему не решило :D Проблема в том шо при запуске триггера второй раз пока ещё первый не прошёл, убивает очередь в первом.
0
20
5 лет назад
Отредактирован biridius
0
MoreDoPass, для этого и нужны массивы, чтобы было MUI
  1. первый триггер сохраняет все нужные данные на один общий индекс, например PlantmineCount, и увеличивает этот индекс на один.
  2. второй триггер каждые 0,0Х секунд пробегается по массиву от нуля до PlantmineCount, проверяет расстояние и если оно подходит, делает нужные действия. После этого, чтобы тот же элемент не обрабатывался заново, нужно заменить его во всех массивах на последний и уменьшить PlantmineCount на 1. И счетчик цикла тоже уменьшить на 1, иначе этот последний элемент будет пропущен тк индекс по циклу уйдет дальше.
Принятый ответ
0
26
5 лет назад
0
Там (Last created unit) сбивается, нужно создать закреплённую пару юнит-область, например, задав custom value юниту, которое указывать в индексе массивов юнитов и областей.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.