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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 1e4b17704a..911a706ca6 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java index eaf9678223..eff174edb5 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java index eaf9678223..eff174edb5 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java index eaf9678223..eff174edb5 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 3f2dddafb4..3527f31496 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 3f2dddafb4..3527f31496 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 3f2dddafb4..3527f31496 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 @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 0cb40d6b92..24e55cf408 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 @@ -230,19 +230,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } 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 0cb40d6b92..24e55cf408 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 @@ -230,19 +230,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 0cb40d6b92..24e55cf408 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -230,19 +230,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 3f2dddafb4..3527f31496 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -229,19 +229,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 0cb40d6b92..24e55cf408 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -230,19 +230,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); } diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 0cb40d6b92..24e55cf408 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -230,19 +230,19 @@ public class Formulas return Math.min(rate, 320) > Rnd.get(1000); } - double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); - if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) - { - finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); - return Math.min(finalRate, 320) > Rnd.get(1000); - } - double balanceMod = 1; if (creature.isPlayable()) { balanceMod = target.isPlayable() ? Config.PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } + double finalRate = target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE, rate) + target.getStat().getValue(Stat.DEFENCE_MAGIC_CRITICAL_RATE_ADD, 0); + if ((creature.getLevel() >= 78) && (target.getLevel() >= 78)) + { + finalRate += Math.sqrt(creature.getLevel()) + ((creature.getLevel() - target.getLevel()) / 25); + return Math.min(finalRate, 320 * balanceMod) > Rnd.get(1000); + } + return (Math.min(finalRate, 200) * balanceMod) > Rnd.get(1000); }