Крепим к юниту-цели, через юзер дату, как уже сказали (можно сделать систему данных с помощью структур если таблицы не нравятся) или через хэш-таблицу, нужное значение, а именно текущее количество таких эффектов на цели.
При касте увеличиваем эту переменную (на отдельной цели) на 1 и запускаем таймер, который после какого-то времени (когда эффект закончится) эту переменную на один уменьшит.
Естественно у нас есть глобальный таймер в периодике, который отхиливает всех юнитов-целей на константное количество хп которое дается от одного эффекта, умноженное на число таких эффектов на текущем обрабатываемом юните.
тот алгоритм который описан выше увеличит скорость отхиливания, но время одного конкретного инстанса будет константным
если нам надо сделать скорость отхиливания константой - то мы аттачим к юниту-цели не к-ство эффектов, а к-ство "тиков" таймера за которые тот полностью отхиляет юнита за один инстанс (ну а в периодике мы будем это число уменьшать с каждым пробегом офк).
Таким образом, допустим мы скастонули на одного юнита этот спелл мгновенно 20 раз
в 1-ом случае хп отхиляются в 20 раз быстрее обычного, за то же время. за которое отхил проходит 1 раз
а во 2-ом случае эффект будет длиться в 20 раз дольше, без потери эффективности
это если с мультиприменяемостью, если МУИ не надо, то, очевидно никаких данных ни к кому аттачить так же не надо, все производится с одной глобалкой (но это глупо и неинтересно, лучше делать МУИ даже когда оно не надо)
Кстати, я не шарю, мб там как-то через РО можно, но кому оно надо?
даже не знаю, что быстрее, описать сам процесс "как" создать такого рода спелл, или написать сразу спелл =)
Edited by Buulichkaa
При касте увеличиваем эту переменную (на отдельной цели) на 1 и запускаем таймер, который после какого-то времени (когда эффект закончится) эту переменную на один уменьшит.
Естественно у нас есть глобальный таймер в периодике, который отхиливает всех юнитов-целей на константное количество хп которое дается от одного эффекта, умноженное на число таких эффектов на текущем обрабатываемом юните.
в 1-ом случае хп отхиляются в 20 раз быстрее обычного, за то же время. за которое отхил проходит 1 раз
а во 2-ом случае эффект будет длиться в 20 раз дольше, без потери эффективности
Зато несколько предметов с 1 и той же аурой фонтана будут складываться, но это нам никак не пойдёт...
ну так можно суммировать скилы
наподобие регена,брони,дамага,скорости атаки
Farrien, но вообще надо делать так как сказал Buulichkaa