Геракл [11] (16.10.2022 23:41)
Исходные данные:
Урон (Y) - наше искомое значение
Базовый урон (B) - мин значение 5, макс значение 9 (урон на 0м лвле при силе 3)
Уровень (L) - уровень персонажа
Урон оружия (W) (минимальный урон оружия добавляется к минимальному, максимальный - к максимальному)
Мастерство владения оружием (U) - усиливает только урон оружия, а не весь урон. +7% к урону оружием за каждое владение
Мощность урона (M) Мощность урона выбирается в соответствии с профилем атаки (через if/then, думаю)
Мощность крита (K)Влияние статов (S) - влияние наших статов на профильный урон
Колющий: S = Сила * 0,3 + Ловкость * 0,7
Рубящий: S = Сила * 0,5 + Ловкость * 0,25 + Интуиция * 0,25
Дробящий: S = Сила * 1
Режущий: S = Сила * 0,3 + Интуиция * 0,7
Формула урона выглядит так:
Y = (B+L+S+W*(1+0,07*U))*(1+M/100) для обычного удара
Y = (B+L+S+W*(1+0,07*U))*(1+M/100)*2*(1+K/100) - для критического удара (умножаем сначала на 2, потому что крит наносит
даже без мощи крита в 2 раза больше урона. А потом уже умножаем полученный урон на мощь крита).
Для минимального и максимального урона формулы выглядят следующим образом:
Y(min) = (B(min)+L+S+W(min)*(1+0,07*U))*(1+M/100)
Y(max) = (B(max)+L+S+W(max)*(1+0,07*U))*(1+M/100)
Вероятности атак оружия:
Ничтожно редки 1% - 9%
Редки 10% - 19%
Малы 20% - 39%
Временами 40% - 69%
Регулярны 70% - 89%
Часты 90% - 99%
Перейдем к броне, защите от урона и пробою брони.
Параметр БРОНЯ является *плавающим*. Для примера возьмем осаду.
Броня по частям тела:
Голова 44-192
Корпус 39-192
Пояс 40-217
Ноги 55-232
Как работает пробой брони? Рассмотрим на примере удара ножом с пробоем в 70% (Pr) в голову осаднику. Расчетный урон (по формуле выше) у нас Y.
Обязательно необходимо учитывать тот факт, что пробой работает только на *плавающей* части брони. У нас *плавающая* часть являет собой диапазон 44-192. Это значит, что урон меньше 44 не может не поглотиться по определению.
Для примера возьмем урон Y = 200.
Для начала *кидается кубик*, то-есть, с помощью генератора случайных чисел в диапазоне от 44 до 192 решается, какая броня *сработает*
на данный удар. Br=random(44,192). Допустим, выпало число 100. Наш пробой на ноже в 70% означает, что сработает лишь 30% от сыгравшей брони, то есть, броня должна поглотить всего 30 урона. НО!!! Меньше минимального значения брони (у нас он 44) поглотиться не может по определению.
Поэтому, после *работы* брони наш урон Y1 будет следующим: Y1 = Y - (100 - 100 * 70/100) = Y-30 = Y-44
Сама формула имеет вид:
Y1 = Y - (Br-BR*Pr/100). (в коде удобно будет скобки (Br-BR*Pr/100) представить отдельной переменной для упрощения проверки на допустимость
поглощаемого урона)
при условии, что Y=200, имеем:
Y1 = 156
Обязательно необходимо ввести ограничение, что броня не может уменьшать урон Y более, чем в 3 раза (во избежание ударов на 0).
После брони начинает работать Защита от урона.
Точная формула зависимости поглощения урона от параметра *Защита от урона*:
x=(1-0.5^(N/250))*100, где:
х - процент поглощаемого урона
N - наш параметр *Защита от урона*
Пример: у нас 400 защиты от урона, имеем:
x=(1-0,5^(400/250))*100 = (1-0,5^1,6)*100 = 67,0123% . То есть, при защите от урона в 400 ед по нам пройдет лишь 33% урона.
Еще необходимо учесть такой момент, как атака старшего уровня по младшему. В таком случае защита от урона у младшего уровня работает не на 100%. Если атакующий игрок на 1 уровень выше, то показатель защиты от урона (N) предварительно умножаем на 0,83, если 10-ый - на 0,69, если 11-ый - на 0,58.
В нашем примере (оба бойца одного уровня) урон после работы брони (Y1) равен 156. При защите от урона в 400 единиц, итоговый урон будет:
156*0,33 = 51,48 = 51 (округляем)
При действии приемов на усиление удара (сильный удар, удачный удар, усиленные удары) значение урона этих приемов можно как добавлять к
полученному с помощью расчетов урону, так и добавлять в саму формулу начального урона (Y = (B+L+S+W*(1+0,07*U))*(1+M/100)) к параметрам B,L,S и W.
В разное время по-разному пробовали. От этого зависел, к примеру, сумасшедший руль уворотов в свое время. viperous [10] (17.10.2022 18:36)
прекрасно.
особенно формула брони.
а вообще - отличный материал, если ты технарь. спасибо. Я Украинец [11] (18.10.2022 19:26)
чтобы было тут :)
https://prnt.sc/13isvqo
https://prnt.sc/13it0jd Я Украинец [11] (18.10.2022 19:28)
Только интересен один момент, или всё эти цифры сейчас актуальны... kru [11] (19.10.2022 19:37)
:beggar: Стратосферико [11] (02.11.2022 09:54)
по магу, но не уверен )
Урон=базовый_урон*(1+мощь_магии/100)*0.5((защита_от_магии-10*подавление)/(250*k))
k для 10 лв 1.45 по моим наблюдениям.
При 10*подавление>=защита от магии Урон=базовый_урон*(1+мощь_магии/100)
Порог от магии 800 от урона 1200 Стратосферико [11] (03.11.2022 23:03)
легко |