В этой части нашей франшизы Final Rising, мы побеседуем о Математике, которая стала использоваться в коде гораздо плотнее чем это было до моего вмешательства. Сейчас она - повсюду. Она влияет на некоторые способности, она является частью каких-либо условий и напрямую взаимодействует со скилами определённого типа.

Регенерация HP/MP/CP

HP

Формула HP: (base + (maxHp / 300.0)) * CONbonus * (hpRegMul + zoneBonus)
Где:
  • base = устанавливается после создания персонажа и имеет значение от 1.5 до 3.
  • CONBonus = массив из double элемента, который заполняется вот таким образом:
CONCompute = { 1.030, 27.632} - 0 и 1 используются как CONCompute[0]/[1].
CONbonus[i] = Math.floor(Math.pow(CONCompute[0], i - CONCompute[1]) * 100 + .5d) / 100;
  • hpRegMul = модификатор регена зависящий от некоторых игровых условий (при беге, хотьбе и т.д.). Является %-иком.
			// Calculate Movement bonus
			if (player.isSitting()) {
				regenMod *= 1.5; // Sitting
			} else if (!player.isMoving()) {
				regenMod *= 1.1; // Staying
			} else if (player.isRunning() && !player.hasAbility(Abilities.REGENERATE_PENALTY)) {
				regenMod *= 0.7; // Running
			}
  • zoneBonus = реген получаемый от зоны (тень древа матери и т.д.)

MP

Формула HP: (base + (maxMp / 200.0)) * MENbonus * (regenMod + zoneBonus)
Формула похожа на HP реген и здесь есть определённое значение, которое позволяет получить баланс между формулами, с одинаковыми модификаторами и показателями.
А именно тот самый ПАРАМЕТРBonus, который считается в самом начале запуска сервера и имеет базовые значения зависящие от вашего текущего параметра.
Чтобы не делать дурную работу и по нескольку раз хуярить разные формулы, какие-то гигантские мат. функции и т.д., лучше просчитывать всё в один момент времени и иметь эти данные завсегда на сервере.
На эту формулу так же действуют методы штрафов через regenMod.

CP

Регенерация CP теперь считается только по base и напрямую зависит от уровня персонажа.

Получение Опыта и SP

Exp = monster.getExpReward() * damage / totalDamage; базовая формула получения опыта
Exp += monsterPAtk + monsterMAtk + КОРЕНЬ(monsterMDef * monsterPDef)
HP_MOD = monserHPMul;
Formula = (xp * calcExpSpDiff) * playerExpRate * HP_MOD;
Где calcExpSpDiff это разница уровней между персонажем и монстром:
		double pow = 1.0;
		if (diff > 4) {
			switch (diff) {
				case 5:
					pow = 0.95;
					break;
				case 6:
					pow = 0.9;
					break;
				case 7:
					pow = 0.85;
					break;
				case 8:
					pow = 0.8;
					break;
				case 9:
					pow = 0.75;
					break;
				case 10:
					pow = 0.7;
					break;
				default:
					pow = 0.;
			}
		} else if (diff < -10) {
			pow = 0.4;
		} else {
			switch (diff) {
				case -2:
					pow = 1.05;
					break;
				case -3:
					pow = 1.1;
					break;
				case -4:
					pow = 1.15;
					break;
				case -5:
					pow = 1.2;
					break;
				case -6:
					pow = 1.25;
					break;
				case -7:
					pow = 1.3;
					break;
				case -8:
					pow = 1.35;
					break;
				case -9:
					pow = 1.4;
					break;
				case -10:
					pow = 1.5;
					break;
			}
		}
Как можно заметить, теперь EXP/SP получаются гораздо быстрее и зависит это от статов моба (Атака, Защита). В будущем, эта формула будет корректироваться и подводиться под идеальный расчёт получения EXP/SP, чтобы не делать кач игрока таким ебанутым и неумолимым.
При всё при этом, не стоит забывать и про старый добрый Over-Hit, который давал на 25% от получаемого опыта. Сейчас он переработан и его ограничитель до 25% был увеличен до 100%, а если игрок выдал по монстру урон не совместимый с жизнью (слил фулл хп скилом и произвёл ваншот), то ограничитель вовсе не срабатывает и становится максимальным согласно вашему урону.

Блок щитом, уклонение и отражение

Для трёх этих физических функций, действует одна система: Уклонение, блок и отражение, невозможно, если враг находится позади вас, или вы находитесь в дизейбл состоянии (под негативным статусом: Stun, Sleep, Paralyze). Сама идея того, что чар мог уклоняться от атак во время действия таких статусов - какое-то откровенное говно ;D, поэтому я решил, что пора бы и исправить.
Отражение имеет собственную анимацию если выполняется со щитом и скилл зависит от щита. Да-да, он реально берёт и отправляет магию обратно в заклинателя (визуально и технически).
Уклонение же дополнительно влияет и на скилы. Теперь, юзая Ultimate Evasion он не будет просто проёбан и ТСС от глада в ебало вы с вероятностью 40-60% НЕ получите, мои поздравления ;D.

Урон

Изменилась механика нанесения урона, в особенности изменилась механика расчёта урона от Sonic и Charge скилов. Теперь глад и тиран, совсем разные, что позволит создать собственные стили игры для каждого.

Крит. Урон

Умножает ваш урон не на x2 а на x1.5. Такое решение было принято в связи с частым критами воинов и не очень частыми критами магов. Так же в связи с имзенением, были внесены нерфы по целому ряду баффов, дающим шанс крит. удара.
`
ОЖИДАНИЕ РЕКЛАМЫ...