Есть действия, которые нужно совершить, если юнит перестал атаковать. Не соображу, какими событиями это отловить. Очевидно, юнит перестанет атаковать, если умрёт, или есть умрёт его цель. А вот как отловить, что он сбежал или вернулся на базу (в случае крипа), не знаю. Может, есть простой способ проследить вот это вот всё?

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

подведя итоги
простого способа нету
надо писать громоздкую систему с таймером и проверками на приказ, время с последней атаки и местоположения(на случай если юнит побежит за целью)
0
5
8 лет назад
0
Как вариант, запускать таймер, где у переменной отнимается его период (0.03 сек например), а сама переменная изначально равна 3.
Проверять текущий приказ цели.
Если "smart" или "attack", задаем переменной начальное значение - 3 секунды. Иначе ничего не делаем.
Когда переменная равна 0, юнит перестал атаковать.
Естественно задержку выхода из боя можешь сделать не 3 секунды, а сколько тебе надо.
0
33
8 лет назад
0
BonBo, а как ты предлагаешь проверить «текущий приказ цели»?
2
5
8 лет назад
2
Если гуи, то вот
Загруженные файлы
0
33
8 лет назад
0
Не гуи, но спасибо. Совсем забыл, что есть такая функция. Получается, простой вариант — проверять, когда приказ юнита станет не attack, да. Надо попробовать.
0
20
8 лет назад
0
а с авто-кастами что делать?
у них приказ тоже attack?
0
33
8 лет назад
0
ssbbssc, автокастами я могу пренебречь, не планирую их использовать.
0
5
8 лет назад
0
ssbbssc, вроде бы да, точно не знаю.
Но если ты мануально применяешь способность, у которой есть автокаст, то приказ способности используется
0
32
8 лет назад
0
Кет, приказ юнита равен 0 значит он ниче не делает, ему нужно отдать приказ еще раз.
0
33
8 лет назад
0
quq_CCCP, ты это к чему?
0
32
8 лет назад
0
Ну те кто не идут атаковать кого то обычно стоят.
0
20
8 лет назад
0
quq_CCCP:
Ну те кто не идут атаковать кого то обычно стоят.
ключевое слово обычно
0
28
8 лет назад
Отредактирован PT153
0
А еще есть такой приказ как Right Click. Если приказать юниту атаковать через райт клик (что обычно все и делают), то условие с Current Order != Attack вернет правду. Возможна проблема с этим же условием, если юнит начинает атаковать, не получая приказа от игрока (противник подошел в агро-ренж). Проверь случаи, описанные выше, возможно условие будет работать верно.
0
48
8 лет назад
0
Стоить напомнить ещё о атаке от героя без приказа (если нужно), то есть атака орбом, к примеру яд, то придется делать отлов урона. Или проверять имеет ли цель дебаф.

Так же как вариант проверять ещё радиус до цели.
0
33
8 лет назад
Отредактирован Кет
0
Проверять текущий приказ цели.
Нет, не работает. Если игрок отдаёт приказ, всё норм, а у NPC приказ всё время нулевой.
0
24
8 лет назад
0
Немного запоздалое замечание, но если крип агрится на кого-то и бежит за целью - его приказ "никакой" эта пакость рушит все простые способы осуществить хитроумные задумки, связанные с тем "стоит ли юнит на месте" например и т.п.
Можно триггерно снизить aquistion range до 0 или 1 чтобы крип не агрился до тех пор пока его непосредственно не атакуют, но всё же он и тогда может преследовать убегающего.
А вот как отловить, что он сбежал или вернулся на базу (в случае крипа)
Избитый совет про нумерацию юнитов по custom value и привязку к каждому его исходной позиции как Point [cv]
И делать печальную периодическую проверку между текущей позицией юнита и исходной, если равна нулю то проверить приказ, если и он равен нулю, то скорее всего юнит в состоянии покоя.
2
28
8 лет назад
2
подведя итоги
простого способа нету
надо писать громоздкую систему с таймером и проверками на приказ, время с последней атаки и местоположения(на случай если юнит побежит за целью)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.