Тема: Decay Buff
Показать сообщение отдельно
Старый 19.05.2011, 19:43   #1
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Сообщение Decay Buff

Возможно, кому то это пригодится.

При создании РПГ игры рано или поздно придется занятся заклинаниями. Некоторая часть из них - баффы. Как обычно работают баффы?
Какое нибудь заклинание с определенной силой существует некоторое время (пример - увиличение интеллекта на 150 в течении 10 секунд).
Такая система используется практически во всех играх. Однако это не всегда удобно.

Например: у героя есть 2 заклинания - 100 урона ядом в течении 10 секунд и 200 урона ядом в течении 15 секунд. Герой использовал на противника первое заклинание, а затем второе. Что должно произойти? Старое заклинание должно заменится новым? Или останется старое? А может сложить их? Или стоит просто обновить время действия? Непонятно!

Предлагаю такую систему баффов:
баффы одного типа суммируются, совершают свое действие с каждой секундой (например - наносит урон. Или лечит) и уменьшают свою силу на... 25%, например.

Просуммировать силу баффа до заоблачного значения не получится. Пример - Герой каждую секунду отравляет противника ядом с силой 100.

Вот сила баффа со временем:
1 сек.: 100
2 сек.: 100*0.75+100=175
3 сек.: 175*0.75+100=231
4 сек.: 231*0.75+100=273
5 сек.: 273*0.75+100=308
.........................
10 сек.: 377
20 сек.: 398
...........................
50 сек.: 399.9998

Как видите, сила баффа не поднимется выше 400, то есть четырехкратному (1/0.25) значению "входящего" баффа.

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

Хотя можно использовать такой алгоритм: чем выше сила баффа "оглушение", тем меньше шанс, что при прошествии секунды оглушение прекратиться.


Вот такой алгоритм. Надеюсь, он будет Вам полезен.

Всего наилучшего!
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием