Нужно поместить юнита после каста способности на основе эликсира ярости в глобалку. Так как по механике варика происходит замена юнита, любые Triggering unit или Casting unit к нему уже не относятся.
Сейчас сделано через пик в отряд и проверки на другую способность, что через заднее место. Есть ли какая-нибудь функция, чтобы захватить замененного юнита в переменную?

Impertus, не знаю точно как сработает с "Эликсиром ярости", но handleID при морфе Ворона не изменяется. Возможно, и с остальными морфами тоже. Обращайся к юниту через его ID. Как находить этот ID и что это такое можешь почитать ТУТ
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Impertus, не знаю точно как сработает с "Эликсиром ярости", но handleID при морфе Ворона не изменяется. Возможно, и с остальными морфами тоже. Обращайся к юниту через его ID. Как находить этот ID и что это такое можешь почитать ТУТ
Принятый ответ
18
Баф не додумался проверить на герое?
самый легкий способ говорят...
11
Можно баф, можно способность (все равно у героя изначально 2 уник способности), но и для того и для того нужен вейт в 0.1 сек, чего желательно избежать.
З.Ы. Сейчас работает нормально, но хочу оптимизировать и убрать вейт.
18
Бери таймер
Иль в кеш сохраняешь героя по ид
Затем при касте он у тебя уже сохранен
Тупо загружаешь и все...
Ну вот кастуешь и потом делаешь че те надо
cast = getspellabilityunit
call saveunithande(hash,h,1,cast)
local unit u = loadunithande(hash,h,1)
вот теперь юнит никогда не потеряется
11
Это будет не оптимизация, а варианты, я же хочу обойтись без задержек вообще.
11
Кастера отловить не проблема, проблема в том, что по механике варика (как написано в стартпосте) при Эликсире кастер заменяется другим юнитом, и все триг юнит, каст юнит и т.д. не относятся к нему. А мне нужно отловить итогового юнита и к нему применять действия (в моем случае периодик дамаг раз в 0.5 сек по 2% от текущего хп)
18
Я тебе написал в кеш грузи превращеного, после каста наносишь дамаг нечего сложного..
21
Impertus, в таком случае - создавай не периодический таймер с задержкой 0 сек., сохраняй юнита в хеш с ключем в ID таймера. В функции, которою запустит таймер - загружай юнита под ключем в ID истекающего таймера, и делай действия. Когда ты выгрузишь юнита из хеша в какую-либо переменную - сможешь изменять его параметры (хп/мп и всё что ты хотел). Если не знаешь как, то: либо читаешь статью, ссылку на которую я дал выше, либо пишешь СЮДА
11
Я уже почитал, понял и сделал (не хочется конечно хэш-таблами грузить, их уже 5)
Спрашивал только на предмет возможно упущенной стандартной функции, раз такими окольными путями приходится идти.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.