Форум » Общий форум РГ » Формулы » Ответить

Формулы

Arseny: Заклинания, по шаблону: 0.Название 1.Стихия, Школа. 2.Группа, подгруппа. 3.Мана. 4.Срок действия. 5.Формула. ------------------------

Ответов - 49, стр: 1 2 3 All

Arseny: в Ехcel можно подсчитать ее. прогрессия такая?: an= 1,05*an-1

hippocamus: Это в MathCad нужно. Посчитать лимит функции. Только я не пользовался.

GORynytch: Вообще надо, чтоб начиная со 100000 каждый следующий уровень был больше на 5%*SL, где SL = SL-1(или, возможно, правильнее написать L-54?)*0,99, начиная с 53. Не знаю, как это написать одной формулой.


hippocamus: Никак. if L > 53 then E := E0 + 5 * (L - 53) * E0 / 100;

GORynytch: Не, не так. Скорее: IF L > 53 Then E := E0 + E0 * (5 * 0.99 ^ (L - 53))/100, по идее, так. Только надо проверить как эта формула будет работать. Я не знаю как её проверить.

Arseny: E0 * (5 * 0.99 ^ (L - 53))/100 - на высоких уровнях дельта будет составлять несколько единиц/десятков опыта, из-за степени.

GORynytch: Да, я и хочу, чтоб для каждого следующего уровня требовалось меньше процентов опыта. Кол-во опыта, необходимого для уровня, будет возрастать, однако не так быстро, как при постоянной дельте 5%. Легче же набрать 1% при 1млрд опыта, чем 5%... И всё равно на высоких уровнях нужно будет много опыта, но не на столько, как при 5%. Да и МАХ кол-во уровней будет не, например, 1000, а тысяч 5 (цифры ~, от балды взял). Так что эта формула будет реально удобной. Посчитай её лимит, тогда точно узнаем, сколько уровней возможно, а так же проценты и необходимое кол-во опыта на каждый уровень.

GORynytch: Ну что, берёшься просчитать формулу IF L > 53 Then E := E0 + E0 * (5 * 0.99 ^ (L - 53))/100?

GORynytch: Можно просто, чтоб где-то после 220 уровня не падал процент (99^(L-53)), т.е. на 221 уровне % будет, как на 220 и т.д. (там уже будет меньше 1%, вроде), либо чтоб после 220 уровня каждые 200 уровней процент уменьшался не каждый уровень, раз в 3 уровня, потом раз в 7 уровней и т.д. Этого хватит уровней на 5000 так, чтоб не было, что на следующий уровень нужно набрать меньше опыта, чем на предыдущий.

hippocamus: Ну да. Иначе странно получается - что один из верхних уровней получить легче чем нижний...

GORynytch: Наконец дошли руки и до заклинаний. Буду теперь потихоньку выкладывать здесь заклинания -- цена, формулы расчёта, бонусы к ним по уровням навыка/поднавыков (наподобие как во 2 посте у Арсения).

GORynytch: Парни! Я наконец придумал хорошую формулу. Правда, она подходит, если защита больше атаки. Формула такая: D = D0 * 0.98ΔD, где D -- общий урон, который будет нанесён, D0 -- урон, который был бы нанесён одним отрядом другому без учёта атаки/защиты, ΔD = Защита - Атака. Т.о. когда ΔD = 0, то будет наноситься полный урон без штрафа (т.к. 0.980 = 1), если защита больше на 1, то урон будет умножаться на 0.98, если на 2 -- то на 0.9604 и т.д. Вычисление считаю целесообразным вести до 4 цифр после запятой. Всё равно урон будет округлятся до 1 ед. Над формулой вычисления урона, когда атака больше защиты я ещё подумаю. Но хотелось бы типа такого же -- убывающая прогрессия, когда разница в 5 атаки даст около 10% бонус урона, 20% будут требовать 11 или 12 атаки, 30% -- 20-22, 40% -- 30-32, 50% -- 45-50 ед. и т.д.

Arseny: Над формулой вычисления урона, когда атака больше защиты я ещё подумаю. Та же самая формула. Только показатель степени отрицательный. ΔD = -5 - коэффициент: 1,1062 ΔD = -12 - коэффициент: 1,2488 ... Коэффициент < 10%, при ΔD = 114; Коэффициент > 1000%, при ΔD = -114;

GORynytch: Ага, а вот это мне и не нужно. Т.к. при этом получается, что каждая следующая единица атаки даст немного больше, чем предыдущая. В результате при разнице в 100 атаки бонус урона за единицу будет 4 или 5% (а не 2!!!), а должен быть около 1,3%. Мне нужна УБЫВАЮЩАЯ формула, а не ВОЗРАСТАЮЩАЯ.

Arseny: Мне нужна УБЫВАЮЩАЯ формула, а не ВОЗРАСТАЮЩАЯ. По моему наоборот; Возрастающая функция, но с убывающим приростом; Используй логарифму;

GORynytch: Arseny пишет: По моему наоборот; Возрастающая функция, но с убывающим приростом; Используй логарифму; Ой, я это и хотел сказать. Т.е. за каждую следующую единицу атаки бонус должен быть немного меньше, чем за предидущую. Арсений, подумай, как это можно реализовать.

GORynytch: Парни, проверьте формулу DΔD = DΔD-1 + D0*1.02ΔD*0.01. Если я её правильно написал, то получится так: Общий урон (при Атаке>Защиты) равен урону с атакой на 1 ниже плюс 2 процента базового урона в степени разницы (Атака-Защита).

GORynytch: Ну так как, ПРОВЕРИТ КТО-НИБУДЬ МОЮ ФОРМУЛУ ИЛИ НЕТ? ПРАВИЛЬНО ЛИ ОНА НАПИСАНА/СФОРМУЛИРОВАНА???

Arseny: Не правильно. Если имелось ввиду 2% от (базового урона в степени разницы), тогда так: DΔD = DΔD-1 + 0.02*D0ΔD; Если имелось ввиду (2% базового урона) в степени разницы, тогда: DΔD = DΔD-1 + (0.02*D0)ΔD; В любом случае прогрессия очень сильно зависит от величины базового урона.

GORynytch: Вот мне и нужно, чтоб она зависела от базового урона. Я хотел формулу, чтоб было: разница в 1 атаки даёт 2% бонус, 2 атаки -- ≈3.98%, 3 -- ≈5.9605, 4 -- ≈7,9412, 5 -- ≈9,922 (цифры приблизительные, я не на калькуляторе считал). Т.е. за каждую следующую единицу бонус уменьшается. Правда я не совсем пойму обе твои фразы (я уже говорил, я прохалявил математику года два, а потом ни фига не догнал...), поэтому можешь написать пример (в виде двух колонок), допустим, до разницы в 300 атаки (урон возьми, допустим, 100, округление веди до единицы по всем правилам).



полная версия страницы