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
-
+