Есть событие где юнит получает приказ smart/attack на цель и должно произойти действие. Но т.к. выбирается юнит-цель в области, а входящий юнит эту область ещё не достиг, не будет никакого действия. Можно ли как-то периодически отслеживать атакует, бегает или ещё что-то данный юнит, чтобы при входе в область не пришлось ещё раз отдавать приказ?

Accepted answer

Crick12,
тогда периодик твой выбор с сохраннением юнита, пока способка работает. То есть отдаешь приказ, запускается триггер с периодиком. Отдаешь другой приказ - отменив целевой, а значит выключаем триггер с периодиком. Так-же после срабатывания способки в периодике, он сам себя выключает.
В таком случае периодик будет работать только тогда, когда есть нужный приказ. Для контроля в периодике еще можешь проверять приказ, если отменили каким-то образом - выключаешь периодик.
`
LOADING AD...
0
19
1 month ago
0
Похожие вопросы:

ответ
menover:
застопорился на приказах отряду на точку
Переделал, чтобы заработало
Карта

1
24
1 month ago
Edited by konvan5
1
Эээээх еще бы понять, что ты написал... Ты написал полу решение какой-то непонятной задачи без описания задачи. Если хочешь лучший ответ - опиши так, чтобы люди тебя смогли полностью понять, в чем у тебя проблема. В чем изначальная суть задачи, как ты сейчас реализовал (желательно со скрином тригегра/кода) и какая проблема у тебя возникла. Я на все 3 вопроса увидел только половину информации, либо плохо тебя понял.
Но из того что понял, ты в какой-то момент отдаешь приказ действия на цель, но действие произойдет через N секунд, когда юнит добежит, и еще ты можешь отдать такой-же приказ когда он войдет в область, где сделает это действие, и ты не хочешь, чтобы второй раз отдавался такой приказ при входе? Или ты хочешь отследить, когда он начнет делать то самое действие на цель?
Даже если не так понял, может несколько путей дадут тебе идею для решения:
  1. Добавить юнита в события или условия для триггера. Типа юнит был атакован и вставляем условие "ЭТОТ юнит" == "атакующий юнит". То есть будет проверка на конкретного юнита, чтобы отследить начало его действия (события триггера может быть любое, смотря что тебе надо отследить, юз способки, вход в регион и тд, главно привязка к конкретному юниту).
  2. Добавить юнита в группу или переменную, чтобы сохранить его. Далее через события нужного действия можешь проверять, является ли триггерный юнит из этой группы и дальше можешь его обрабатывать, и когда с ним закончишь, удалишь из группы или очистишь переменную.
  3. Схожее с прошлым решением, когда добавляешь юнита в группу и периодиком всех в группе проверяешь, что юниты действуют как тебе надо, либо перебиваешь приказ на нужный.

А и да... А разве при входе в область не проще проверить на нужный приказ, чем проверять периодично (к примеру раз в секунду) у какой-то группы юнитов приказы?

И ответ на вопрос "Можно?" будет:
Можно.
Replies (2)
0
5
1 month ago
Edited by Crick12
0
konvan5, тогда ещё не было толком триггера готового, но в общем хотел создать пассивный скачок варденки, который срабатывает на первого повстречавшегося юнита(при наличии соответствующего приказа) на определенном расстоянии. Есть только такой вариант, который срабатывает только при отдаче приказа и при том, что между юнитами уже есть нужное расстояние.
Uploaded files
1
24
1 month ago
Edited by konvan5
1
Crick12,
тогда периодик твой выбор с сохраннением юнита, пока способка работает. То есть отдаешь приказ, запускается триггер с периодиком. Отдаешь другой приказ - отменив целевой, а значит выключаем триггер с периодиком. Так-же после срабатывания способки в периодике, он сам себя выключает.
В таком случае периодик будет работать только тогда, когда есть нужный приказ. Для контроля в периодике еще можешь проверять приказ, если отменили каким-то образом - выключаешь периодик.
Accepted answer
0
20
1 month ago
0
Можно поставить даммика в область и проверять в условии, когда отдан приказ, если расстояние между твоим юнитом и даммиком равна столько то, кода отдан приказ этим юнитом, до делать там что -то. Можно заранее записать в группу конкретных юнитов и проверять уже кого - то из них.
0
18
1 month ago
0
GetUnitCurrentOrder(u) > 0 или GetUnitCurrentOrder(u) == ид нужного тебе приказа, где u твой юнит, определяет текущий приказ или его наличие
To leave a comment please sign in to the site.