![]() |
|
|||||||
| Помощь проекту Здесь описывается, чем и как вы можете помочь развитию проекта. Помощь очень нужна и приветствуется. |
![]() |
|
|
Опции темы | Поиск в этой теме |
|
#1
|
|||
|
|||
|
Я в програмировании понимаю довольно мало, но тем не менее предлагаю на рассмотрение несколько формул расчета взаимодействия статов персонажей в игре.
Можете меня ругать если хотите, но сей топ в первую очередь предназначен для того чтобы, если не подать программистам проэкта здравую идею, то хотябы дать им понять, посредством моего програмистского невежества, чего делать не надо. И то и другое считаю одинаково полезным. Итак: Во всех ращетах в качестве рэндомной составляющей я использую НЕ стандартный генератор чисел (в котором выпадение среднего значени явыше чем крайних) а прямолинейный генератор случайных чисел (в котором выпадение любого числа из задоного диапазона одинаково). 1) В игре существуют несколько статов но большей частью они определяют аероятность а не прямую зависимость. К статам определяющим прямую зависимость относятся выносливость и сила. Реч пойдет о силе так как с выносливостью все в порядке... Пытаясь понять от чего зависит урон наносимый персонажем я совершенно запутался а посему предлагаю простубю формулу его расчета: Урон = (a+i)+(s+b)-d где: a - это параметр силы персонажа. i - это сумма всех повышений стата "сила" с помощью шмота и элей s - это случайное целое число заданое от минимума до максимума урона оружием b - это разница между требованием по владению оружием и фактической ее величиной у персонажа. Если цыфры равны прибавляется 0 если владения не достаточно то урон уменьшается если владения больше урон растет. d - это броня в точке в которую нанесен удар. Имея в базе расчета такую формулу можно установить что Критический удар будет равен: Крит = ((a+i)+(s+b)x150%)-d В случае попадания в блок и прибития блока оба данных показателя (урон и крит) уменьшаются на 25% 2) Вероятности и модификаторы. Все прочие параметры влияют на вероятность (крита уворота и прочее) Предлагаю формулу расчета таковой вероятности: ((a+i)xs)+m-q где: m - это сумма какого нибудь одного модификатора даваемого шмотом a - это стат от которого зависит модификатор m ( на премере уворота. m - это весь уход от атаки которым обладает персонаж и a- это ловкость персонажа) i - это сумма повышения данного стата эликсирами и шмотом. s - это рэндомная составляющая. случайное число от 1 до 10. q - это антимодификатор соперника. Для каждого отдельно взятогто модификатора расчитывается своя вероятность и так для каждого персонажа. Таким образом в результате частичной зависимости от рэндома критовик может увернуться от уворотчика... а уворотчик критануть критовика. 3) Далее в процессе боя идет сравнение вероятностей уже расчитаных по выше приведенной формуле. Рассмотрим на примере вероятности крита. Тот игрок у которого вероятность крита превысила вероятность соперника на 30% и более подбрасывает монетку. Роль монетки играет булева переменная определяемая случайным образом. Выпало 1 наносится крит. Выпало 0 наносится обычный удар. 4) маленький вопрос я не совсем понял из FAQ что такое Точность атаки. Если это модификатор антиуворота. то перекос в баллансе неизбежен. Так как по правилам он зависит от ловкости и имеется только на увороточных вещах которые критовики ввиду раскачки не могут одеть. Получается что модификатором антиуворота могут пользоваться только те против кого он должен быть приминим. модификатор антиуворота должен зависить не от ловкости а от силы или злости и соответственно вписываться в шмот с этими требованиями. Ловкачам модификатор антиуворота никчему, так как если вести раччет по приведенным мною формулам то у них вероятность увернуться друг от друга и так не велика... Последний раз редактировалось Затейник, 03.09.2005 в 18:51. Причина: внесение поправок в текст |
|
#2
|
|||
|
|||
|
Хорошо мыслишь
![]() Напиши, пожалуйста, на haddan@mail.ru, я тебе скину доп. информацию. Кстати, стандартный генератор случайных чисел в большинстве случаев реализует именно равномерное распределение.
__________________
Кто считает, что мир можно создать за 7 дней, никогда не пробовал это сделать... C наилучшими пожеланиями, dukei |
|
#3
|
|||
|
|||
|
Хм..в формуле рассчёта урона только забыл пробой брони...
то есть берём исходник Урон = (a+i)+(s+b)-d и +d(пробой брони наверно есть её игнорирование полностью) значит надо учесть этот фактор.. Теперь когда это +d появиться...логично предположить такую формулу (пробой брони/броню*100%)/s, где s тот же рандом от 1 до 10 Тоже и к криту. |
|
#4
|
|||
|
|||
|
DarkFlame
Ты не прав урон величина от вероятностей не зависящая. А упомянутый тобою "пробой брони" есть модификатор с N-ной Вероятностью срабатывания. Следовательно его нужно расчитывать по формуле вероятностей. На силу урона он ни коим образом не влияет, и соответственно в формуле расчета урона делать ему нечего. Совсем другое дело "пробивание блока" если этот модификатор срабатывает то необходимо всю базисную часть формулы умножить на 75% так как это сделано в формуле расчета силы крита. В самой формуле расчета силы крита в случае пробивания блока умножаться должно на 125% а не на 150%. |
|
#5
|
|||
|
|||
|
В процессе боя..хм...
3) Далее в процессе боя идет сравнение вероятностей уже расчитаных по выше приведенной формуле. Рассмотрим на примере вероятности крита. Тот игрок у которого вероятность крита превысила вероятность соперника на 30% и более подбрасывает монетку. Роль монетки играет булева переменная определяемая случайным образом. Выпало 1 наносится крит. Выпало 0 наносится обычный удар. Тогда вот такие у меня возникают вопросы... 1) Что будет просчитываться в первую очередь?рандомно? 2) Можно ли увернуться от крита? 3) И что,если превышения нет,то просто анулируются модификаторы?Нелогично. |
|
#6
|
|||
|
|||
|
Насчёт пробоя брони ты прав,хотя и пробой блока вообщем-то в процессе считать можно.
А вот насчёт вероятности крита,уворота и т.д. логичней их вычислять для каждого отдельно,а не сравнивать мф противников и давать им русскую рулетку. |
|
#7
|
|||
|
|||
|
Чтобы больше не возникало вопросов типа "а как это работает?" или "а возможно ли...?" привожу общюю схемму того, как ,в идеале, должна работать схемма данных расчетов:
Шаг №1 Происходит последовательный расчет всех вероятностей(крита, уворота, ответа, пробоя... и т.д) и модификаторов (не путать с антимодификаторами) по формуле Расчета вероятностей. Сначала для персонажа №1 затем для его соперника персонажа №2 Шаг №2 Происходит сравнение полученых вероятностей (каждой по отдельности, вероятность крита у №1 с вероятностью крита у №2; уворот, ответ и прочее соответственно. [исключение составляет блокировка и пробой блока т.к. эти модификаторы зависят от параметров силы и интуиции эти вероятности в данном случае и сравниваются между собой]) и определение того, у какого персонажа она больше и на сколько больше. Если определяется что вероятность одного из персонажей, допустим у №1 больше чем вероятность у №2 на 30% и более то перех одим к Шагу №3и меньшая из вероятностей обнуляется. Если такой разницы нет переходим к Шагу №4 и обе вероятности обнуляются. Шаг №3 Подбрасывание монетки. При помощи генератора случайных чисел выбирается 0 или 1 Если выпал 0 то вероятность не срабатывает. тоесть значение этой вероятности обнуляется. Если выпало 1 то вероятность срабатывает и дальнейшие расчеты ведутся с ее учетом. Шаг №4 Происходит учет получившихся нвероятностей (включая обнуленные) и в соответствии с этими вероятностями расчитывается урон.(обычный урон, крит или пониженый урон при пробое блока) Шаг №5 Генерация лога боя в соответствии с получеными расчетами... Последний раз редактировалось Затейник, 04.09.2005 в 19:11. |
|
#8
|
|||
|
|||
|
Цитата:
Отвечаю на твои вопросы: 1) смотри общую схемму работы формул. 2) можно при условии что при подбрасывании монетки у обоих игроков выпадет 1 3)вероятности обнуляются и происходит обмен стандартными ударами. без уворотов и без критов. но с учетом блоков и брони конечно... Русской рулетки сдесь нет посмотри внимательно на формулы. сдесь есть монетка и хотя даже в этом случае возможнось срабатывания модификатора 50% чем выше твой стат и модификатор тем чаще ты будеш ее подбрасывать и тем чаще соответственно будет срабатывать твоя прокачка. |
|
#9
|
||||
|
||||
|
Сразу скажу свое мнение.
Поинт силы=поинту урона никуда не годится. Никуда. Тут вам не БК, где каждая стат был на вес золота. Тут статы в харки вливаются в очень больших кол-вах. Получим дисбаланс. Я предлагаю несколько иной подход. Значение силы ПРОЦЕНТНО увеличивает урон. Т.е. если у тебя сила 50, то она на n-ое кол-во процентов увеличит урон. И это все множится на модификатор типа оружия. Т.е. к примеру все будет выглядеть вот так: урон=баз.урон*(100%+(str-10)*s) где str-сила s-МФ типа оружия (это только мое соображение, до ума я его еще не доводил). Формулы пробоя брони, уворота и проч. идут отдельно, по очереди. Они расчитываются из характеристик чара.
__________________
Только командир, поддерживающий дисциплину и научивший командным действиям способен сделать из толпы армию. |
|
#10
|
|||
|
|||
|
Солжер, не забивай себе и другим голову.
Я сильно сомневабсь что на сегодняшний день наносимый урон и параметр "сила" как-то вообще связаны... Что кому-то там хочется и что будет на самом деле это две большие разницы. И поэтому желаемое за действительное лучше не выдавать. С другой стороны не следует усложнять и переделывать формулы. Иначе при отладке программы вмогут возникнуть серьезные затруднения с проверкой правильности вачислений по этим самым формулам... Помню как-то пришлось возиться с программой для школьной олимпиады по информатике... так текст программы я на Паскале за 40 минут написал... а отлаживал работу программы 3 часа... |