Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Функция шанса


Страницы:   1 2

Yokmombyk ©   (2006-06-07 23:29:00) 

Никак не могу составить/придумать нормальный сабж. Игра: фентези.

Нужно посчитать шанс успешного применения умения. Как пример - умение усыпить противника. Из базовых данных есть:
- магическая атака
- магическая защита
- сила a.k.a. базовый шанс умения
- разница уровней между атакующим и целью (ну или их соотношение, не суть важно)
- некая зависимость от базового стата цели (н.п. от мудрости)

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

Из "красивых" функций знаю только 1 / (1 + exp(-ax))и ещё 0.5 + arctan(ax) / pi, но ни одной из них у меня не получается  нормально управлять.

PS зависимость от магической атаки и защиты предполагается вводить в виде sqrt(magic attack) / magic defend, но это не принципиально.


Yokmombyk   (2006-06-11 20:35:00) [21]

Обычный вопрос - нет, а вот обвинение в явном плагиате...


RzCoDer   (2006-06-11 20:21:00) [22]

Ппц, человек воспринял обычный вопрос в штыки... Мдя...


Yokmombyk   (2006-06-10 21:53:00) [23]


> Я знаком с LineageII лично и вижу явное сдирание такое как
> слип, неудачный каст, сильный учёт разницы в уровне, базовый
> шанс скила (уровень скила), м атак, м деф,


Если с такой стороны подходить...


> > Ведь цель может быть как магом, так и воином
> Так там и есть =)


...а тем более с такой, то 98% игр являются плагиатом.

Скажи, что только в вашем Lineage есть маги и воины? Только там есть умение усыпить противника? Неудачный каст и учёт разницы в уровнях - это пять. А как же иначе? Все заклинания всегда срабатывают, и первый уровень бьёт 120 точно так же, как сто двадцатый - первого?

Может, ты просто больше ни одной игры не знаешь?


> Ага, клериков, ШЕ, ЕЕ и прочих оверлордов


ШЕ и ЕЕ - это наподобии клериков? Гыгы, первый раз вижу, чтоб клериков называли оверами :D Они у вас в Lineage II C5 разрывают всё, что движется? LOL


RzCoDer   (2006-06-10 20:43:00) [24]


> tButton

Я знаком с LineageII лично и вижу явное сдирание такое как слип, неудачный каст, сильный учёт разницы в уровне, базовый шанс скила (уровень скила), м атак, м деф,

> Ведь цель может быть как магом, так и воином

Так там и есть =)


> (касты от клериков)

Ага, клериков, ШЕ, ЕЕ и прочих оверлордов ;)


tButton   (2006-06-10 20:30:00) [25]

ничего плагиатного не вижу
ну атака, ну защита, но они ж ядрёна вошь в каждой РПГ в том или ином виде.
если так, то можно и к названиям статов придраться =)


RzCoDer   (2006-06-10 19:56:00) [26]

Я бы сказал явный плагиат


Yokmombyk   (2006-06-10 18:52:00) [27]

Нет, с чего ты взял? А что, сильно похожие умения?


RzCoDer   (2006-06-10 15:01:00) [28]


> Yokmombyk

Уж не Lineage II C5 ли вы делаете? ;)


Yokmombyk   (2006-06-10 12:34:00) [29]


> ещё один плюс этой системы - у всех есть шанс


Дада, я и сам догадался :)


tButton   (2006-06-09 04:51:00) [30]


> Спасибо, попробую.

ещё один плюс этой системы - у всех есть шанс

> Преобразования всё равно применять придётся, но это уже
> попроще будет.

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


Yokmombyk   (2006-06-08 21:48:00) [31]


> А чего ты боишься за 100% вылетать? Если атакующий настолько
> сильнее цели то он его 100 пудов усыпит и все.

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

То же самое с атакующим - он может взять \m/ оружие (достаётся хоть и нелегко, но оверным оно не должно быть), заточить своего персонажа на магическую атаку в ущерб другим параметрам, может драться "на износ" (с увеличенным потреблением маны, или же с жертвованием жизнью)... Короче, нижняя и верхняя планка различаются раз в 10 :-)


> т.е. по сути - ролл атаки против ролла защиты
> вылет за 100 % не возможен
> так что. считай атаку для атакующего
> считай защиту для защищающегося и кидай кости

Спасибо, попробую. Преобразования всё равно применять придётся, но это уже попроще будет.


tButton   (2006-06-08 08:05:00) [32]

очень простая формула, можно сказать, ноу-хау
if (random*atack)>(random*defence)
 then hit
 else miss;

т.е. по сути - ролл атаки против ролла защиты
вылет за 100 % не возможен
так что. считай атаку для атакующего
считай защиту для защищающегося и кидай кости


megabyte-ceercop   (2006-06-08 07:59:00) [33]

А чего ты боишься за 100% вылетать? Если атакующий настолько сильнее цели то он его 100 пудов усыпит и все.

Но лучше добавить цели что-то типа "усталости от магической атаки". Каждая попытка добавляет некоторое количество этой усталости, как только этот показатель перевалит за 100 цель засыпает. Применяешь каст на сонного, показатель еще больше увиличивается и цели спит дольше.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо