Доброе время суток, есть только 3 варианта: выгрузить из хеш-таблицы еще одна такая же и последний примененный скилл.)
Что я вообще хочу сделать? Юнит бьет смертельным ударом и вешает дебаф на жертву (который позже будет уменьшать отхил на 50%, сделаю так.) и спустя время дебаф пропадает, но если юнит снова повесит этот дебаф до того, как тот еще не истек, то произойдет баг, дебаф начнет слетать раньше времени. Мне нужно, что бы дебаф слетал в срок, как положено, независимо от других игроков\юнитов или повешенный дебаф поверх другого.
Спасибо!

zlowar:
То есть дебаф должен всегда обновляться.)
Зачем ты делаешь триггерный дебафф? В дефолте так устроено, что дебафф заменяется, так вешай же дефолтно
`
ОЖИДАНИЕ РЕКЛАМЫ...
11
То есть дебаф должен всегда обновляться.)
18
Запиши в переменную время действия. В таймере отнимай от переменной пройденное время.
После обновления деббафа ставь переменной нужное значение
19
zlowar:
То есть дебаф должен всегда обновляться.)
Зачем ты делаешь триггерный дебафф? В дефолте так устроено, что дебафф заменяется, так вешай же дефолтно
Принятый ответ
32
Такое нужно реализовать не на GUI.
Для начала делается ключ строка для каждого баффа, с помощью функции StringHash а потом по этому ключу записывается триггер, который следит за событиями:
  • Время истекло
  • Юнит умер.
  • На цель применили одну из рассеивающих способностей (если планируется сделать бафф рассеиваемым)
При каждом касте на юнита проверять а есть ли по заданному ключу триггер, если нет то создать и сделать все необходимые эффекты, а если уже есть то сбросить счетчик (таймер) и проверить уровни (если у баффа много уровней) обновляя эффекты.
Реализация не из простых, но самая безопасная и удобная.
28
в ро создай скил с бафом на 3 секунды
при крите триггерно юзай этот скил на цель
при хиле проверяй наличие бафа
если баф есть то ослабляй хил
quq_CCCP, куча триггеров?
нафига
если так хочется делать всё триггерно то лучше сделать стек и бегать по нему таймером
а то что ты предложил это вообще жесть
короче на нг подарю тебе приз "самая упоротая реализация 2016"
32
nvc123, Пришлось, сделать так часть абилок - ибо задолбали фаталы на ровном месте.
Ну конечно можно обойтись одним триггером на всех, просто плодя действия триггеров но это точно не для гуи.
28
quq_CCCP, нафига плодить действия
берём таймер
берём список
профит
32
nvc123:
quq_CCCP, нафига плодить действия
берём таймер
берём список
профит
Знаешь есть у юнитов такое свойство умирать, а когда начинаешь убирать им эффект от спелла (там спеллбук с элуной) фатал выскакивает.
28
quq_CCCP, знаю
поэтому умные люди удаляют юнита из стека при смерти чтобы не тратить процессорное время на трупы
11
Спасибо, сделаю как выше человек порекомендовал. Просто разобраться, но вообще лень.. рано или поздно все равно потребуется так дебаф тригерно делать.)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.