From 18e6a01d28cecfdda732137dc1a929028258e2cd Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 25 May 2019 01:13:25 +0000 Subject: [PATCH] Skill power multiplier is related to final damage. --- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- .../data/scripts/handlers/effecthandlers/EnergyAttack.java | 4 ++-- .../data/scripts/handlers/effecthandlers/PhysicalAttack.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackHpLink.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java | 3 ++- .../handlers/effecthandlers/PhysicalAttackWeaponBonus.java | 3 ++- .../scripts/handlers/effecthandlers/PhysicalSoulAttack.java | 3 ++- .../java/org/l2jmobius/gameserver/model/stats/Formulas.java | 3 ++- 84 files changed, 168 insertions(+), 96 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3ef587d9c1..9761b0dd1d 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3ef587d9c1..9761b0dd1d 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3ef587d9c1..9761b0dd1d 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 884d744921..a8a8fe153a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 884d744921..a8a8fe153a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 884d744921..a8a8fe153a 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 884d744921..a8a8fe153a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 625e0a13e8..cdefb28b4e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 625e0a13e8..cdefb28b4e 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 625e0a13e8..cdefb28b4e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 625e0a13e8..cdefb28b4e 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 0b78dcdf7e..f36b4be75a 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -147,11 +147,11 @@ public final class EnergyAttack extends AbstractEffect // ...................________Initial Damage_________...__Charges Additional Damage__...____________________________________ // ATTACK CALCULATION ((77 * ((pAtk * lvlMod) + power) * (1 + (0.1 * chargesConsumed)) / pdef) * skillPower) + skillPowerAdd // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; + final double baseMod = (77 * ((attacker.getPAtk() * attacker.getLevelMod()) + _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0))) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * energyChargesBoost * pvpPveMod; } - damage = Math.max(0, damage); + damage = Math.max(0, damage * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)); effector.doAttack(damage, effected, skill, false, false, critical, false); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 3e27c1f7ed..28f03616cc 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -147,7 +147,7 @@ public final class PhysicalAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double abnormalMod = _abnormals.stream().anyMatch(effected::hasAbnormalType) ? _abnormalPowerMod : 1; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; @@ -169,6 +169,7 @@ public final class PhysicalAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * abnormalMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java index c4a874725e..f2bd264530 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java @@ -107,7 +107,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -128,6 +128,7 @@ public final class PhysicalAttackHpLink extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); damage *= -((effector.getCurrentHp() * 2) / effector.getMaxHp()) + 2; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java index 5a80d9a8bd..0f1db612ea 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackSaveHp.java @@ -120,7 +120,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -141,6 +141,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } final double minHp = (effected.getMaxHp() * _saveHp) / 100; diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 2953e82fa1..5d5a93da7e 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -141,7 +141,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; final double weaponBonus = _weaponBonus.getOrDefault(effector.getAttackType(), 1.0); - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -162,6 +162,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * ssmod * critMod * weaponBonus * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java index dd960cd129..8d43deff89 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java @@ -134,7 +134,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // Skill specific mods. final double weaponMod = effector.getAttackType().isRanged() ? 70 : 77; - final double power = (_power * effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1)) + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); + final double power = _power + effector.getStat().getValue(Stats.SKILL_POWER_ADD, 0); final double rangedBonus = effector.getAttackType().isRanged() ? attack + power : 0; final double critMod = critical ? Formulas.calcCritDamage(effector, effected, skill) : 1; double ssmod = 1; @@ -156,6 +156,7 @@ public final class PhysicalSoulAttack extends AbstractEffect // ```````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^``````````````````````````````````````^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ final double baseMod = (weaponMod * ((attack * effector.getLevelMod()) + power + rangedBonus)) / defence; damage = baseMod * soulsMod * ssmod * critMod * weaponTraitMod * generalTraitMod * attributeMod * pvpPveMod * randomMod; + damage *= effector.getStat().getValue(Stats.PHYSICAL_SKILL_POWER, 1); } effector.doAttack(damage, effected, skill, false, false, critical, false); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 625e0a13e8..cdefb28b4e 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -141,7 +141,7 @@ public final class Formulas final double pvpPveMod = calculatePvpPveBonus(attacker, target, skill, mcrit); // MDAM Formula. - double damage = ((attacker.getINT() * ((power * attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1)) + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; + double damage = ((attacker.getINT() * (power + attacker.getStat().getValue(Stats.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus; // Failure calculation if (Config.ALT_GAME_MAGICFAILURES && !calcMagicSuccess(attacker, target, skill)) @@ -179,6 +179,7 @@ public final class Formulas } damage = damage * critMod * generalTraitMod * attributeMod * randomMod * pvpPveMod; + damage *= attacker.getStat().getValue(Stats.MAGICAL_SKILL_POWER, 1); return damage; }