Наверное плохо понятно по названию. Короче, только сейчас дошло что такой простой триггер хрень для множественного срабатывания. Суть: пассивная способность у юнитов определенного типа, по умолчанию скорость атаки у них значительно повышена, но когда юнит получает урон, баф скорости атаки слетает на 15 сек. Проблема я думаю понятна. При нескольких срабатываниях триггера баф скорости атаки будет возвращен только последнему юниту. Как это можно решить максимально просто? Потому что у меня уже вторая подобная способка должна быть и я хз.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. konvan5
Вариант 2 - сложный замудренный, но как вариант для триггерщика. Вести массив таких юнитов, добавляя новых юнитов в конец и увеличивать счетчик массива. А кода нужно добавить способку через 15 секунд - добавляем первому юниту в массиве и сдвигаем весь массив на 1 элемент к началу, а счетчик уменьшаем на 1.
(работает, если время всегда будет одинаковое у этой способки. Если разное - надо еще добавлять контроль юнитов, через хэштаблицы или параллельный массив, где можно использовать еще таймеры, но это прямо сильно запарно думаю будет)
А вот в некоторых других случаях это может пригодится, когда переменная события является глобальной.
Затем создавать таймер с 15 сек. временем для первого применения, удалять абилку и обнулять таймер при каждом получении урона. Если в течении 15 сек. юнит не получил урона, добавлять абилку.
То что у тебя сейчас будет вызывать много багов, так как по логике твоего триггера может произойти следующее, если юнита 3 раза атакуют, ему 3 раза может добавится абилка подряд и если в один момент она удалится в этот же момент она может и добавится, от вейтов лучше отказаться.
Нужно бы добавить контроль юнитов под абилкой.
Тебе как надо, чтобы время обновлялось после последней атаки (15 сек после последней атаки) или чтобы в течении 15 секунд сколько бы не атаковали, все равно вернуть абилку на 15-той секунде даже если юнит был атакован секунду назад?
Пока идут 15 секунд - новые удары не запустят действия триггера.
Ред. konvan5
Ред. Extremator
Ред. Extremator
. . .
Естественно, есть вариант с более сложным решением - заводим триггер на "получение урона" (это более логично, хотя я не навязываю именно такой вариант), и каждый раз чекаем есть ли у грифона (у юнита получившего урон) дебафф на "ослабление". Если его нет - выдаём, отнимаем бонусное ускорение, заводим таймер на 15 секунд. Но если он есть - ищем таймер, обновляем время до 15 секунд. По завершению работы таймера - удаляем "дебафф", выдаём бонусное ускорение обратно. Готово.
Если сделать всё правильно, и пускай даже не MUI, то добавление буквально двух-трех переменных уже даёт состроить счётчик и сделать его полностью MUI'шным.