Нужно сделать эффекты замедления как у мага льда в вовке.
Например, добавить замедление для Blizzard.
Какие вижу варианты:
  1. Даммик-кастер.
Самый простой вариант, но как я понимаю он создает утечки, особенно для нескольких целей.
  1. Дать ауру торнадо.
Наверное лучший вариант, только никак не могу сообразить как лучше сделать продление бафа, а если замедление будет не вовремя очищаться это не есть хорошо.
  1. Вычислять скорость и потом выставлять.
По-моему - чисто наркоманские пляски.
Any ideas?

тут надо при нанесении урона цели
  • на цель вешаем бафф (даем ауру)
  • создаем для цели таймер, запускаем. привязываем таймер к юниту хт, юнита к твймеру хт. хт - хэш-таблица. Нужно сохранить инфу в хт, чтобы получать инфу. Пример, когда повторно бьем цель, можно проверить есть ли у него таймер. нам не нужно создавать новый таймер. Достаточно перезапустить таймер. Или юнит умер, все удалить надо, хт чистим. Таймер истек, надо почистить хт с двух концов (с юнита/с таймера).
  • юнит умирает, можно таймер удалить. получаем ссылку на таймер. хт чистим. таймер уничтожаем
  • когда таймер истечет, удаляем бафф. удаляем таймер. Получаем ссылку на юнита. Чистим хт, дабы память не засорять.
  • по идее, у каждой цели будет свой таймер. при истечении он удаляется. Общий таймер можно сделать, тогда все цели запихиваем в группу, и ежесекудно перебираем в ней каждую цель. Можно счетчик времени каждой цели задать, и ежесекудно вычитать -1. Когда время истечет, <=0 цель выпиливается из группы и хт. Использовать общий или отдельно для каждого таймер - это ваш выбор
На гуи сидите?
Похожим эффектом продления обладает ядовитое облако.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
Наверное лучший вариант, только никак не могу сообразить как лучше сделать продление бафа, а если замедление будет не вовремя очищаться это не есть хорошо.
Надо добавлять ауру юниту с целью сам воин, а когда удаляешь абилку удалять и бафф. Тогда бафф не будет висеть после удаления ауры.
6
> Наверное лучший вариант, только никак не могу сообразить как лучше сделать продление бафа, а если замедление будет не вовремя очищаться это не есть хорошо.
Надо добавлять ауру юниту с целью сам воин, а когда удаляешь абилку удалять и бафф. Тогда бафф не будет висеть после удаления ауры.
Тут уже не в удалении дело.
У меня стоит так "близард падает на голову" если у юнита нет слоу бафа - даем ему ауру торнадо и через 2 сек убираем всё.
Но если на юнита падает вторая волна, очищение с первой его убирает, оно же с задержкой, вот тут и кроется проблема.
28
Тут надо полностью тригерный спел делать. Тогда всё можно будет обработать.
11
С аурой самый удачный из простых вариантов, можно ещё сделать способность замедление с бесконечным действием и снимать бафф когда нужно
6
А смысл его триггерным делать? Проблема то не решится никак, просто будет ситуация когда 2-3 ледяных скила подряд юзают разные юниты и всё равно дебаф будет сниматься в разное неподходящее время.
Тут нужен какой-то условный таймер для удаления замедла, чтобы когда юнит уже замедлен и снова получает замедление то этот таймер обнулялся и заново шел пока не перестанут кастовать и он не достигнет своей цели - очистить юнита.
Я вот не знаю как это нормально сделать, пробовал циклу обнулять переменную - работает конечно, но только пока цель - один юнит, видимо потому что цикл не отдельный каждый раз создается.
11
Смотри, условие, юнит кастует способность,если это способность с замедлением, то берёшь всех юнитов в области поражения способности и проверяешь, есть ли на них бафф замедла, если есть, то обновляешь время. Время обновлять можно так. Делаешь один глобальный таймер, и на юнитов с замедлом записываешь в хеш таблицу время, которое будет висеть замедление.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.