В доте у героя Nerif, the Oracle есть такая способность Purifying Flames. Мне бы понять его механику.
А точнее интересует, что ее эффект суммируется.
Как такое сделать? Пробовал разное - не получилось!

Принятый ответ

Крепим к юниту-цели, через юзер дату, как уже сказали (можно сделать систему данных с помощью структур если таблицы не нравятся) или через хэш-таблицу, нужное значение, а именно текущее количество таких эффектов на цели.
При касте увеличиваем эту переменную (на отдельной цели) на 1 и запускаем таймер, который после какого-то времени (когда эффект закончится) эту переменную на один уменьшит.
Естественно у нас есть глобальный таймер в периодике, который отхиливает всех юнитов-целей на константное количество хп которое дается от одного эффекта, умноженное на число таких эффектов на текущем обрабатываемом юните.

тот алгоритм который описан выше увеличит скорость отхиливания, но время одного конкретного инстанса будет константным

если нам надо сделать скорость отхиливания константой - то мы аттачим к юниту-цели не к-ство эффектов, а к-ство "тиков" таймера за которые тот полностью отхиляет юнита за один инстанс (ну а в периодике мы будем это число уменьшать с каждым пробегом офк).

Таким образом, допустим мы скастонули на одного юнита этот спелл мгновенно 20 раз
в 1-ом случае хп отхиляются в 20 раз быстрее обычного, за то же время. за которое отхил проходит 1 раз
а во 2-ом случае эффект будет длиться в 20 раз дольше, без потери эффективности

это если с мультиприменяемостью, если МУИ не надо, то, очевидно никаких данных ни к кому аттачить так же не надо, все производится с одной глобалкой (но это глупо и неинтересно, лучше делать МУИ даже когда оно не надо)

Кстати, я не шарю, мб там как-то через РО можно, но кому оно надо?

даже не знаю, что быстрее, описать сам процесс "как" создать такого рода спелл, или написать сразу спелл =)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
9 лет назад
0
че?
0
24
9 лет назад
0
Hate, воину наносится урон,после чего он моментально получает дополнительный стакабельный реген(можно накладывать вновь и вновь, увеличивая эффект).
Я могу только посоветовать пронумеровать юниты по CustomValue и заводить
Effect[#], Target[#], Duration[#], HealAmount[CV].
В цикле у Effect[#] уменьшается Duration[#] и если оно 0 - удалить эффект из списка и уменьшить HealAmount[CV] на который лечится Target[#].
Мб многоуважаемые кодеры знают как проще и доступнее, могу и подробнее расписать. Когда-нибудь потом.
5
21
9 лет назад
Отредактирован Buulichkaa
5
Крепим к юниту-цели, через юзер дату, как уже сказали (можно сделать систему данных с помощью структур если таблицы не нравятся) или через хэш-таблицу, нужное значение, а именно текущее количество таких эффектов на цели.
При касте увеличиваем эту переменную (на отдельной цели) на 1 и запускаем таймер, который после какого-то времени (когда эффект закончится) эту переменную на один уменьшит.
Естественно у нас есть глобальный таймер в периодике, который отхиливает всех юнитов-целей на константное количество хп которое дается от одного эффекта, умноженное на число таких эффектов на текущем обрабатываемом юните.

тот алгоритм который описан выше увеличит скорость отхиливания, но время одного конкретного инстанса будет константным

если нам надо сделать скорость отхиливания константой - то мы аттачим к юниту-цели не к-ство эффектов, а к-ство "тиков" таймера за которые тот полностью отхиляет юнита за один инстанс (ну а в периодике мы будем это число уменьшать с каждым пробегом офк).

Таким образом, допустим мы скастонули на одного юнита этот спелл мгновенно 20 раз
в 1-ом случае хп отхиляются в 20 раз быстрее обычного, за то же время. за которое отхил проходит 1 раз
а во 2-ом случае эффект будет длиться в 20 раз дольше, без потери эффективности

это если с мультиприменяемостью, если МУИ не надо, то, очевидно никаких данных ни к кому аттачить так же не надо, все производится с одной глобалкой (но это глупо и неинтересно, лучше делать МУИ даже когда оно не надо)

Кстати, я не шарю, мб там как-то через РО можно, но кому оно надо?

даже не знаю, что быстрее, описать сам процесс "как" создать такого рода спелл, или написать сразу спелл =)
Принятый ответ
0
24
9 лет назад
0
Кстати, я не шарю, мб там как-то через РО можно, но кому оно надо?
Юзая ауру фонтана можно было бы, если бы повторное добавление её добавляло реген. Но это не так, насколько я помню.
Зато несколько предметов с 1 и той же аурой фонтана будут складываться, но это нам никак не пойдёт...
0
28
9 лет назад
0
эм
ну так можно суммировать скилы
0
11
9 лет назад
0
nvc123:
эм
ну так можно суммировать скилы
ты про что?
0
28
9 лет назад
0
Farrien, про пассивные скиллы
наподобие регена,брони,дамага,скорости атаки
Farrien, но вообще надо делать так как сказал Buulichkaa
2 комментария удалено
Чтобы оставить комментарий, пожалуйста, войдите на сайт.