diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java index 74b1bfdaed..4f232ab070 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -251,6 +251,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/08900-08999.xml index e2d943df24..32a4ebb02f 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10000-10099.xml index 36ac7a9037..d0d490cdf2 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10000-10099.xml @@ -645,7 +645,6 @@ {base + (base / 100 * subIndex)} true - 5 -70 @@ -749,7 +748,6 @@ {base + (base / 100 * subIndex)} true - 5 1 @@ -844,7 +842,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -940,7 +937,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1039,7 +1035,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1129,7 +1125,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 -90 @@ -5157,7 +5152,7 @@ 21799 - 15 + 10 true diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10200-10299.xml index 69a1ef6766..e54f2d18f0 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10200-10299.xml @@ -718,7 +718,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -820,7 +819,7 @@ true 3 - 3 + 10 {base + base / 100 * subIndex} @@ -915,7 +914,6 @@ true 3 - 3 true @@ -1133,7 +1131,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1471,7 +1468,6 @@ 17055 true - 3 3 @@ -1834,7 +1830,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2205,7 +2201,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2561,7 +2557,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10300-10399.xml index b363e10683..2fe37c6c6e 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10300-10399.xml @@ -785,7 +785,7 @@ true - 15 + 10 3 @@ -938,7 +938,6 @@ 39060 true - 15 true @@ -1182,7 +1181,6 @@ 29911 true - 5 @@ -1324,7 +1322,7 @@ true - 15 + 10 0.7 @@ -1371,7 +1369,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml index a6b073e410..a9d6ef5e9c 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10700-10799.xml index 97373e7602..db5e6357d3 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/10700-10799.xml @@ -76,7 +76,7 @@ 30 PER - + 10 11 @@ -1077,7 +1077,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1177,7 +1177,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1271,7 +1270,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1587,7 +1586,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1688,7 +1687,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1784,7 +1783,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1876,7 +1875,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2325,7 +2324,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2379,7 +2378,7 @@ {base + base / 100 * subIndex} - 5 + 10 diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/11500-11599.xml index 021324e0d8..edf11834d5 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/11500-11599.xml @@ -557,7 +557,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -665,7 +664,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -2982,7 +2980,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/19100-19199.xml index bc23e5469c..b14fd3e501 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/21400-21499.xml index 3ed7ad05bb..9687ada1c7 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/21400-21499.xml @@ -1104,7 +1104,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30500-30599.xml index cad1687c68..0632b2c35c 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30500-30599.xml @@ -115,7 +115,6 @@ 49514 51032 - 15 STUN 1.2 true @@ -246,7 +245,6 @@ 0.7 true - 15 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -403,7 +401,6 @@ 94517 true - 15 true @@ -485,7 +482,6 @@ 94517 0.5 - 15 true @@ -554,7 +550,6 @@ 41083 42343 - 15 THROW_UP @@ -646,7 +641,6 @@ 51343 52917 - 15 400 @@ -1568,7 +1562,7 @@ DIFF - + 10 20 diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30600-30699.xml index 04e118629d..96b07bcc71 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt index b11b1ac16a..4d9feafb85 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/stats/skills/documentation.txt @@ -221,6 +221,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -287,7 +288,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java index fd67c5a494..be7e1eb712 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -126,7 +126,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java index 74b1bfdaed..4f232ab070 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -251,6 +251,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/08900-08999.xml index c488396288..1089bd75c1 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10000-10099.xml index 5be954e94f..bd0ade4da2 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10000-10099.xml @@ -645,7 +645,6 @@ {base + (base / 100 * subIndex)} true - 5 -70 @@ -749,7 +748,6 @@ {base + (base / 100 * subIndex)} true - 5 1 @@ -844,7 +842,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -940,7 +937,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1039,7 +1035,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1129,7 +1125,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 -90 @@ -5275,7 +5270,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10200-10299.xml index 2fb56a2179..7f2c723ec8 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10200-10299.xml @@ -718,7 +718,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -820,7 +819,7 @@ true 3 - 3 + 10 {base + base / 100 * subIndex} @@ -915,7 +914,6 @@ true 3 - 3 true @@ -1133,7 +1131,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1477,7 +1474,6 @@ 17055 true - 3 3 @@ -1852,7 +1848,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2224,7 +2220,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2595,7 +2591,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10300-10399.xml index a62be26320..b377bb92fc 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10300-10399.xml @@ -793,7 +793,7 @@ true - 15 + 10 {base + base / 100 * subIndex} @@ -953,7 +953,6 @@ {base + base / 100 * subIndex} true - 15 true @@ -1210,7 +1209,6 @@ 29911 true - 5 @@ -1354,7 +1352,7 @@ true - 15 + 10 {base + base / 100 * subIndex} 0.7 @@ -1403,7 +1401,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10500-10599.xml index dd236ee972..3802487c4a 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10700-10799.xml index 714d047ccf..2bbc853c14 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/10700-10799.xml @@ -81,7 +81,7 @@ 30 PER - + 10 11 @@ -1142,7 +1142,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1242,7 +1242,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1336,7 +1335,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1652,7 +1651,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1753,7 +1752,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1849,7 +1848,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1941,7 +1940,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2409,7 +2408,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2463,7 +2462,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/11500-11599.xml index 60f26ac9e4..f0224bedff 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/11500-11599.xml @@ -559,7 +559,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -667,7 +666,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3121,7 +3119,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13700-13799.xml index 6ac9a0032d..6c4bf5b03a 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13800-13899.xml index 5f727c6621..faca4c9026 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/13800-13899.xml @@ -1545,7 +1545,7 @@ icon.ensoul_big_p P - + {5+index} @@ -1841,7 +1841,7 @@ PER - + 3 4 @@ -2007,7 +2007,7 @@ DIFF - + 3 4 @@ -2675,7 +2675,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/19100-19199.xml index 0c58d6f23a..abbeaa4159 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/21400-21499.xml index b33611b302..e5dd23539a 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/21400-21499.xml @@ -1102,7 +1102,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30500-30599.xml index 4c71ce8905..7dbb13c536 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30500-30599.xml @@ -122,7 +122,7 @@ {base + base / 100 * subIndex} - 15 + 10 {base + base / 100 * subIndex} STUN @@ -257,7 +257,7 @@ 0.7 true - 15 + 10 {base + base / 100 * subIndex} @@ -427,7 +427,7 @@ true - 15 + 10 {base + base / 100 * subIndex} true @@ -513,7 +513,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} true @@ -588,7 +588,6 @@ 42343 {base + base / 100 * subIndex} - 15 THROW_UP @@ -687,7 +686,6 @@ 52917 {base + base / 100 * subIndex} - 15 400 @@ -1717,7 +1715,7 @@ DIFF - + 10 20 @@ -2442,7 +2440,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30600-30699.xml index faac12dc22..0a6211c1dd 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt index b11b1ac16a..4d9feafb85 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_02.5_Underground/dist/game/data/stats/skills/documentation.txt @@ -221,6 +221,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -287,7 +288,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java index fd67c5a494..be7e1eb712 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -126,7 +126,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java index 74b1bfdaed..4f232ab070 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -251,6 +251,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/08900-08999.xml index 67f1741c1d..7054ef1b99 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10000-10099.xml index d69a7ba12b..deccb89b24 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10000-10099.xml @@ -644,7 +644,6 @@ {base + (base / 100 * subIndex)} true - 5 -70 @@ -748,7 +747,6 @@ {base + (base / 100 * subIndex)} true - 5 1 @@ -843,7 +841,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -939,7 +936,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1038,7 +1034,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1128,7 +1124,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 -90 @@ -5457,7 +5452,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10200-10299.xml index f427b565e8..d4b6392f6b 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10200-10299.xml @@ -718,7 +718,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -820,7 +819,7 @@ true 3 - 3 + 10 {base + base / 100 * subIndex} @@ -915,7 +914,6 @@ true 3 - 3 true @@ -1133,7 +1131,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1477,7 +1474,6 @@ 17055 true - 3 3 @@ -1857,7 +1853,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2229,7 +2225,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2600,7 +2596,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10300-10399.xml index 22023d1bd1..9a996c7a00 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10300-10399.xml @@ -796,7 +796,7 @@ true - 15 + 10 {base + base / 100 * subIndex} @@ -956,7 +956,6 @@ {base + base / 100 * subIndex} true - 15 true @@ -1213,7 +1212,6 @@ 29911 true - 5 @@ -1357,7 +1355,7 @@ true - 15 + 10 {base + base / 100 * subIndex} 0.7 @@ -1406,7 +1404,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10500-10599.xml index c68307bde4..164cc6278b 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10700-10799.xml index f6b59858ec..2294a17b22 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10700-10799.xml @@ -81,7 +81,7 @@ 30 PER - + 10 11 @@ -1142,7 +1142,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1242,7 +1242,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1336,7 +1335,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1652,7 +1651,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1753,7 +1752,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1849,7 +1848,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1941,7 +1940,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2409,7 +2408,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2463,7 +2462,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10900-10999.xml index a61c67a90b..a8373622e9 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/10900-10999.xml @@ -411,7 +411,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/11500-11599.xml index 46608fa84a..e60c95f330 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/11500-11599.xml @@ -559,7 +559,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -667,7 +666,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3122,7 +3120,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13700-13799.xml index 6ac9a0032d..6c4bf5b03a 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13800-13899.xml index 6643dc519d..bf78be9eb3 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/13800-13899.xml @@ -1545,7 +1545,7 @@ icon.ensoul_big_p P - + {5+index} @@ -1841,7 +1841,7 @@ PER - + 3 4 @@ -2007,7 +2007,7 @@ DIFF - + 3 4 @@ -2675,7 +2675,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/19100-19199.xml index 89f70b25cd..20f9a632b4 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/21400-21499.xml index 788570c8a5..06d82c39b1 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/21400-21499.xml @@ -1103,7 +1103,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30500-30599.xml index 54567dc079..7f1d9c0a21 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30500-30599.xml @@ -122,7 +122,7 @@ {base + base / 100 * subIndex} - 15 + 10 {base + base / 100 * subIndex} STUN @@ -257,7 +257,7 @@ 0.7 true - 15 + 10 {base + base / 100 * subIndex} @@ -427,7 +427,7 @@ true - 15 + 10 {base + base / 100 * subIndex} true @@ -513,7 +513,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} true @@ -588,7 +588,6 @@ 42343 {base + base / 100 * subIndex} - 15 THROW_UP @@ -687,7 +686,6 @@ 52917 {base + base / 100 * subIndex} - 15 400 @@ -1733,7 +1731,7 @@ DIFF - + 10 20 @@ -2458,7 +2456,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30600-30699.xml index faac12dc22..0a6211c1dd 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt index b11b1ac16a..4d9feafb85 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_03.0_Helios/dist/game/data/stats/skills/documentation.txt @@ -221,6 +221,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -287,7 +288,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java index fd67c5a494..be7e1eb712 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -126,7 +126,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java index 5e397f9a94..0ab4cce3d2 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -255,6 +255,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/08900-08999.xml index 67f1741c1d..7054ef1b99 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10000-10099.xml index 8d94039a8d..426f60d762 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10000-10099.xml @@ -644,7 +644,6 @@ {base + (base / 100 * subIndex)} true - 5 -70 @@ -748,7 +747,6 @@ {base + (base / 100 * subIndex)} true - 5 1 @@ -843,7 +841,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -939,7 +936,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1038,7 +1034,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1128,7 +1124,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 -90 @@ -5428,7 +5423,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10200-10299.xml index f82d5ee654..04499d8c06 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10200-10299.xml @@ -718,7 +718,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -820,7 +819,7 @@ true 3 - 3 + 10 {base + base / 100 * subIndex} @@ -915,7 +914,6 @@ true 3 - 3 true @@ -1133,7 +1131,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1477,7 +1474,6 @@ 17055 true - 3 3 @@ -1851,7 +1847,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2197,7 +2193,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2568,7 +2564,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10300-10399.xml index 19349be198..ffa38029c1 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10300-10399.xml @@ -809,7 +809,7 @@ true - 15 + 10 {base + base / 100 * subIndex} @@ -969,7 +969,6 @@ {base + base / 100 * subIndex} true - 15 true @@ -1226,7 +1225,6 @@ 29911 true - 5 @@ -1369,7 +1367,7 @@ true - 15 + 10 {base + base / 100 * subIndex} 0.7 @@ -1418,7 +1416,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml index 68da56b945..b7250667ef 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10700-10799.xml index 06b0c3da99..cddbe1f007 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10700-10799.xml @@ -80,7 +80,7 @@ 30 PER - + 10 11 @@ -1167,7 +1167,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1267,7 +1267,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1361,7 +1360,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1677,7 +1676,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1778,7 +1777,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1874,7 +1873,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1966,7 +1965,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2414,7 +2413,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2467,7 +2466,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10900-10999.xml index 202081cced..cfdee645c6 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/10900-10999.xml @@ -411,7 +411,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/11500-11599.xml index 6ebd750e2b..07ec3dc862 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/11500-11599.xml @@ -559,7 +559,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -667,7 +666,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3112,7 +3110,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13700-13799.xml index f13de3a550..a6920e9387 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13800-13899.xml index 8ca711981a..ee107d591d 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19100-19199.xml index f611c4fc65..4e691a28e9 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19200-19299.xml index 01aa400a59..6a981bdc0a 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/19200-19299.xml @@ -1580,7 +1580,7 @@ icon.skill1532 P - + 10 PER @@ -1669,7 +1669,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/21400-21499.xml index b39eb7affe..7fb05251f3 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/21400-21499.xml @@ -1103,7 +1103,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/27900-27999.xml index a489778586..4503144461 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30500-30599.xml index 642baf8fbe..0101286bef 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30500-30599.xml @@ -122,7 +122,7 @@ {base + base / 100 * subIndex} - 15 + 10 {base + base / 100 * subIndex} STUN @@ -257,7 +257,7 @@ 0.7 true - 15 + 10 {base + base / 100 * subIndex} @@ -427,7 +427,7 @@ true - 15 + 10 {base + base / 100 * subIndex} true @@ -513,7 +513,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} true @@ -588,7 +588,6 @@ 42343 {base + base / 100 * subIndex} - 15 THROW_UP @@ -687,7 +686,6 @@ 52917 {base + base / 100 * subIndex} - 15 400 @@ -1733,7 +1731,7 @@ DIFF - + 10 20 @@ -2458,7 +2456,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30600-30699.xml index faac12dc22..0a6211c1dd 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt index 5ddb905d4f..92841a95a4 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/stats/skills/documentation.txt @@ -225,6 +225,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -292,7 +293,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java index bcad6fd357..9b69f1e6bc 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -126,7 +126,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java index e03408370e..27bac64a77 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -259,6 +259,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/08900-08999.xml index 2b57c0f58d..e4ae17fe7a 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10000-10099.xml index 176bdf9590..02b073e6e0 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10000-10099.xml @@ -659,7 +659,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -755,7 +754,6 @@ {base + (base / 100 * subIndex)} true - 60 -20 @@ -849,7 +847,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 @@ -941,7 +938,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1041,7 +1037,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1134,7 +1130,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 @@ -6023,7 +6018,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10200-10299.xml index 2872de1166..f714782ee8 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10200-10299.xml @@ -723,7 +723,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -825,7 +824,7 @@ true 3 - 3 + 10 {base + base / 100 * subIndex} @@ -920,7 +919,6 @@ true 3 - 3 true @@ -1138,7 +1136,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1482,7 +1479,6 @@ 17055 true - 3 3 @@ -1856,7 +1852,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2202,7 +2198,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2573,7 +2569,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10300-10399.xml index 69c737369b..626b22d9b7 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10300-10399.xml @@ -809,7 +809,7 @@ true - 15 + 10 {base + base / 100 * subIndex} @@ -969,7 +969,6 @@ {base + base / 100 * subIndex} true - 15 true @@ -1225,11 +1224,9 @@ 29911 true - 5 3 - 15 9180 9710 @@ -1382,7 +1379,7 @@ true - 15 + 10 {base + base / 100 * subIndex} 0.7 @@ -1431,7 +1428,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10500-10599.xml index 2111d48b1f..c4bf3a0c80 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10700-10799.xml index 74fadbce11..a50590844c 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10700-10799.xml @@ -80,7 +80,7 @@ 30 PER - + 10 11 @@ -890,7 +890,7 @@ 100 PER - + 10 PER @@ -1229,7 +1229,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1332,7 +1332,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1426,7 +1425,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1742,7 +1741,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1843,7 +1842,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1939,7 +1938,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2031,7 +2030,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2479,7 +2478,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2532,7 +2531,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10900-10999.xml index ebb056e2f7..e7a8e642f9 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/10900-10999.xml @@ -411,7 +411,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/11500-11599.xml index 29877404ac..90086f81c2 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/11500-11599.xml @@ -570,7 +570,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -686,7 +685,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3281,7 +3279,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13700-13799.xml index 61416a2619..4533c2d653 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13800-13899.xml index 3e7080d1dc..e9c651a451 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19100-19199.xml index 0d28970272..d2a2f96268 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19200-19299.xml index ef83d498a8..7573c1751b 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19200-19299.xml @@ -1619,7 +1619,7 @@ icon.skill1532 P - + 10 PER @@ -1708,7 +1708,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19500-19599.xml index 219e94f210..731c7a0dbe 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/19500-19599.xml @@ -1237,7 +1237,6 @@ 20666 23468 - 5 @@ -1296,7 +1295,6 @@ 40289 true - 90 600 @@ -1363,7 +1361,6 @@ 47711 true - 90 600 @@ -1430,7 +1427,6 @@ 47711 true - 90 600 @@ -1493,7 +1489,6 @@ 45591 47711 - 5 @@ -1606,7 +1601,6 @@ 47711 true - 5 @@ -1696,7 +1690,6 @@ 16349 true - 90 600 @@ -1869,7 +1862,6 @@ 15623 16349 - 5 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/21400-21499.xml index fd5874657e..1d0a6269dc 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/21400-21499.xml @@ -1103,7 +1103,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/27900-27999.xml index bd478dfcc4..339b2a49ef 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/28000-28099.xml index 4bb596fa86..3e12829e34 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30500-30599.xml index e200d57860..42226f6bfa 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30500-30599.xml @@ -122,7 +122,7 @@ {base + base / 100 * subIndex} - 15 + 10 {base + base / 100 * subIndex} STUN @@ -257,7 +257,7 @@ 0.7 true - 15 + 10 {base + base / 100 * subIndex} @@ -427,7 +427,7 @@ true - 15 + 10 {base + base / 100 * subIndex} true @@ -513,7 +513,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} true @@ -588,7 +588,6 @@ 42343 {base + base / 100 * subIndex} - 15 THROW_UP @@ -687,7 +686,6 @@ 52917 {base + base / 100 * subIndex} - 15 400 @@ -1759,7 +1757,7 @@ DIFF - + 10 20 @@ -2529,7 +2527,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30600-30699.xml index 8554c3146b..03c8a30775 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/35000-35099.xml index 30c9cc9a95..56a0a32e6a 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/35000-35099.xml @@ -1173,7 +1173,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt index df9ffc582f..7bc3a9e080 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/stats/skills/documentation.txt @@ -229,6 +229,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -297,7 +298,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java index d9a19da141..5a6836c1c2 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -128,7 +128,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java index 2c6350195a..b22f420b93 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -260,6 +260,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/08900-08999.xml index 2b57c0f58d..e4ae17fe7a 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml index f87145a606..ce5593fa9a 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10000-10099.xml @@ -659,7 +659,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -755,7 +754,6 @@ {base + (base / 100 * subIndex)} true - 60 -20 @@ -849,7 +847,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 @@ -941,7 +938,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1041,7 +1037,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1134,7 +1130,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 @@ -6023,7 +6018,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10200-10299.xml index 5c58925676..70d7bc8257 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10200-10299.xml @@ -723,7 +723,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -825,7 +824,7 @@ true 3 - 3 + 10 {base + base / 100 * subIndex} @@ -920,7 +919,6 @@ true 3 - 3 true @@ -1138,7 +1136,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1482,7 +1479,6 @@ 17055 true - 3 3 @@ -1856,7 +1852,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2202,7 +2198,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2573,7 +2569,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10300-10399.xml index 4b3f4efcaf..7b1a652838 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10300-10399.xml @@ -809,7 +809,7 @@ true - 15 + 10 {base + base / 100 * subIndex} @@ -969,7 +969,6 @@ {base + base / 100 * subIndex} true - 15 true @@ -1225,11 +1224,9 @@ 29911 true - 5 3 - 15 9180 9710 @@ -1382,7 +1379,7 @@ true - 15 + 10 {base + base / 100 * subIndex} 0.7 @@ -1431,7 +1428,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml index 659281e09c..df3727b2c0 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10700-10799.xml index f4f9e194b7..ed93793bed 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10700-10799.xml @@ -80,7 +80,7 @@ 30 PER - + 10 11 @@ -888,7 +888,7 @@ 100 PER - + 10 PER @@ -1227,7 +1227,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1330,7 +1330,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1424,7 +1423,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1740,7 +1739,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1841,7 +1840,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1937,7 +1936,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2029,7 +2028,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2477,7 +2476,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2530,7 +2529,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10900-10999.xml index ff3aa1756f..7df1eff4c1 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/10900-10999.xml @@ -411,7 +411,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/11500-11599.xml index f60cfc8571..69fdc92fe9 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/11500-11599.xml @@ -570,7 +570,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -686,7 +685,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3281,7 +3279,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13700-13799.xml index 3d53afb79e..c4a8575338 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13800-13899.xml index d70debcc5f..63d547b427 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19100-19199.xml index f9c1734a78..e3f95fa729 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19200-19299.xml index 0f6a92319c..c7ca6ba088 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19200-19299.xml @@ -1619,7 +1619,7 @@ icon.skill1532 P - + 10 PER @@ -1708,7 +1708,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19500-19599.xml index 55a43809df..03101be45a 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/19500-19599.xml @@ -1237,7 +1237,6 @@ 20666 23468 - 5 @@ -1296,7 +1295,6 @@ 40289 true - 90 600 @@ -1363,7 +1361,6 @@ 47711 true - 90 600 @@ -1430,7 +1427,6 @@ 47711 true - 90 600 @@ -1493,7 +1489,6 @@ 45591 47711 - 5 @@ -1606,7 +1601,6 @@ 47711 true - 5 @@ -1696,7 +1690,6 @@ 16349 true - 90 600 @@ -1869,7 +1862,6 @@ 15623 16349 - 5 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/21400-21499.xml index f808170b3c..31ad5c554f 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/21400-21499.xml @@ -1103,7 +1103,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/27900-27999.xml index 9fd75084e7..08dd7a9f75 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/28000-28099.xml index bc3e20edec..a1ef91f66c 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30500-30599.xml index d4933634b6..fcd949a268 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30500-30599.xml @@ -122,7 +122,7 @@ {base + base / 100 * subIndex} - 15 + 10 {base + base / 100 * subIndex} STUN @@ -257,7 +257,7 @@ 0.7 true - 15 + 10 {base + base / 100 * subIndex} @@ -427,7 +427,7 @@ true - 15 + 10 {base + base / 100 * subIndex} true @@ -513,7 +513,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} true @@ -588,7 +588,6 @@ 42343 {base + base / 100 * subIndex} - 15 THROW_UP @@ -687,7 +686,6 @@ 52917 {base + base / 100 * subIndex} - 15 400 @@ -1759,7 +1757,7 @@ DIFF - + 10 20 @@ -2532,7 +2530,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30600-30699.xml index 8554c3146b..03c8a30775 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35000-35099.xml index 3dba9e58ff..ec8d49e26a 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35000-35099.xml @@ -1173,7 +1173,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35200-35299.xml b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35200-35299.xml index 3e01b19d42..564317df65 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35200-35299.xml +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/35200-35299.xml @@ -2751,7 +2751,7 @@ 5 80 - + 0 1 @@ -2765,7 +2765,6 @@ 8 10 - 0 PER @@ -2777,7 +2776,7 @@ 5 80 - + 0 1 @@ -2791,7 +2790,6 @@ 8 10 - 1 PER diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt index b49f6d2859..eb54365cfa 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/stats/skills/documentation.txt @@ -230,6 +230,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -298,7 +299,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java index 6bc89a4baf..b79755260e 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -128,7 +128,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java index 2c6350195a..b22f420b93 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -260,6 +260,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/08900-08999.xml index 2b57c0f58d..e4ae17fe7a 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml index 6fa2519bee..8530c9cb87 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10000-10099.xml @@ -681,7 +681,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -783,7 +782,6 @@ {base + (base / 100 * subIndex)} true - 60 -20 @@ -885,7 +883,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 @@ -983,7 +980,6 @@ 17889 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1089,7 +1085,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1188,7 +1184,6 @@ 28182 {base + (base / 100 * subIndex)} - 5 @@ -5979,12 +5974,12 @@ PARALYZE PARALYZE - 40 + 15 {base + (base / 100 * subIndex)} 10-10 600 - MAGIC + PHYSICAL 1785 6 1 @@ -6114,7 +6109,7 @@ SINGLE - -35 + 30 PER @@ -6185,7 +6180,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10200-10299.xml index b8f81ca02b..8b87171fed 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10200-10299.xml @@ -731,7 +731,6 @@ 25615 {base + (base / 100 * subIndex)} - 5 true @@ -841,7 +840,7 @@ true 3 - 3 + 10 {base + (base / 100 * subIndex)} @@ -944,7 +943,6 @@ true 3 - 3 true @@ -1178,7 +1176,6 @@ {base + (base / 100 * subIndex)} true - 5 0.9 0.9 1.5 @@ -1542,7 +1539,6 @@ 19327 true - 3 3 @@ -1922,7 +1918,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2275,7 +2271,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2652,7 +2648,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10300-10399.xml index 977122eade..3a4ef13c83 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10300-10399.xml @@ -825,7 +825,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -991,7 +991,6 @@ {base + (base / 100 * subIndex)} true - 15 true @@ -1261,11 +1260,9 @@ 33647 true - 5 3 - 15 9180 9710 @@ -1426,7 +1423,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} 0.7 @@ -1475,7 +1472,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml index de0c2b62e5..2f10843621 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10500-10599.xml @@ -396,11 +396,11 @@ STR PER - + 100 PER - + 10 PER diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10700-10799.xml index 5493248fd2..c0c51920ff 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10700-10799.xml @@ -86,7 +86,7 @@ 30 PER - + 10 11 @@ -908,7 +908,7 @@ 100 PER - + 10 PER @@ -1255,7 +1255,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -1366,7 +1366,6 @@ {base + (base / 100 * subIndex)} true - 5 500 @@ -1468,7 +1467,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} @@ -1565,7 +1564,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} @@ -1800,7 +1799,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} true @@ -1909,7 +1908,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -2013,7 +2012,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -2113,7 +2112,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -2571,7 +2570,7 @@ {base + (base / 100 * subIndex)} - 5 + 10 {base + (base / 100 * subIndex)} @@ -2628,7 +2627,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10900-10999.xml index 8adc4d1aff..ec76385eb3 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/10900-10999.xml @@ -411,7 +411,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/11500-11599.xml index bbabba9465..38337e9d3f 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/11500-11599.xml @@ -586,7 +586,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -712,7 +711,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3387,7 +3385,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13700-13799.xml index f107ccf191..3c9664a3b9 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13800-13899.xml index cf48d6736e..f358821d4f 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19100-19199.xml index f0871df201..e23e7c38d4 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19200-19299.xml index 6bfd4a02b9..2ebbca81b8 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19200-19299.xml @@ -1619,7 +1619,7 @@ icon.skill1532 P - + 10 PER @@ -1708,7 +1708,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19500-19599.xml index e601117bf7..baa279532e 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/19500-19599.xml @@ -1251,7 +1251,6 @@ 24612 25756 - 5 @@ -1316,7 +1315,6 @@ 43885 true - 90 600 @@ -1389,7 +1387,6 @@ 52205 true - 90 600 @@ -1462,7 +1459,6 @@ 52205 true - 90 600 @@ -1531,7 +1527,6 @@ 49958 52205 - 5 @@ -1650,7 +1645,6 @@ 52205 true - 5 @@ -1748,7 +1742,6 @@ 17889 true - 90 600 @@ -1927,7 +1920,6 @@ 17119 17889 - 5 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/21400-21499.xml index 3abfc8236c..8a1e8f46c8 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/21400-21499.xml @@ -1104,7 +1104,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/27900-27999.xml index 5abc2b0cd2..93eda5a177 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/28000-28099.xml index c02684182f..2e9a256c96 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30500-30599.xml index 23365aab82..42e88bdff3 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30500-30599.xml @@ -128,7 +128,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} STUN @@ -269,7 +269,7 @@ 0.7 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -449,7 +449,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} true @@ -541,7 +541,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} true @@ -622,7 +622,6 @@ 45015 {base + (base / 100 * subIndex)} - 15 THROW_UP @@ -727,7 +726,6 @@ 56253 {base + (base / 100 * subIndex)} - 15 400 @@ -1822,7 +1820,7 @@ DIFF - + 10 20 @@ -2603,7 +2601,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30600-30699.xml index 8554c3146b..03c8a30775 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35000-35099.xml index 7c109768c3..5f9401a53f 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35000-35099.xml @@ -1564,7 +1564,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35200-35299.xml b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35200-35299.xml index eb82f0e3fc..4d9169ac6b 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35200-35299.xml +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/35200-35299.xml @@ -2751,7 +2751,7 @@ 5 80 - + 0 1 @@ -2765,7 +2765,6 @@ 8 10 - 0 PER @@ -2777,7 +2776,7 @@ 5 80 - + 0 1 @@ -2791,7 +2790,6 @@ 8 10 - 1 PER diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt index b49f6d2859..eb54365cfa 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/stats/skills/documentation.txt @@ -230,6 +230,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -298,7 +299,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java index a690c10f03..0e67f806f3 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java index 6bc89a4baf..b79755260e 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -128,7 +128,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java index b7d6256710..9f6d6b9c6a 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -260,6 +260,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/08900-08999.xml index 34c403afaa..aeceaafcb0 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml index ba2f5a55dd..fadf1b6b63 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10000-10099.xml @@ -681,7 +681,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -783,7 +782,6 @@ {base + (base / 100 * subIndex)} true - 60 -20 @@ -885,7 +883,6 @@ 23531 {base + (base / 100 * subIndex)} - 5 @@ -983,7 +980,6 @@ 25044 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1089,7 +1085,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1188,7 +1184,6 @@ 39454 {base + (base / 100 * subIndex)} - 5 @@ -5979,12 +5974,12 @@ PARALYZE PARALYZE - 40 + 15 {base + (base / 100 * subIndex)} 10-10 600 - MAGIC + PHYSICAL 1785 6 1 @@ -6114,7 +6109,7 @@ SINGLE - -35 + 30 PER @@ -6185,7 +6180,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10200-10299.xml index 7b875bcc5d..0ca3045413 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10200-10299.xml @@ -741,7 +741,6 @@ 25615 {base + (base / 100 * subIndex)} - 5 true @@ -851,7 +850,7 @@ true 3 - 3 + 10 {base + (base / 100 * subIndex)} @@ -954,7 +953,6 @@ true 3 - 3 true @@ -1188,7 +1186,6 @@ {base + (base / 100 * subIndex)} true - 5 0.9 0.9 1.5 @@ -1552,7 +1549,6 @@ 19327 true - 3 3 @@ -1932,7 +1928,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2285,7 +2281,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2662,7 +2658,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10300-10399.xml index b709ca9934..9aa4112188 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10300-10399.xml @@ -825,7 +825,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -991,7 +991,6 @@ {base + (base / 100 * subIndex)} true - 15 true @@ -1261,11 +1260,9 @@ 33647 true - 5 3 - 15 9180 9710 @@ -1426,7 +1423,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} 0.7 @@ -1475,7 +1472,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml index fbbfaa2beb..6b2f8f87c5 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10500-10599.xml @@ -396,11 +396,11 @@ STR PER - + 100 PER - + 10 PER diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10700-10799.xml index a11c2df800..743659f3e5 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10700-10799.xml @@ -86,7 +86,7 @@ 30 PER - + 10 11 @@ -908,7 +908,7 @@ 100 PER - + 10 PER @@ -1255,7 +1255,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -1366,7 +1366,6 @@ {base + (base / 100 * subIndex)} true - 5 500 @@ -1468,7 +1467,7 @@ {base + (base / 100 * subIndex)} - 60 + 5 {base + (base / 100 * subIndex)} @@ -1565,7 +1564,7 @@ {base + (base / 100 * subIndex)} - 60 + 5 {base + (base / 100 * subIndex)} @@ -1800,7 +1799,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} true @@ -1909,7 +1908,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -2013,7 +2012,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -2113,7 +2112,7 @@ true - 60 + 10 {base + (base / 100 * subIndex)} @@ -2571,7 +2570,7 @@ {base + (base / 100 * subIndex)} - 5 + 10 {base + (base / 100 * subIndex)} @@ -2628,7 +2627,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10900-10999.xml index 23dcb500a9..e963236995 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/10900-10999.xml @@ -411,7 +411,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/11500-11599.xml index a703444289..b704789638 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/11500-11599.xml @@ -586,7 +586,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -712,7 +711,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3378,11 +3376,11 @@ true - 5 + 10 {base + (base / 100 * subIndex)} - + -80 PER diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13700-13799.xml index 2bf7bcb462..ac32d47851 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13800-13899.xml index 13b19a3ac5..4f11758edf 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19100-19199.xml index 6a79417af9..43750b1994 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19200-19299.xml index bfa88e4e32..152dcfcd43 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19200-19299.xml @@ -1628,7 +1628,7 @@ icon.skill1532 P - + 10 PER @@ -1717,7 +1717,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19500-19599.xml index 142ef987b5..0da7a82beb 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/19500-19599.xml @@ -1251,7 +1251,6 @@ 23966 25044 - 5 @@ -1316,7 +1315,6 @@ 61439 true - 90 600 @@ -1389,7 +1387,6 @@ 52205 true - 90 600 @@ -1462,7 +1459,6 @@ 73087 true - 90 600 @@ -1531,7 +1527,6 @@ 69941 73087 - 5 @@ -1650,7 +1645,6 @@ 73087 true - 5 @@ -1748,7 +1742,6 @@ 25044 true - 90 600 @@ -1927,7 +1920,6 @@ 23966 25044 - 5 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/21400-21499.xml index 9dde3a884e..6878cdfe57 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/21400-21499.xml @@ -1104,7 +1104,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/27900-27999.xml index d68b95b44b..4ff6bc152d 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/28000-28099.xml index 37dc1f0586..4116b40f29 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30500-30599.xml index 956cf5ec99..783f7f23d3 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30500-30599.xml @@ -128,7 +128,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} STUN @@ -269,7 +269,7 @@ 0.7 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -449,7 +449,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} true @@ -541,7 +541,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} true @@ -622,7 +622,6 @@ 45015 {base + (base / 100 * subIndex)} - 15 THROW_UP @@ -727,7 +726,6 @@ 56253 {base + (base / 100 * subIndex)} - 15 400 @@ -1822,7 +1820,7 @@ DIFF - + 10 20 @@ -2603,7 +2601,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml index db214fdc92..599daccbfd 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30600-30699.xml @@ -24,7 +24,7 @@ 5 85 - + 1 PER @@ -48,7 +48,7 @@ 2 3 - + 1 PER @@ -408,7 +408,6 @@ 3978 true 3 - 5 true @@ -1369,7 +1368,6 @@ 4096 true 3 - 3 true @@ -2277,7 +2275,6 @@ 3469 true - 15 3 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30700-30799.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30700-30799.xml index d8d8e999af..5f13320c33 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30700-30799.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30700-30799.xml @@ -3066,7 +3066,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3140,7 +3140,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3209,7 +3209,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} true @@ -3699,7 +3699,6 @@ true 3 - 15 30 true @@ -3930,7 +3929,6 @@ {base + (base / 100 * subIndex)} true - 10 -23 @@ -4044,7 +4042,6 @@ {base + (base / 100 * subIndex)} true - 10 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30800-30899.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30800-30899.xml index 686838959a..2cfffac513 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30800-30899.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/30800-30899.xml @@ -201,7 +201,6 @@ 451 true - 15 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35000-35099.xml index 4c89d2d3c4..2f07136533 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35000-35099.xml @@ -1564,7 +1564,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35200-35299.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35200-35299.xml index 913f482507..aea6a36e23 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35200-35299.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35200-35299.xml @@ -2751,7 +2751,7 @@ 5 80 - + 0 1 @@ -2765,7 +2765,6 @@ 8 10 - 0 PER @@ -2777,7 +2776,7 @@ 5 80 - + 0 1 @@ -2791,7 +2790,6 @@ 8 10 - 1 PER diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35500-35599.xml b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35500-35599.xml index 48c41ed7fa..28e4af8c70 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35500-35599.xml +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/35500-35599.xml @@ -594,7 +594,7 @@ 100 DIFF - + 30 PER @@ -676,7 +676,7 @@ 100 DIFF - + 30 PER diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt index 57c7e34d70..d0fe268f13 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/stats/skills/documentation.txt @@ -230,6 +230,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -297,7 +298,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 4211b94981..7f40865c62 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java index 62ae1d78c4..bb815e784c 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -128,7 +128,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java index 313a90f199..5ac956a8f1 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -261,6 +261,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/08900-08999.xml index 8c7b68d5ef..b0c058198c 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10000-10099.xml index aac065f66c..10d5c64ccd 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10000-10099.xml @@ -762,7 +762,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -864,7 +863,6 @@ {base + (base / 100 * subIndex)} true - 5 -20 @@ -970,7 +968,6 @@ 23531 {base + (base / 100 * subIndex)} - 5 @@ -1068,7 +1065,6 @@ 25044 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;7002;18721;18722;28203;30516;35190 @@ -1174,7 +1170,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1273,7 +1269,6 @@ 39454 {base + (base / 100 * subIndex)} - 5 @@ -6358,7 +6353,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10200-10299.xml index b37487c066..5f42e506cd 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10200-10299.xml @@ -803,7 +803,6 @@ - 14506 @@ -821,7 +820,6 @@ 33299 {base + (base / 100 * subIndex)} - 5 true @@ -931,7 +929,7 @@ true 3 - 3 + 10 {base + (base / 100 * subIndex)} @@ -1033,7 +1031,6 @@ true 3 - 3 true @@ -1267,7 +1264,6 @@ {base + (base / 100 * subIndex)} true - 5 0.9 0.9 1.5 @@ -1633,7 +1629,6 @@ 25125 true - 3 -180 @@ -1981,7 +1976,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2327,7 +2322,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2731,7 +2726,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml index 7f60387f44..2212849665 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10300-10399.xml @@ -825,7 +825,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -991,7 +991,6 @@ {base + (base / 100 * subIndex)} true - 15 true @@ -1273,7 +1272,7 @@ 3 - 5 + 10 {base + (base / 100 * subIndex)} @@ -1360,41 +1359,33 @@ icon.skill10329 85 P + + + + BLUNT + + + 30 PER - - BLUNT - 15 PER - - BLUNT - 15 PER - - BLUNT - 30 PER - - BLUNT - - + 30 PER - - BLUNT - @@ -1466,7 +1457,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} 0.7 @@ -1518,7 +1509,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10500-10599.xml index c61cbee92d..d53a5feec5 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10500-10599.xml @@ -381,11 +381,11 @@ 2 STR - + 100 PER - + 10 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10700-10799.xml index 2895414aac..5d0c95a7b3 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10700-10799.xml @@ -86,7 +86,7 @@ 30 PER - + 10 11 @@ -920,6 +920,10 @@ STR + 100 + PER + + 10 PER @@ -1257,7 +1261,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -1368,7 +1372,6 @@ {base + (base / 100 * subIndex)} true - 5 500 @@ -1472,7 +1475,7 @@ {base + (base / 100 * subIndex)} - 30 + 5 {base + (base / 100 * subIndex)} @@ -1569,7 +1572,7 @@ {base + (base / 100 * subIndex)} - 30 + 5 {base + (base / 100 * subIndex)} @@ -1804,7 +1807,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} true @@ -1913,7 +1916,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2017,7 +2020,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2117,7 +2120,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2576,7 +2579,7 @@ {base + (base / 100 * subIndex)} - 5 + 10 {base + (base / 100 * subIndex)} @@ -2633,7 +2636,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10900-10999.xml index 2c95464910..043384b9e0 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/10900-10999.xml @@ -425,7 +425,7 @@ PER - + 15 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/11500-11599.xml index 14d02a9c3a..1fe00feaa8 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/11500-11599.xml @@ -664,7 +664,7 @@ - + 15338 15951 @@ -682,7 +682,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -820,7 +819,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3558,11 +3556,11 @@ true - 5 + 10 {base + (base / 100 * subIndex)} - + -50 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13600-13699.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13600-13699.xml index f911dd2dc7..41f8187231 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13600-13699.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13600-13699.xml @@ -1426,7 +1426,11 @@ 30 PER - + + 20 + PER + + 20 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13700-13799.xml index ff4ae1ba72..b3495a744d 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13700-13799.xml @@ -3016,7 +3016,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13800-13899.xml index 985f15748d..a46bd27860 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19100-19199.xml index 99f3b64363..ef2a612c99 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19100-19199.xml @@ -581,7 +581,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19200-19299.xml index ca4e61b004..e18dbfbcca 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19200-19299.xml @@ -155,11 +155,15 @@ 25 PER - + 25 PER - + + 25 + PER + + 25 PER @@ -1648,7 +1652,7 @@ icon.skill1532 P - + 10 PER @@ -1737,7 +1741,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19500-19599.xml index 24e8ed5a9e..d21ec291fc 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/19500-19599.xml @@ -1251,7 +1251,6 @@ 23966 25044 - 5 11139 @@ -1321,7 +1320,6 @@ 61439 true - 90 600 @@ -1394,7 +1392,6 @@ 52205 true - 90 600 @@ -1467,7 +1464,6 @@ 73087 true - 90 600 @@ -1536,7 +1532,6 @@ 69941 73087 - 5 @@ -1655,7 +1650,6 @@ 73087 true - 5 @@ -1932,7 +1926,6 @@ 23966 25044 - 5 @@ -2223,7 +2216,6 @@ 25044 true - 90 600 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/21400-21499.xml index eaf84de3fd..1b6da90000 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/21400-21499.xml @@ -1111,7 +1111,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/27900-27999.xml index 7d6c232fe4..1d86f9ac50 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/28000-28099.xml index 36ee0e8658..b45c5440c7 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30500-30599.xml index e6edf13c3f..14e8851fdf 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30500-30599.xml @@ -129,7 +129,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} STUN @@ -271,7 +271,7 @@ 0.7 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -455,7 +455,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} true @@ -547,7 +547,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} true @@ -613,7 +613,6 @@ - 17266 19164 @@ -629,7 +628,6 @@ 45015 {base + (base / 100 * subIndex)} - 15 THROW_UP @@ -735,7 +733,6 @@ 56253 {base + (base / 100 * subIndex)} - 15 400 @@ -1851,7 +1848,7 @@ DIFF - + 10 20 @@ -2678,7 +2675,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml index dd849e3ad4..298a0ac73e 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30600-30699.xml @@ -24,7 +24,7 @@ 5 85 - + 1 PER @@ -48,7 +48,7 @@ 2 3 - + 1 PER @@ -411,7 +411,6 @@ 3978 true 3 - 5 true @@ -1372,7 +1371,6 @@ 4096 true 3 - 3 true @@ -2273,7 +2271,6 @@ 3469 true - 15 3 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30700-30799.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30700-30799.xml index c0979e24ba..833d9557d3 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30700-30799.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30700-30799.xml @@ -3020,7 +3020,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3093,7 +3093,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3162,7 +3162,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} true @@ -3603,11 +3603,10 @@ true 3 - 15 30 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3842,7 +3841,6 @@ {base + (base / 100 * subIndex)} true - 10 -23 @@ -3956,7 +3954,6 @@ {base + (base / 100 * subIndex)} true - 10 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30800-30899.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30800-30899.xml index 113c570707..33ca3b4351 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30800-30899.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/30800-30899.xml @@ -201,7 +201,6 @@ 451 true - 15 @@ -1062,7 +1061,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35000-35099.xml index 08cea32f9c..37cfd79dbe 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35000-35099.xml @@ -2175,7 +2175,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35200-35299.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35200-35299.xml index 47a19c3799..e783b1aa19 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35200-35299.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35200-35299.xml @@ -2872,7 +2872,7 @@ 5 80 - + 0 1 @@ -2886,7 +2886,6 @@ 8 10 - 0 PER @@ -2898,7 +2897,7 @@ 5 80 - + 0 1 @@ -2912,7 +2911,6 @@ 8 10 - 1 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35500-35599.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35500-35599.xml index 7f7fc52145..df8394ddc1 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35500-35599.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35500-35599.xml @@ -605,7 +605,7 @@ 100 DIFF - + 30 PER @@ -687,7 +687,7 @@ 100 DIFF - + 30 PER diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35600-35699.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35600-35699.xml index 4a5dcb035c..4e61a70c8b 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35600-35699.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35600-35699.xml @@ -3673,7 +3673,7 @@ icon.elemental_necklace_wind_i00 P - + 1 2 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35700-35799.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35700-35799.xml index e4d45cc339..59a71934df 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35700-35799.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35700-35799.xml @@ -2137,7 +2137,7 @@ icon.bm_ring_of_fallen_angel P - + 1 2 diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35800-35899.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35800-35899.xml index 34b9ef1bc0..c778eb0add 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35800-35899.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/35800-35899.xml @@ -280,7 +280,7 @@ icon.dragon_accessary_necklace P - + 1 2 @@ -606,7 +606,7 @@ icon.dragon_accessary_earring P - + 1 2 @@ -932,7 +932,7 @@ icon.dragon_accessary_ring P - + 1 2 @@ -1089,6 +1089,16 @@ icon.skill0000 - A1 + 1 + P + 5 + + + 10 + + + 10 + + diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt index 6c4ba5435e..bd835b3b43 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/skills/documentation.txt @@ -231,6 +231,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -298,7 +299,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 4211b94981..7f40865c62 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java index 2c6d0f375a..8d8771f155 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -130,7 +130,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java index bd468ec7be..abe9fef3e2 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -262,6 +262,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/08900-08999.xml index 8c7b68d5ef..b0c058198c 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10000-10099.xml index e827cf74b5..787532cea4 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10000-10099.xml @@ -762,7 +762,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -864,7 +863,6 @@ {base + (base / 100 * subIndex)} true - 5 -20 @@ -970,7 +968,6 @@ 23531 {base + (base / 100 * subIndex)} - 5 @@ -1068,7 +1065,6 @@ 25044 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;7002;18721;18722;28203;30516;35190 @@ -1174,7 +1170,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1273,7 +1269,6 @@ 39454 {base + (base / 100 * subIndex)} - 5 @@ -6358,7 +6353,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10200-10299.xml index da92b66d11..5d17311592 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10200-10299.xml @@ -803,7 +803,6 @@ - 14506 @@ -821,7 +820,6 @@ 33299 {base + (base / 100 * subIndex)} - 5 true @@ -931,7 +929,7 @@ true 3 - 3 + 10 {base + (base / 100 * subIndex)} @@ -1033,7 +1031,6 @@ true 3 - 3 true @@ -1267,7 +1264,6 @@ {base + (base / 100 * subIndex)} true - 5 0.9 0.9 1.5 @@ -1633,7 +1629,6 @@ 25125 true - 3 -180 @@ -1981,7 +1976,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2327,7 +2322,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2731,7 +2726,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml index 7f60387f44..2212849665 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10300-10399.xml @@ -825,7 +825,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -991,7 +991,6 @@ {base + (base / 100 * subIndex)} true - 15 true @@ -1273,7 +1272,7 @@ 3 - 5 + 10 {base + (base / 100 * subIndex)} @@ -1360,41 +1359,33 @@ icon.skill10329 85 P + + + + BLUNT + + + 30 PER - - BLUNT - 15 PER - - BLUNT - 15 PER - - BLUNT - 30 PER - - BLUNT - - + 30 PER - - BLUNT - @@ -1466,7 +1457,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} 0.7 @@ -1518,7 +1509,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10500-10599.xml index 225a4d258b..7fc8f9e6d8 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10500-10599.xml @@ -381,11 +381,11 @@ 2 STR - + 100 PER - + 10 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10700-10799.xml index 6a9b1a3078..74398dfcef 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10700-10799.xml @@ -86,7 +86,7 @@ 30 PER - + 10 11 @@ -920,6 +920,10 @@ STR + 100 + PER + + 10 PER @@ -1257,7 +1261,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -1368,7 +1372,6 @@ {base + (base / 100 * subIndex)} true - 5 500 @@ -1472,7 +1475,7 @@ {base + (base / 100 * subIndex)} - 30 + 5 {base + (base / 100 * subIndex)} @@ -1569,7 +1572,7 @@ {base + (base / 100 * subIndex)} - 30 + 5 {base + (base / 100 * subIndex)} @@ -1804,7 +1807,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} true @@ -1913,7 +1916,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2017,7 +2020,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2117,7 +2120,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2576,7 +2579,7 @@ {base + (base / 100 * subIndex)} - 5 + 10 {base + (base / 100 * subIndex)} @@ -2633,7 +2636,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10900-10999.xml index ab7fff974a..2d9827cc31 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/10900-10999.xml @@ -425,7 +425,7 @@ PER - + 15 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/11500-11599.xml index 7b0802afb7..f71838ac21 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/11500-11599.xml @@ -664,7 +664,7 @@ - + 15338 15951 @@ -682,7 +682,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -820,7 +819,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3558,11 +3556,11 @@ true - 5 + 10 {base + (base / 100 * subIndex)} - + -50 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13600-13699.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13600-13699.xml index c7f8a0aae4..8776fe7c67 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13600-13699.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13600-13699.xml @@ -1426,7 +1426,11 @@ 30 PER - + + 20 + PER + + 20 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13700-13799.xml index ef76ba0700..5ae739eb15 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13700-13799.xml @@ -3016,7 +3016,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13800-13899.xml index 8eb35b15a9..c1779e06b3 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19100-19199.xml index 0b1c5ffdbd..0c833deafa 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19100-19199.xml @@ -581,7 +581,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19200-19299.xml index f281b51a5b..ad597ec7b8 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19200-19299.xml @@ -155,11 +155,15 @@ 25 PER - + 25 PER - + + 25 + PER + + 25 PER @@ -1648,7 +1652,7 @@ icon.skill1532 P - + 10 PER @@ -1737,7 +1741,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19500-19599.xml index 337c2582c5..f84b5e6265 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/19500-19599.xml @@ -1251,7 +1251,6 @@ 23966 25044 - 5 11139 @@ -1321,7 +1320,6 @@ 61439 true - 90 600 @@ -1394,7 +1392,6 @@ 52205 true - 90 600 @@ -1467,7 +1464,6 @@ 73087 true - 90 600 @@ -1536,7 +1532,6 @@ 69941 73087 - 5 @@ -1655,7 +1650,6 @@ 73087 true - 5 @@ -1932,7 +1926,6 @@ 23966 25044 - 5 @@ -2223,7 +2216,6 @@ 25044 true - 90 600 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/21400-21499.xml index 7d08b3e4cd..e573151244 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/21400-21499.xml @@ -1111,7 +1111,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/27900-27999.xml index 4cfb8025c1..637eda91d6 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/28000-28099.xml index 98ffd669b2..b10cd5fdd9 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30500-30599.xml index 0f3a8876ee..cd50b27091 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30500-30599.xml @@ -129,7 +129,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} STUN @@ -271,7 +271,7 @@ 0.7 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -455,7 +455,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} true @@ -547,7 +547,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} true @@ -613,7 +613,6 @@ - 17266 19164 @@ -629,7 +628,6 @@ 45015 {base + (base / 100 * subIndex)} - 15 THROW_UP @@ -735,7 +733,6 @@ 56253 {base + (base / 100 * subIndex)} - 15 400 @@ -1851,7 +1848,7 @@ DIFF - + 10 20 @@ -2678,7 +2675,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml index 7a100e9dce..f9a58a17dc 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30600-30699.xml @@ -24,7 +24,7 @@ 5 85 - + 1 PER @@ -48,7 +48,7 @@ 2 3 - + 1 PER @@ -411,7 +411,6 @@ 3978 true 3 - 5 true @@ -1372,7 +1371,6 @@ 4096 true 3 - 3 true @@ -2273,7 +2271,6 @@ 3469 true - 15 3 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30700-30799.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30700-30799.xml index fb36d0d261..fd173f2340 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30700-30799.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30700-30799.xml @@ -3020,7 +3020,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3093,7 +3093,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3162,7 +3162,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} true @@ -3603,11 +3603,10 @@ true 3 - 15 30 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3842,7 +3841,6 @@ {base + (base / 100 * subIndex)} true - 10 -23 @@ -3956,7 +3954,6 @@ {base + (base / 100 * subIndex)} true - 10 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30800-30899.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30800-30899.xml index 15cafaf3ee..4293d95e21 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30800-30899.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30800-30899.xml @@ -201,7 +201,6 @@ 451 true - 15 @@ -1062,7 +1061,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml index 824ac19b27..9225771625 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/30900-30999.xml @@ -482,9 +482,11 @@ - 739 - 754 - 769 + + 739 + 754 + 769 + 1.1 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35000-35099.xml index fbccc4671b..62e8405355 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35000-35099.xml @@ -2175,7 +2175,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35200-35299.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35200-35299.xml index 6b8dd13b79..750795136b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35200-35299.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35200-35299.xml @@ -3194,7 +3194,7 @@ 5 80 - + 0 1 @@ -3208,7 +3208,6 @@ 8 10 - 0 PER @@ -3220,7 +3219,7 @@ 5 80 - + 0 1 @@ -3234,7 +3233,6 @@ 8 10 - 1 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35500-35599.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35500-35599.xml index 4926f9be8f..0710b01ca9 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35500-35599.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35500-35599.xml @@ -605,7 +605,7 @@ 100 DIFF - + 30 PER @@ -687,7 +687,7 @@ 100 DIFF - + 30 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35600-35699.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35600-35699.xml index cdf5d6f82f..0537a3ca61 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35600-35699.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35600-35699.xml @@ -3731,7 +3731,7 @@ icon.elemental_necklace_wind_i00 P - + 1 2 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35700-35799.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35700-35799.xml index 52374af505..dcb6537ddc 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35700-35799.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35700-35799.xml @@ -2137,7 +2137,7 @@ icon.bm_ring_of_fallen_angel P - + 1 2 diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35800-35899.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35800-35899.xml index ef66967033..c3a06176bb 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35800-35899.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/35800-35899.xml @@ -280,7 +280,7 @@ icon.dragon_accessary_necklace P - + 1 2 @@ -606,7 +606,7 @@ icon.dragon_accessary_earring P - + 1 2 @@ -932,7 +932,7 @@ icon.dragon_accessary_ring P - + 1 2 @@ -1288,7 +1288,7 @@ P 5 - + 1.3 PER diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt index 84f0378f1a..17e56b40c9 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/skills/documentation.txt @@ -231,6 +231,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -298,7 +299,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 4211b94981..7f40865c62 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java index 2c6d0f375a..8d8771f155 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -130,7 +130,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java index 44e49639f7..c5c499aa70 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -263,6 +263,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/08900-08999.xml index 6185732886..0dec0fff91 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER @@ -128,10 +128,6 @@ 30 PER - - 30 - PER - 100 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10000-10099.xml index 47a22b35a6..c84cb6bfe4 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10000-10099.xml @@ -762,7 +762,6 @@ {base + (base / 100 * subIndex)} true - 5 @@ -864,7 +863,6 @@ {base + (base / 100 * subIndex)} true - 5 -20 @@ -970,7 +968,6 @@ 23531 {base + (base / 100 * subIndex)} - 5 @@ -1068,7 +1065,6 @@ 25044 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;7002;18721;18722;28203;30516;35190 @@ -1174,7 +1170,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1273,7 +1269,6 @@ 39454 {base + (base / 100 * subIndex)} - 5 @@ -6358,7 +6353,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10200-10299.xml index fe1a290afa..3fcee1b1e5 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10200-10299.xml @@ -803,7 +803,6 @@ - 14506 @@ -821,7 +820,6 @@ 33299 {base + (base / 100 * subIndex)} - 5 true @@ -931,7 +929,7 @@ true 3 - 3 + 10 {base + (base / 100 * subIndex)} @@ -1033,7 +1031,6 @@ true 3 - 3 true @@ -1267,7 +1264,6 @@ {base + (base / 100 * subIndex)} true - 5 0.9 0.9 1.5 @@ -1633,7 +1629,6 @@ 25125 true - 3 -180 @@ -1981,7 +1976,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2327,7 +2322,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -2731,7 +2726,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml index 080c5e968d..5d9262a708 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10300-10399.xml @@ -825,7 +825,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -991,7 +991,6 @@ {base + (base / 100 * subIndex)} true - 15 true @@ -1273,7 +1272,7 @@ 3 - 5 + 10 {base + (base / 100 * subIndex)} @@ -1360,41 +1359,33 @@ icon.skill10329 85 P + + + + BLUNT + + + 30 PER - - BLUNT - 15 PER - - BLUNT - 15 PER - - BLUNT - 30 PER - - BLUNT - - + 30 PER - - BLUNT - @@ -1466,7 +1457,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} 0.7 @@ -1518,7 +1509,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10500-10599.xml index a5791e8c6f..a99def6b42 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10500-10599.xml @@ -381,11 +381,11 @@ 2 STR - + 100 PER - + 10 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10700-10799.xml index 88a9b16de9..a2d07dff0f 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10700-10799.xml @@ -86,7 +86,7 @@ 30 PER - + 10 11 @@ -920,6 +920,10 @@ STR + 100 + PER + + 10 PER @@ -1257,7 +1261,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -1368,7 +1372,6 @@ {base + (base / 100 * subIndex)} true - 5 500 @@ -1472,7 +1475,7 @@ {base + (base / 100 * subIndex)} - 30 + 5 {base + (base / 100 * subIndex)} @@ -1569,7 +1572,7 @@ {base + (base / 100 * subIndex)} - 30 + 5 {base + (base / 100 * subIndex)} @@ -1804,7 +1807,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} true @@ -1913,7 +1916,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2017,7 +2020,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2117,7 +2120,7 @@ true - 30 + 10 {base + (base / 100 * subIndex)} @@ -2576,7 +2579,7 @@ {base + (base / 100 * subIndex)} - 5 + 10 {base + (base / 100 * subIndex)} @@ -2633,7 +2636,7 @@ {base + (base / 100 * subIndex)} - 60 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10900-10999.xml index ab7fff974a..2d9827cc31 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/10900-10999.xml @@ -425,7 +425,7 @@ PER - + 15 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/11500-11599.xml index 92dcbf6fca..d9e1c28abb 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/11500-11599.xml @@ -664,7 +664,7 @@ - + 15338 15951 @@ -682,7 +682,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -820,7 +819,6 @@ {base + (base / 100 * subIndex)} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3558,11 +3556,11 @@ true - 5 + 10 {base + (base / 100 * subIndex)} - + -50 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13600-13699.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13600-13699.xml index c7f8a0aae4..8776fe7c67 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13600-13699.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13600-13699.xml @@ -1426,7 +1426,11 @@ 30 PER - + + 20 + PER + + 20 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13700-13799.xml index 5ec599f586..9eabdac92d 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13700-13799.xml @@ -3016,7 +3016,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13800-13899.xml index f5b121cb43..dfa15cf90d 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19100-19199.xml index 102a55450b..6375dd520a 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19100-19199.xml @@ -581,7 +581,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19200-19299.xml index d83c3375fa..e87f34ea33 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19200-19299.xml @@ -155,11 +155,15 @@ 25 PER - + 25 PER - + + 25 + PER + + 25 PER @@ -1648,7 +1652,7 @@ icon.skill1532 P - + 10 PER @@ -1737,7 +1741,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19500-19599.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19500-19599.xml index 337c2582c5..f84b5e6265 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19500-19599.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/19500-19599.xml @@ -1251,7 +1251,6 @@ 23966 25044 - 5 11139 @@ -1321,7 +1320,6 @@ 61439 true - 90 600 @@ -1394,7 +1392,6 @@ 52205 true - 90 600 @@ -1467,7 +1464,6 @@ 73087 true - 90 600 @@ -1536,7 +1532,6 @@ 69941 73087 - 5 @@ -1655,7 +1650,6 @@ 73087 true - 5 @@ -1932,7 +1926,6 @@ 23966 25044 - 5 @@ -2223,7 +2216,6 @@ 25044 true - 90 600 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/21400-21499.xml index 105aea5e69..fccfa3b4af 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/21400-21499.xml @@ -1111,7 +1111,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/27900-27999.xml index 4cfb8025c1..637eda91d6 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/28000-28099.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/28000-28099.xml index 322835eb21..5580e4a1c1 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/28000-28099.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/28000-28099.xml @@ -1429,7 +1429,7 @@ BranchIcon.icon.g_bm_sag_agathion_charm P - + 0 1 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30500-30599.xml index 0f3a8876ee..cd50b27091 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30500-30599.xml @@ -129,7 +129,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} STUN @@ -271,7 +271,7 @@ 0.7 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -455,7 +455,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} true @@ -547,7 +547,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} true @@ -613,7 +613,6 @@ - 17266 19164 @@ -629,7 +628,6 @@ 45015 {base + (base / 100 * subIndex)} - 15 THROW_UP @@ -735,7 +733,6 @@ 56253 {base + (base / 100 * subIndex)} - 15 400 @@ -1851,7 +1848,7 @@ DIFF - + 10 20 @@ -2678,7 +2675,7 @@ 0.5 - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml index 76395dc432..e19946f3b1 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30600-30699.xml @@ -24,7 +24,7 @@ 5 85 - + 1 PER @@ -48,7 +48,7 @@ 2 3 - + 1 PER @@ -411,7 +411,6 @@ 3978 true 3 - 5 true @@ -1372,7 +1371,6 @@ 4096 true 3 - 3 true @@ -2273,7 +2271,6 @@ 3469 true - 15 3 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30700-30799.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30700-30799.xml index fe42e74013..ff8e4b62ad 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30700-30799.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30700-30799.xml @@ -3020,7 +3020,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3093,7 +3093,7 @@ true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3162,7 +3162,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} true @@ -3603,11 +3603,10 @@ true 3 - 15 30 true - 15 + 10 {base + (base / 100 * subIndex)} @@ -3842,7 +3841,6 @@ {base + (base / 100 * subIndex)} true - 10 -23 @@ -3956,7 +3954,6 @@ {base + (base / 100 * subIndex)} true - 10 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30800-30899.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30800-30899.xml index 15cafaf3ee..4293d95e21 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30800-30899.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30800-30899.xml @@ -201,7 +201,6 @@ 451 true - 15 @@ -1062,7 +1061,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml index 9ed6f126ff..65fd718048 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/30900-30999.xml @@ -927,7 +927,7 @@ 60 PER - + 20 PER @@ -986,7 +986,7 @@ PER - + 10 12 @@ -1185,7 +1185,7 @@ 1.05 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1232,7 +1232,7 @@ 1.05 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1330,7 +1330,7 @@ 1.10 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1383,7 +1383,6 @@ 1.05 - 5 true @@ -1526,7 +1525,6 @@ 1.25 1.30 - 5 true 0.9 @@ -1603,7 +1601,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1673,7 +1671,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1796,7 +1794,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1856,7 +1854,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1897,7 +1895,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -1957,7 +1955,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -2034,7 +2032,7 @@ 1.30 - 5 + 10 {base + (base / 100 * subIndex)} true @@ -2106,7 +2104,6 @@ 1.18 1.20 - 5 true 0.9 @@ -2203,7 +2200,6 @@ 1.18 1.20 - 5 true 0.95 @@ -2424,7 +2420,7 @@ 40 PER - + 15 PER @@ -2746,7 +2742,7 @@ PER - + 3 5 @@ -2856,7 +2852,7 @@ 15 PER - + 15 PER @@ -2882,7 +2878,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35000-35099.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35000-35099.xml index f912f2b614..b8a87bc825 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35000-35099.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35000-35099.xml @@ -2175,7 +2175,7 @@ P 5 - + 0 1 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35200-35299.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35200-35299.xml index 8b1aa2a4b4..ab8106d964 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35200-35299.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35200-35299.xml @@ -3194,7 +3194,7 @@ 5 80 - + 0 1 @@ -3208,7 +3208,6 @@ 8 10 - 0 PER @@ -3220,7 +3219,7 @@ 5 80 - + 0 1 @@ -3234,7 +3233,6 @@ 8 10 - 1 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35500-35599.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35500-35599.xml index 4926f9be8f..0710b01ca9 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35500-35599.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35500-35599.xml @@ -605,7 +605,7 @@ 100 DIFF - + 30 PER @@ -687,7 +687,7 @@ 100 DIFF - + 30 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35600-35699.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35600-35699.xml index cdf5d6f82f..0537a3ca61 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35600-35699.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35600-35699.xml @@ -3731,7 +3731,7 @@ icon.elemental_necklace_wind_i00 P - + 1 2 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35700-35799.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35700-35799.xml index 52374af505..dcb6537ddc 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35700-35799.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35700-35799.xml @@ -2137,7 +2137,7 @@ icon.bm_ring_of_fallen_angel P - + 1 2 diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35800-35899.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35800-35899.xml index ef66967033..c3a06176bb 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35800-35899.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35800-35899.xml @@ -280,7 +280,7 @@ icon.dragon_accessary_necklace P - + 1 2 @@ -606,7 +606,7 @@ icon.dragon_accessary_earring P - + 1 2 @@ -932,7 +932,7 @@ icon.dragon_accessary_ring P - + 1 2 @@ -1288,7 +1288,7 @@ P 5 - + 1.3 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35900-35999.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35900-35999.xml index a13716c674..ba8f2ff8e2 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35900-35999.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/35900-35999.xml @@ -973,6 +973,16 @@ 5 1 + + + 0 + 10 + 10 + 10 + 10 + + PER + 42 DIFF @@ -1875,7 +1885,7 @@ 10 PER - + 10 PER @@ -2080,7 +2090,7 @@ icon.skill0000 P - + 3 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/36000-36099.xml b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/36000-36099.xml index 8a1b4db39b..6ad9cf078c 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/36000-36099.xml +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/36000-36099.xml @@ -481,7 +481,7 @@ 3 PER - + 3 PER diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt index d94aa5967d..04efeaed00 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/stats/skills/documentation.txt @@ -232,6 +232,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -300,7 +301,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 400dec6f4c..61bf6ae0bd 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java index 2c6d0f375a..8d8771f155 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -130,7 +130,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java index ab828ead33..67dd0f10d4 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -248,6 +248,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); 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 6847b895ad..abb867bdcd 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 @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); 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 032a9cb9ed..59a8dfb8d2 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 @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { 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 60bbbfbc37..6b855d2a4b 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 @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt index dac36ca3ca..e9c259baa6 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/stats/skills/documentation.txt @@ -218,6 +218,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -283,7 +284,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 d2145e1564..5e4f74f1c4 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 @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java index f580daf33c..36b2c82280 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -125,7 +125,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java index ab828ead33..67dd0f10d4 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -248,6 +248,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); 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 6847b895ad..abb867bdcd 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 @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); 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 032a9cb9ed..59a8dfb8d2 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 @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { 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 60bbbfbc37..6b855d2a4b 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 @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55700-55799.xml index 56adca3796..1e8452a189 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55700-55799.xml @@ -2307,7 +2307,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55800-55899.xml index 5655ab650f..b8cc6bc5fb 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt index dac36ca3ca..e9c259baa6 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/stats/skills/documentation.txt @@ -218,6 +218,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -283,7 +284,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 d2145e1564..5e4f74f1c4 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 @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java index f580daf33c..36b2c82280 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -125,7 +125,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java index 30b5e925e5..cc1d7bdcd5 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -250,6 +250,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); 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 6847b895ad..abb867bdcd 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 @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); 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 032a9cb9ed..59a8dfb8d2 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 @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { 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 60bbbfbc37..6b855d2a4b 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 @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55700-55799.xml index 6faeea1842..e35d6ce72a 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55800-55899.xml index cd997d0632..9947f8493c 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt index 4034913276..eab8564e1e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/skills/documentation.txt @@ -220,6 +220,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -285,7 +286,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 d2145e1564..5e4f74f1c4 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 @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java index cf65ada6f4..da6c7497b8 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -127,7 +127,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java index 85ecb14327..2de62a9096 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -253,6 +253,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); 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 6847b895ad..abb867bdcd 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 @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); 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 032a9cb9ed..59a8dfb8d2 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 @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { 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 60bbbfbc37..6b855d2a4b 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 @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55700-55799.xml index 3cae8b3aef..fd68b575b4 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55800-55899.xml index a524d59608..8ab9e6b5b5 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt index 7dffdf682d..9052a59869 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/stats/skills/documentation.txt @@ -223,6 +223,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -288,7 +289,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 b1151e5b05..8fd0c96928 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 @@ -262,7 +262,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -270,7 +270,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java index 4972a1139f..360f87caa7 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -140,7 +140,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java index 85ecb14327..2de62a9096 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -253,6 +253,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); 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 6847b895ad..abb867bdcd 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 @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); 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 032a9cb9ed..59a8dfb8d2 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 @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { 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 60bbbfbc37..6b855d2a4b 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 @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55700-55799.xml index 5b378bf557..ecbc9ca7f7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55800-55899.xml index 8a17d6d75f..53a1ed0f7f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt index 7dffdf682d..9052a59869 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/stats/skills/documentation.txt @@ -223,6 +223,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -288,7 +289,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 b1151e5b05..8fd0c96928 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 @@ -262,7 +262,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -270,7 +270,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java index 4972a1139f..360f87caa7 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -140,7 +140,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java index b99e752d13..a1f8ef24f4 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -255,6 +255,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55700-55799.xml index 5b378bf557..ecbc9ca7f7 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml index 5b94e8a660..f9882310d0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt index c8ba01a656..d6d4c37666 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/stats/skills/documentation.txt @@ -225,6 +225,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -290,7 +291,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 b1151e5b05..8fd0c96928 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 @@ -262,7 +262,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -270,7 +270,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java index ad75668c44..978e648034 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -141,7 +141,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), MAGIC_CRITICAL_RATE_BY_CRITICAL_RATE("mCritRateByRCrit", Stat::defaultValue, MathUtil::add, MathUtil::mul, 0, 0), diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java index 7eb5f87226..2b8269f2e9 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -250,6 +250,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/08900-08999.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/08900-08999.xml index 67f1741c1d..7054ef1b99 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/08900-08999.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/08900-08999.xml @@ -25,7 +25,7 @@ 100 DIFF - + 30 PER @@ -75,7 +75,7 @@ 500 DIFF - + 50 PER diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10000-10099.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10000-10099.xml index 8d94039a8d..426f60d762 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10000-10099.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10000-10099.xml @@ -644,7 +644,6 @@ {base + (base / 100 * subIndex)} true - 5 -70 @@ -748,7 +747,6 @@ {base + (base / 100 * subIndex)} true - 5 1 @@ -843,7 +841,6 @@ 20253 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -939,7 +936,6 @@ 16349 {base + (base / 100 * subIndex)} - 5 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912 @@ -1038,7 +1034,7 @@ true - 5 + 10 {base + (base / 100 * subIndex)} @@ -1128,7 +1124,6 @@ 25756 {base + (base / 100 * subIndex)} - 5 -90 @@ -5428,7 +5423,7 @@ {base + (base / 100 * subIndex)} - 15 + 10 {base + (base / 100 * subIndex)} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10200-10299.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10200-10299.xml index ff6083777d..691e04c01e 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10200-10299.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10200-10299.xml @@ -718,7 +718,6 @@ 22603 {base + base / 100 * subIndex} - 5 true @@ -823,7 +822,7 @@ true - 3 + 10 {base + base / 100 * subIndex} @@ -921,7 +920,7 @@ {base + base / 100 * subIndex} true - 3 + 3 true @@ -1139,7 +1138,6 @@ {base + base / 100 * subIndex} true - 5 0.9 0.9 1.5 @@ -1487,7 +1485,6 @@ 17055 true - 3 -180 @@ -1860,7 +1857,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2206,7 +2203,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2577,7 +2574,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10300-10399.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10300-10399.xml index 6e3d9d29ce..3260d8d1c1 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10300-10399.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10300-10399.xml @@ -803,7 +803,7 @@ true - 15 + 10 {base + base / 100 * subIndex} @@ -962,7 +962,6 @@ {base + base / 100 * subIndex} true - 15 true @@ -1219,7 +1218,6 @@ 29911 true - 5 @@ -1362,7 +1360,7 @@ true - 15 + 10 {base + base / 100 * subIndex} 0.7 @@ -1411,7 +1409,7 @@ DUAL - + 20 PER diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml index 68da56b945..b7250667ef 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10500-10599.xml @@ -400,7 +400,7 @@ 100 PER - + 10 PER diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10700-10799.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10700-10799.xml index 078877e652..d223e72eb1 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10700-10799.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10700-10799.xml @@ -80,7 +80,7 @@ 30 PER - + 10 11 @@ -1131,7 +1131,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1231,7 +1231,6 @@ {base + base / 100 * subIndex} true - 5 500 @@ -1325,7 +1324,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -1641,7 +1640,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} true @@ -1742,7 +1741,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1838,7 +1837,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -1930,7 +1929,7 @@ true - 5 + 10 {base + base / 100 * subIndex} @@ -2378,7 +2377,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} @@ -2431,7 +2430,7 @@ {base + base / 100 * subIndex} - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10900-10999.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10900-10999.xml index 751fa465a1..d2c9e5d4a4 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10900-10999.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/10900-10999.xml @@ -410,7 +410,7 @@ 15 PER - + 15 PER diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/11500-11599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/11500-11599.xml index 530f2c891d..02aa198149 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/11500-11599.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/11500-11599.xml @@ -559,7 +559,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -667,7 +666,6 @@ {base + base / 100 * subIndex} true - 5 1 {0.99 - 0.006 * (subIndex - 1)} @@ -3112,7 +3110,7 @@ true - 5 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13700-13799.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13700-13799.xml index f13de3a550..a6920e9387 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13700-13799.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13700-13799.xml @@ -3004,7 +3004,7 @@ icon.skill3238 P - + 0.55 0.65 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13800-13899.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13800-13899.xml index 8ca711981a..ee107d591d 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13800-13899.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/13800-13899.xml @@ -1818,7 +1818,7 @@ icon.ensoul_big_p P - + {5+index} @@ -2114,7 +2114,7 @@ PER - + 3 4 @@ -2280,7 +2280,7 @@ DIFF - + 3 4 @@ -2948,7 +2948,7 @@ PER - + 3 4 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19100-19199.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19100-19199.xml index f611c4fc65..4e691a28e9 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19100-19199.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19100-19199.xml @@ -540,7 +540,7 @@ icon.skill0193 P - + 5 10 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19200-19299.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19200-19299.xml index c3f277a5f1..46ad08a5be 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19200-19299.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/19200-19299.xml @@ -1578,7 +1578,7 @@ icon.skill1532 P - + 10 PER @@ -1667,7 +1667,7 @@ icon.skill0193 P - + 3 6 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/21400-21499.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/21400-21499.xml index c4e19a6e3f..507a00c4ec 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/21400-21499.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/21400-21499.xml @@ -1100,7 +1100,7 @@ PER - + 15 16 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/27900-27999.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/27900-27999.xml index a489778586..4503144461 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/27900-27999.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/27900-27999.xml @@ -222,7 +222,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 @@ -1272,7 +1272,7 @@ BranchIcon.icon.g_bm_cloak_mineral_normal P - + 0.9 1 diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30500-30599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30500-30599.xml index 642baf8fbe..0101286bef 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30500-30599.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30500-30599.xml @@ -122,7 +122,7 @@ {base + base / 100 * subIndex} - 15 + 10 {base + base / 100 * subIndex} STUN @@ -257,7 +257,7 @@ 0.7 true - 15 + 10 {base + base / 100 * subIndex} @@ -427,7 +427,7 @@ true - 15 + 10 {base + base / 100 * subIndex} true @@ -513,7 +513,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} true @@ -588,7 +588,6 @@ 42343 {base + base / 100 * subIndex} - 15 THROW_UP @@ -687,7 +686,6 @@ 52917 {base + base / 100 * subIndex} - 15 400 @@ -1733,7 +1731,7 @@ DIFF - + 10 20 @@ -2458,7 +2456,7 @@ 0.5 - 15 + 10 {base + base / 100 * subIndex} diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30600-30699.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30600-30699.xml index faac12dc22..0a6211c1dd 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30600-30699.xml +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/30600-30699.xml @@ -52,7 +52,7 @@ 2 3 - + 1 PER diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt index 49f325c6fb..1bbfe989f9 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/skills/documentation.txt @@ -220,6 +220,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -285,7 +286,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. 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 d2145e1564..5e4f74f1c4 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 @@ -261,7 +261,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -269,7 +269,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java index fbf158a1e7..353e528971 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -125,7 +125,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), BLOW_RATE("blowRate"), diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java index 0b084b99d9..5355293d6c 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -260,6 +260,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00100-00199.xml b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00100-00199.xml index f5d0c3cffd..b7da424bb3 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00100-00199.xml +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00100-00199.xml @@ -3023,7 +3023,7 @@ PER - + 5 5 diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00400-00499.xml b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00400-00499.xml index 7cc9655e42..9d4b75f268 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00400-00499.xml +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/00400-00499.xml @@ -1863,7 +1863,7 @@ PER - + 11 22 diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/45400-45499.xml b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/45400-45499.xml index 2ac9d7fe12..7a3dd79c9d 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/45400-45499.xml +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/45400-45499.xml @@ -237,7 +237,7 @@ 100 PER - + 50 PER diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/50300-50399.xml b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/50300-50399.xml index 9344866724..53a25e18bf 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/50300-50399.xml +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/50300-50399.xml @@ -4045,7 +4045,7 @@ 1 PER - + 1 PER @@ -4062,7 +4062,7 @@ 1 PER - + 1 PER diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55700-55799.xml index 5b378bf557..ecbc9ca7f7 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55800-55899.xml index 5b94e8a660..f9882310d0 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt index 5c43271aa8..c9b7d7d123 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/stats/skills/documentation.txt @@ -230,6 +230,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -296,7 +297,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java index b1151e5b05..8fd0c96928 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -262,7 +262,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -270,7 +270,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java index dde19c73a6..3a22250416 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -143,7 +143,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), MAGIC_CRITICAL_RATE_BY_CRITICAL_RATE("mCritRateByRCrit", Stat::defaultValue, MathUtil::add, MathUtil::mul, 0, 0), diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java index e22369ccee..0b8eb72206 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -261,6 +261,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00100-00199.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00100-00199.xml index be02625757..61995211fd 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00100-00199.xml +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00100-00199.xml @@ -3116,7 +3116,7 @@ PER - + 5 5 diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00400-00499.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00400-00499.xml index 927ef7f677..2aff5cbd0f 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00400-00499.xml +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/00400-00499.xml @@ -1868,7 +1868,7 @@ PER - + 11 22 diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/45400-45499.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/45400-45499.xml index bc098319ee..a26e56a1ff 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/45400-45499.xml +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/45400-45499.xml @@ -512,7 +512,7 @@ 100 PER - + 50 PER @@ -737,7 +737,7 @@ 20 PER - + 20 PER diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/50300-50399.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/50300-50399.xml index 8266212f7e..974ddc8396 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/50300-50399.xml +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/50300-50399.xml @@ -4071,7 +4071,7 @@ 1 PER - + 1 PER @@ -4088,7 +4088,7 @@ 1 PER - + 1 PER diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55700-55799.xml index c8a24056c9..fc74550d4c 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55800-55899.xml index 51c6a4a6b4..4ab0f51f94 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt index 1cb25fdbaf..0c4ba6471a 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/stats/skills/documentation.txt @@ -231,6 +231,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -297,7 +298,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java index b1151e5b05..8fd0c96928 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -262,7 +262,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -270,7 +270,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java index dde19c73a6..3a22250416 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -143,7 +143,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), MAGIC_CRITICAL_RATE_BY_CRITICAL_RATE("mCritRateByRCrit", Stat::defaultValue, MathUtil::add, MathUtil::mul, 0, 0), diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java index 881293f6f4..bbc65edd89 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -262,6 +262,7 @@ public class EffectMasterHandler EffectHandler.getInstance().registerHandler("PhysicalEvasion", PhysicalEvasion::new); EffectHandler.getInstance().registerHandler("PhysicalMute", PhysicalMute::new); EffectHandler.getInstance().registerHandler("PhysicalShieldAngleAll", PhysicalShieldAngleAll::new); + EffectHandler.getInstance().registerHandler("PhysicalSkillCriticalRate", PhysicalSkillCriticalRate::new); EffectHandler.getInstance().registerHandler("PhysicalSkillPower", PhysicalSkillPower::new); EffectHandler.getInstance().registerHandler("PhysicalSoulAttack", PhysicalSoulAttack::new); EffectHandler.getInstance().registerHandler("PkCount", PkCount::new); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java index 6847b895ad..abb867bdcd 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java @@ -47,7 +47,7 @@ public class EnergyAttack extends AbstractEffect public EnergyAttack(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getInt("criticalChance", 0); + _criticalChance = params.getInt("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _chargeConsume = params.getInt("chargeConsume", 0); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java index 032a9cb9ed..59a8dfb8d2 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java @@ -57,7 +57,7 @@ public class PhysicalAttack extends AbstractEffect _power = params.getDouble("power", 0); _pAtkMod = params.getDouble("pAtkMod", 1.0); _pDefMod = params.getDouble("pDefMod", 1.0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); final String abnormals = params.getString("abnormalType", null); @@ -134,7 +134,7 @@ public class PhysicalAttack extends AbstractEffect } double damage = 1; - final boolean critical = Formulas.calcCrit(_criticalChance, effected, effector, skill); + final boolean critical = Formulas.calcCrit(_criticalChance, effector, effected, skill); if (defence != -1) { diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java index 60bbbfbc37..6b855d2a4b 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackWeaponBonus.java @@ -50,7 +50,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect public PhysicalAttackWeaponBonus(StatSet params) { _power = params.getDouble("power", 0); - _criticalChance = params.getDouble("criticalChance", 0); + _criticalChance = params.getDouble("criticalChance", 10); _ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false); _overHit = params.getBoolean("overHit", false); _pDefMod = params.getDouble("pDefMod", 1.0); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java new file mode 100644 index 0000000000..abb4e994ec --- /dev/null +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/PhysicalSkillCriticalRate.java @@ -0,0 +1,31 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package handlers.effecthandlers; + +import org.l2jmobius.gameserver.model.StatSet; +import org.l2jmobius.gameserver.model.stats.Stat; + +/** + * @author NasSeKa + */ +public class PhysicalSkillCriticalRate extends AbstractStatPercentEffect +{ + public PhysicalSkillCriticalRate(StatSet params) + { + super(params, Stat.CRITICAL_RATE_SKILL); + } +} diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00100-00199.xml b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00100-00199.xml index cf069ca939..64904c91fe 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00100-00199.xml +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00100-00199.xml @@ -3136,7 +3136,7 @@ PER - + 5 5 diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00400-00499.xml b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00400-00499.xml index 927ef7f677..2aff5cbd0f 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00400-00499.xml +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/00400-00499.xml @@ -1868,7 +1868,7 @@ PER - + 11 22 diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/45400-45499.xml b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/45400-45499.xml index 9453bcfad0..1aae6f445c 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/45400-45499.xml +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/45400-45499.xml @@ -512,7 +512,7 @@ 100 PER - + 50 PER @@ -737,7 +737,7 @@ 20 PER - + 20 PER diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/50300-50399.xml b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/50300-50399.xml index a449ff3f8a..483ad1c834 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/50300-50399.xml +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/50300-50399.xml @@ -4071,7 +4071,7 @@ 1 PER - + 1 PER @@ -4088,7 +4088,7 @@ 1 PER - + 1 PER diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55700-55799.xml b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55700-55799.xml index c8a24056c9..fc74550d4c 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55700-55799.xml +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55700-55799.xml @@ -2331,7 +2331,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55800-55899.xml b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55800-55899.xml index 51c6a4a6b4..4ab0f51f94 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55800-55899.xml +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/55800-55899.xml @@ -412,7 +412,7 @@ 5 1 - + 0.9 1 diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt index 697499fede..45558f7536 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/stats/skills/documentation.txt @@ -231,6 +231,7 @@ PhysicalDefence: P. Def stat. PhysicalEvasion: P. Evasion stat. PhysicalMute: Prevents the usage of physical skills. Shield Slam. PhysicalShieldAngleAll: Causes the shield to block at 360 degree angle. +PhysicalSkillCriticalRate: Physical skill critical rate stat. (l2jmobius) PhysicalSkillPower: Physical Skill Power stat (use only MUL). PhysicalSoulAttack: Physical attack depending on souls. PkCount: Increases PK kills. @@ -298,7 +299,7 @@ SilentMove: Prevents aggressive mobs from attacking you when entering aggression SkillCriticalDamage: Skill critical damage stat. SkillEvasion: Skill evasion stat. SkillMastery: Activates double debuff or cooldown reset critical based on the specified stat. -SkillMasteryRate: Skill critical rate stat. +SkillMasteryRate: Bonus chance for skill mastery stat. SkillPowerAdd: Adds set ammount of power to skills (use only DIFF). (l2jmobius) SkillTurning: Stops target's casting. SkillTurningOverTime: Stops target's casting at a fixed rate. diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java index 4a321218ba..919643a1bf 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Formulas.java @@ -262,7 +262,7 @@ public class Formulas statBonus = BaseStat.STR.calcBonus(creature); } - final double rateBonus = creature.getStat().getValue(Stat.CRITICAL_RATE_SKILL, 1); + final double rateBonus = creature.getStat().getMul(Stat.CRITICAL_RATE_SKILL, 1); double balanceMod = 1; if (creature.isPlayable()) @@ -270,7 +270,7 @@ public class Formulas balanceMod = target.isPlayable() ? Config.PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()] : Config.PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS[creature.getActingPlayer().getClassId().getId()]; } - return (rate * statBonus * rateBonus * balanceMod) > Rnd.get(100); + return CommonUtil.constrain(rate * statBonus * rateBonus * balanceMod, 5, 90) > Rnd.get(100); } // Autoattack critical rate. diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java index 183ebae1fd..56f8bef8a3 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/stats/Stat.java @@ -143,7 +143,7 @@ public enum Stat MAGIC_CRITICAL_DAMAGE_ADD("mCritPowerAdd"), SHIELD_DEFENCE_RATE("rShld", new ShieldDefenceRateFinalizer()), CRITICAL_RATE("rCrit", new PCriticalRateFinalizer(), MathUtil::add, MathUtil::add, 0, 1), - CRITICAL_RATE_SKILL("rCritSkill", Stat::defaultValue, MathUtil::add, MathUtil::add, 0, 1), + CRITICAL_RATE_SKILL("physicalSkillCriticalRate"), MAX_MAGIC_CRITICAL_RATE("maxMagicCritRate"), MAGIC_CRITICAL_RATE("mCritRate", new MCritRateFinalizer()), MAGIC_CRITICAL_RATE_BY_CRITICAL_RATE("mCritRateByRCrit", Stat::defaultValue, MathUtil::add, MathUtil::mul, 0, 0),