From 8f3b78a887c2d09ed76080c666d94b1df06c7e9f Mon Sep 17 00:00:00 2001
From: Adry85 <adrya85@hotmail.it>
Date: Wed, 6 Sep 2017 12:32:43 +0200
Subject: [PATCH] Removed baseCritRate from skills and added it where it is
 used (inside effect handlers).

- Splitted calcCrit formula in two parts, one for critical made by
normal hit and one for critical made by skills (calcSkillCrit).

DP part for:
https://bitbucket.org/l2jserver/l2j_server/commits/ee1caa22ef69992dc02a4c33196549b89cfce9e1
---
 .../handlers/effecthandlers/Backstab.java     |  4 +-
 .../handlers/effecthandlers/EnergyAttack.java |  8 +--
 .../handlers/effecthandlers/FatalBlow.java    | 13 +++--
 .../effecthandlers/PhysicalAttack.java        |  6 ++-
 .../effecthandlers/PhysicalAttackHpLink.java  | 13 ++---
 .../effecthandlers/PhysicalSoulAttack.java    |  6 ++-
 dist/game/data/stats/skills/00000-00099.xml   | 21 ++++----
 dist/game/data/stats/skills/00100-00199.xml   |  2 +-
 dist/game/data/stats/skills/00200-00299.xml   | 10 ++--
 dist/game/data/stats/skills/00300-00399.xml   | 53 ++++++++++++-------
 dist/game/data/stats/skills/00400-00499.xml   | 37 ++++++++-----
 dist/game/data/stats/skills/00500-00599.xml   | 17 +++---
 dist/game/data/stats/skills/00600-00699.xml   | 15 +++---
 dist/game/data/stats/skills/00700-00799.xml   | 28 +++++-----
 dist/game/data/stats/skills/00800-00899.xml   |  8 +--
 dist/game/data/stats/skills/00900-00999.xml   | 53 +++++++++++--------
 dist/game/data/stats/skills/01500-01599.xml   |  2 +-
 dist/game/data/stats/skills/04500-04599.xml   | 12 +++--
 dist/game/data/stats/skills/04600-04699.xml   | 20 ++++---
 dist/game/data/stats/skills/04700-04799.xml   |  2 +-
 dist/game/data/stats/skills/05000-05099.xml   |  7 +--
 dist/game/data/stats/skills/05200-05299.xml   | 15 +++---
 dist/game/data/stats/skills/06300-06399.xml   |  2 +-
 dist/game/data/stats/skills/06700-06799.xml   | 34 +++++++-----
 dist/game/data/stats/skills/06800-06899.xml   | 15 +++---
 25 files changed, 242 insertions(+), 161 deletions(-)

diff --git a/dist/game/data/scripts/handlers/effecthandlers/Backstab.java b/dist/game/data/scripts/handlers/effecthandlers/Backstab.java
index 353eec8ba8..8935d3fbfc 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/Backstab.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/Backstab.java
@@ -36,12 +36,14 @@ import com.l2jserver.gameserver.model.stats.Formulas;
 public final class Backstab extends AbstractEffect
 {
 	private final int _blowChance;
+	private final int _criticalChance;
 	
 	public Backstab(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
 	{
 		super(attachCond, applyCond, set, params);
 		
 		_blowChance = params.getInt("blowChance", 0);
+		_criticalChance = params.getInt("criticalChance", 0);
 	}
 	
 	@Override
@@ -78,7 +80,7 @@ public final class Backstab extends AbstractEffect
 		double damage = Formulas.calcBackstabDamage(activeChar, target, skill, shld, ss);
 		
 		// Crit rate base crit rate for skill, modified with STR bonus
-		if (Formulas.calcCrit(activeChar, target, skill))
+		if (Formulas.calcSkillCrit(activeChar, target, _criticalChance))
 		{
 			damage *= 2;
 		}
diff --git a/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java b/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java
index e991c70f2d..64bd586b61 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/EnergyAttack.java
@@ -29,10 +29,8 @@ import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.Skill;
-import com.l2jserver.gameserver.model.stats.BaseStats;
 import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.model.stats.Stats;
-import com.l2jserver.util.Rnd;
 
 /**
  * Energy Attack effect implementation.
@@ -148,7 +146,11 @@ public final class EnergyAttack extends AbstractEffect
 				damage = attacker.getStat().calcStat(Stats.PHYSICAL_SKILL_POWER, damage);
 			}
 			
-			critical = (BaseStats.STR.calcBonus(attacker) * _criticalChance) > (Rnd.nextDouble() * 100);
+			if (_criticalChance > 0)
+			{
+				critical = Formulas.calcSkillCrit(attacker, target, _criticalChance);
+			}
+			
 			if (critical)
 			{
 				damage *= 2;
diff --git a/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java b/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java
index 9243ef9013..c61823ff91 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/FatalBlow.java
@@ -36,12 +36,14 @@ import com.l2jserver.gameserver.model.stats.Formulas;
 public final class FatalBlow extends AbstractEffect
 {
 	private final int _blowChance;
+	private final int _criticalChance;
 	
 	public FatalBlow(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
 	{
 		super(attachCond, applyCond, set, params);
 		
 		_blowChance = params.getInt("blowChance", 0);
+		_criticalChance = params.getInt("criticalChance", 0);
 	}
 	
 	@Override
@@ -78,7 +80,12 @@ public final class FatalBlow extends AbstractEffect
 		byte shld = Formulas.calcShldUse(activeChar, target, skill);
 		double damage = Formulas.calcBlowDamage(activeChar, target, skill, shld, ss);
 		
-		boolean crit = Formulas.calcCrit(activeChar, target, skill);
+		boolean crit = false;
+		if (_criticalChance > 0)
+		{
+			crit = Formulas.calcSkillCrit(activeChar, target, _criticalChance);
+		}
+		
 		if (crit)
 		{
 			damage *= 2;
@@ -97,10 +104,10 @@ public final class FatalBlow extends AbstractEffect
 		if (activeChar.isPlayer())
 		{
 			L2PcInstance activePlayer = activeChar.getActingPlayer();
-			activePlayer.sendDamageMessage(target, (int) damage, false, true, false);
+			activePlayer.sendDamageMessage(target, (int) damage, false, crit, false);
 		}
 		
 		// Check if damage should be reflected
-		Formulas.calcDamageReflected(activeChar, target, skill, true);
+		Formulas.calcDamageReflected(activeChar, target, skill, crit);
 	}
 }
\ No newline at end of file
diff --git a/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
index 216427468e..9b6926fe73 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
@@ -36,12 +36,14 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  */
 public final class PhysicalAttack extends AbstractEffect
 {
+	private final int _criticalChance;
 	private final boolean _ignoreShieldDefence;
 	
 	public PhysicalAttack(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
 	{
 		super(attachCond, applyCond, set, params);
 		
+		_criticalChance = params.getInt("criticalChance", 0);
 		_ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false);
 	}
 	
@@ -99,9 +101,9 @@ public final class PhysicalAttack extends AbstractEffect
 		
 		// Physical damage critical rate is only affected by STR.
 		boolean crit = false;
-		if (skill.getBaseCritRate() > 0)
+		if (_criticalChance > 0)
 		{
-			crit = Formulas.calcCrit(activeChar, target, skill);
+			crit = Formulas.calcSkillCrit(activeChar, target, _criticalChance);
 		}
 		
 		damage = (int) Formulas.calcPhysDam(activeChar, target, skill, shield, false, ss);
diff --git a/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java b/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java
index a71b9b2d0b..4886fa4c30 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttackHpLink.java
@@ -80,25 +80,18 @@ public final class PhysicalAttackHpLink extends AbstractEffect
 		}
 		
 		final byte shld = Formulas.calcShldUse(activeChar, target, skill);
-		// Physical damage critical rate is only affected by STR.
-		boolean crit = false;
-		if (skill.getBaseCritRate() > 0)
-		{
-			crit = Formulas.calcCrit(activeChar, target, skill);
-		}
-		
 		int damage = 0;
 		boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS);
 		damage = (int) Formulas.calcPhysDam(activeChar, target, skill, shld, false, ss);
 		
 		if (damage > 0)
 		{
-			activeChar.sendDamageMessage(target, damage, false, crit, false);
+			activeChar.sendDamageMessage(target, damage, false, false, false);
 			target.reduceCurrentHp(damage, activeChar, skill);
-			target.notifyDamageReceived(damage, activeChar, skill, crit, false, false);
+			target.notifyDamageReceived(damage, activeChar, skill, false, false, false);
 			
 			// Check if damage should be reflected.
-			Formulas.calcDamageReflected(activeChar, target, skill, crit);
+			Formulas.calcDamageReflected(activeChar, target, skill, false);
 		}
 		else
 		{
diff --git a/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
index 0373172136..ffe3fc5119 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
@@ -36,12 +36,14 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  */
 public final class PhysicalSoulAttack extends AbstractEffect
 {
+	private final int _criticalChance;
 	private final boolean _ignoreShieldDefence;
 	
 	public PhysicalSoulAttack(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
 	{
 		super(attachCond, applyCond, set, params);
 		
+		_criticalChance = params.getInt("criticalChance", 0);
 		_ignoreShieldDefence = params.getBoolean("ignoreShieldDefence", false);
 	}
 	
@@ -99,9 +101,9 @@ public final class PhysicalSoulAttack extends AbstractEffect
 		
 		// Physical damage critical rate is only affected by STR.
 		boolean crit = false;
-		if (skill.getBaseCritRate() > 0)
+		if (_criticalChance > 0)
 		{
-			crit = Formulas.calcCrit(activeChar, target, skill);
+			crit = Formulas.calcSkillCrit(activeChar, target, _criticalChance);
 		}
 		
 		damage = (int) Formulas.calcPhysDam(activeChar, target, skill, shield, false, ss);
diff --git a/dist/game/data/stats/skills/00000-00099.xml b/dist/game/data/stats/skills/00000-00099.xml
index 3e35dc0686..76dfc9835b 100644
--- a/dist/game/data/stats/skills/00000-00099.xml
+++ b/dist/game/data/stats/skills/00000-00099.xml
@@ -10,7 +10,6 @@
 		<table name="#enchDuel"> 2602 2647 2691 2736 2781 2825 2870 2915 2959 3004 3049 3094 3138 3183 3228 3272 3317 3362 3406 3451 3496 3541 3585 3630 3675 3719 3764 3809 3853 3898 </table>
 		<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="167" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -49,6 +48,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -778,7 +778,6 @@
 		<table name="#enchDuel"> 4977 5083 5188 5294 5400 5506 5611 5717 5823 5929 6034 6140 6246 6352 6458 6563 6669 6775 6881 6986 7092 7198 7304 7410 7515 7621 7727 7833 7938 8044 </table>
 		<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -815,7 +814,9 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="21" levels="3" name="Poison Recovery">
@@ -1063,7 +1064,6 @@
 		<table name="#enchDuel"> 5552 5624 5697 5769 5842 5914 5987 6059 6132 6204 6277 6350 6422 6495 6567 6640 6712 6785 6857 6930 7002 7075 7147 7220 7292 7365 7437 7510 7583 7655 </table>
 		<table name="#enchElementPower"> 11 12 14 15 16 18 19 20 22 23 24 26 27 28 30 31 32 34 35 36 38 39 40 42 43 44 46 47 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="#baseCritLethal" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
 		<set name="dmgDirectlyToHp" val="true" />
@@ -1104,6 +1104,7 @@
 		<for>
 			<effect name="Backstab">
 				<param blowChance="40" />
+				<param criticalChance="#baseCritLethal" />
 			</effect>
 			<effect name="Lethal">
 				<param halfLethal="#baseCritLethal" />
@@ -1253,7 +1254,6 @@
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="15" />
 		<set name="coolTime" val="733" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="hitTime" val="1070" />
@@ -1289,6 +1289,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -1434,7 +1435,6 @@
 		<set name="activateRate" val="50" />
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="15" />
 		<set name="basicProperty" val="CON" />
 		<set name="coolTime" val="720" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -1461,12 +1461,14 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun" />
 		</for>
 		<enchant1for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun" />
@@ -2084,7 +2086,6 @@
 		<set name="abnormalLvl" val="1" />
 		<set name="abnormalType" val="STUN" />
 		<set name="abnormalVisualEffect" val="STUN" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="440" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -2114,6 +2115,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -2681,7 +2683,6 @@
 		<set name="abnormalType" val="SILENCE" />
 		<set name="abnormalVisualEffect" val="SILENCE" />
 		<set name="activateRate" val="60" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="MEN" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -2701,7 +2702,9 @@
 		<set name="trait" val="DERANGEMENT" />
 		<for>
 			<effect name="Mute" />
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="99" levels="2" name="Rapid Shot" enchantGroup1="1" enchantGroup2="1">
diff --git a/dist/game/data/stats/skills/00100-00199.xml b/dist/game/data/stats/skills/00100-00199.xml
index a4bbb75096..69feee1b4c 100644
--- a/dist/game/data/stats/skills/00100-00199.xml
+++ b/dist/game/data/stats/skills/00100-00199.xml
@@ -1402,7 +1402,6 @@
 		<table name="#ench2mpConsume"> 74 73 72 70 69 68 67 66 64 63 62 61 60 58 57 56 55 54 52 51 50 49 47 46 45 44 43 41 40 39 </table>
 		<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -1439,6 +1438,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
diff --git a/dist/game/data/stats/skills/00200-00299.xml b/dist/game/data/stats/skills/00200-00299.xml
index 7edf2a12d6..e18a2b4896 100644
--- a/dist/game/data/stats/skills/00200-00299.xml
+++ b/dist/game/data/stats/skills/00200-00299.xml
@@ -1570,7 +1570,6 @@
 		<set name="abnormalType" val="STUN" />
 		<set name="abnormalVisualEffect" val="STUN" />
 		<set name="activateRate" val="50" />
-		<set name="baseCritRate" val="15" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
@@ -1612,12 +1611,14 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun" />
 		</for>
 		<enchant1for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun" />
@@ -2354,7 +2355,6 @@
 		<table name="#ench2MpConsume"> 85 84 83 82 81 80 79 78 78 77 76 75 74 73 72 71 71 70 69 68 67 66 65 64 64 63 62 61 60 59 </table>
 		<table name="#enchElementPower"> 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="effectRange" val="400" />
@@ -2383,6 +2383,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -2404,7 +2405,6 @@
 		<set name="abnormalType" val="STUN" />
 		<set name="abnormalVisualEffect" val="STUN" />
 		<set name="activateRate" val="50" />
-		<set name="baseCritRate" val="15" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="#coolTime" />
@@ -2436,18 +2436,21 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun" />
 		</for>
 		<enchant1for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun" />
 		</enchant1for>
 		<enchant3for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun">
@@ -2456,6 +2459,7 @@
 		</enchant3for>
 		<enchant4for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun">
diff --git a/dist/game/data/stats/skills/00300-00399.xml b/dist/game/data/stats/skills/00300-00399.xml
index 45011a0e3c..c16b6c3d9e 100644
--- a/dist/game/data/stats/skills/00300-00399.xml
+++ b/dist/game/data/stats/skills/00300-00399.xml
@@ -581,7 +581,6 @@
 		<table name="#enchDuel"> 7768 7901 8035 8168 8302 8435 8569 8702 8836 8969 9103 9236 9370 9503 9637 9770 9903 10037 10170 10304 10437 10571 10704 10838 10971 11105 11238 11372 11505 11639 </table>
 		<table name="#enchElementPower"> 2 4 5 7 9 10 12 14 15 17 18 20 22 23 25 27 28 30 32 33 35 36 38 40 41 43 45 46 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="1080" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -623,6 +622,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -1384,7 +1384,6 @@
 		<table name="#ench7Duel"> 7905 8113 8321 8528 8736 8944 9151 9359 9567 9774 9982 10190 10397 10605 10813 </table>
 		<table name="#enchelementPower"> 3 6 10 13 16 20 23 26 30 33 36 40 43 46 50 </table>
 		<table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="effectPoint" val="-897" />
 		<set name="effectRange" val="1400" />
@@ -1421,7 +1420,9 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="Lethal">
 				<param halfLethal="10" />
 			</effect>
@@ -1430,11 +1431,10 @@
 	<skill id="344" levels="1" name="Lethal Blow" enchantGroup1="6" enchantGroup2="6" enchantGroup3="6" enchantGroup4="6" enchantGroup5="6" enchantGroup6="6" enchantGroup7="6">
 		<!-- Confirmed CT2.5 -->
 		<table name="#ench1Power"> 6502 6535 6568 6601 6634 6667 6700 6733 6766 6799 6833 6866 6899 6932 6965 </table>
-		<table name="#ench2CritRate"> 21 21 21 21 21 21 21 22 22 22 22 22 22 22 23 </table>
+		<table name="#ench2CriticalChance"> 21 21 21 21 21 21 21 22 22 22 22 22 22 22 23 </table>
 		<table name="#ench7Duel"> 5880 5986 6092 6198 6304 6410 6516 6622 6728 6834 6940 7046 7152 7258 7364 </table>
 		<table name="#enchelementPower"> 3 6 10 13 16 20 23 26 30 33 36 40 43 46 50 </table>
 		<table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="20" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="-337" />
 		<set name="effectRange" val="400" />
@@ -1452,7 +1452,6 @@
 		<set name="trait" val="DEATH" />
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<enchant1 name="power" val="#ench1Power" />
-		<enchant2 name="baseCritRate" val="#ench2CritRate" />
 		<enchant2 name="magicLvl" val="#enchMagicLvl" />
 		<enchant3 name="element" val="0" /> <!-- Fire -->
 		<enchant3 name="elementPower" val="#enchelementPower" />
@@ -1474,15 +1473,24 @@
 		<for>
 			<effect name="FatalBlow">
 				<param blowChance="30" />
+				<param criticalChance="20" />
 			</effect>
 			<effect name="Lethal">
 				<param halfLethal="15" />
 			</effect>
 		</for>
+		<enchant2for>
+			<effect name="FatalBlow">
+				<param blowChance="30" />
+				<param criticalChance="#ench2CriticalChance" />
+			</effect>
+			<effect name="Lethal">
+				<param halfLethal="15" />
+			</effect>
+		</enchant2for>
 	</skill>
 	<skill id="345" levels="1" name="Sonic Rage">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-340" />
 		<set name="effectRange" val="1100" />
@@ -1500,7 +1508,9 @@
 			<using kind="DUAL" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 		<selfEffects>
 			<effect name="FocusEnergy">
@@ -1510,7 +1520,6 @@
 	</skill>
 	<skill id="346" levels="1" name="Raging Force">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-340" />
 		<set name="effectRange" val="1100" />
@@ -1528,7 +1537,9 @@
 			<using kind="DUALFIST" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 		<selfEffects>
 			<effect name="FocusEnergy">
@@ -1544,7 +1555,6 @@
 		<table name="#enchMagicLvl"> 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="20" />
 		<set name="effectPoint" val="-679" />
 		<set name="element" val="3" /> <!-- Earth -->
 		<set name="elementPower" val="20" />
@@ -1575,12 +1585,12 @@
 				<param chance="60" />
 			</effect>
 			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
 	</skill>
 	<skill id="348" levels="1" name="Spoil Crush">
-		<set name="baseCritRate" val="20" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="100" />
 		<set name="effectPoint" val="-337" />
@@ -1600,7 +1610,9 @@
 			<using kind="SWORD,BLUNT" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
+			</effect>
 			<effect name="Spoil" />
 		</for>
 	</skill>
@@ -1827,7 +1839,6 @@
 		<set name="abnormalTime" val="60" />
 		<set name="abnormalType" val="SPEED_DOWN" />
 		<set name="activateRate" val="40" />
-		<set name="baseCritRate" val="15" />
 		<set name="basicProperty" val="MEN" />
 		<set name="castRange" val="900" />
 		<set name="effectPoint" val="-507" />
@@ -1852,13 +1863,17 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="runSpd" val="0.7" />
 			</effect>
 		</for>
 		<enchant2for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="runSpd" val="0.7" />
 			</effect>
@@ -2207,7 +2222,6 @@
 		<set name="activateRate" val="40" />
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="20" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="500" />
 		<set name="effectPoint" val="-507" />
@@ -2241,6 +2255,7 @@
 				<param chance="60" />
 			</effect>
 			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun">
@@ -2253,6 +2268,7 @@
 				<param chance="60" />
 			</effect>
 			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun">
@@ -2272,7 +2288,6 @@
 		<set name="abnormalType" val="STUN" />
 		<set name="abnormalVisualEffect" val="STUN" />
 		<set name="activateRate" val="40" />
-		<set name="baseCritRate" val="20" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="100" />
@@ -2305,6 +2320,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun">
@@ -2314,6 +2330,7 @@
 		</for>
 		<enchant3for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Stun">
diff --git a/dist/game/data/stats/skills/00400-00499.xml b/dist/game/data/stats/skills/00400-00499.xml
index 0c31b133bb..104eabd2ef 100644
--- a/dist/game/data/stats/skills/00400-00499.xml
+++ b/dist/game/data/stats/skills/00400-00499.xml
@@ -17,7 +17,6 @@
 		<set name="abnormalTime" val="30" />
 		<set name="abnormalType" val="CRITICAL_PROB_DOWN" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="MEN" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="700" />
@@ -49,7 +48,9 @@
 			<using kind="SWORD,BLUNT" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="critRate" val="#rCrit" />
 			</effect>
@@ -67,7 +68,9 @@
 			<effect name="GetAgro" />
 		</for>
 		<enchant2for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="critRate" val="0.5" />
 			</effect>
@@ -85,7 +88,9 @@
 			<effect name="GetAgro" />
 		</enchant2for>
 		<enchant3for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="critDmg" val="#ench3cAtk" />
 				<mul stat="critRate" val="0.5" />
@@ -122,7 +127,6 @@
 		<set name="abnormalTime" val="30" />
 		<set name="abnormalType" val="CRITICAL_DMG_DOWN" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="MEN" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="700" />
@@ -155,7 +159,9 @@
 			<using kind="SWORD,BLUNT,DUAL" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="critDmg" val="#cAtk" />
 			</effect>
@@ -173,7 +179,9 @@
 			<effect name="GetAgro" />
 		</for>
 		<enchant3for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="critRate" val="#ench3rCrit" />
 				<mul stat="critDmg" val="0.65" />
@@ -470,7 +478,6 @@
 		<set name="activateRate" val="50" />
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="MEN" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="hitTime" val="3000" />
@@ -486,7 +493,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="AURA" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="runSpd" val="#debuff" />
 				<mul stat="pAtkSpd" val="#debuff" />
@@ -508,7 +517,6 @@
 		<set name="activateRate" val="50" />
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="MEN" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="hitTime" val="1500" />
@@ -527,7 +535,9 @@
 			<using kind="DUAL" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="mAtk" val="#debuff" />
 				<mul stat="pAtk" val="#debuff" />
@@ -2871,7 +2881,6 @@
 		<table name="#magicLvl"> 18 19 20 22 23 24 26 27 28 30 31 32 34 35 36 </table>
 		<table name="#mpConsume"> 69 70 71 74 78 81 88 91 95 101 101 104 112 116 120 </table>
 		<table name="#power"> 179 194 210 245 264 285 330 354 381 438 469 502 573 611 651 </table>
-		<set name="baseCritRate" val="20" />
 		<set name="castRange" val="500" />
 		<set name="coolTime" val="800" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -2891,7 +2900,9 @@
 			<using kind="CROSSBOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalSoulAttack" />
+			<effect name="PhysicalSoulAttack">
+				<param criticalChance="20" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="489" levels="1" name="Shift Target">
diff --git a/dist/game/data/stats/skills/00500-00599.xml b/dist/game/data/stats/skills/00500-00599.xml
index 913c6dcbe6..e428dfbb58 100644
--- a/dist/game/data/stats/skills/00500-00599.xml
+++ b/dist/game/data/stats/skills/00500-00599.xml
@@ -265,7 +265,6 @@
 		<table name="#enchDuel"> 5285 5391 5497 5602 5708 5814 5920 6025 6131 6237 6343 6448 6554 6660 6766 6871 6977 7083 7188 7294 7400 7506 7611 7717 7823 7929 8034 8140 8246 8352 </table>
 		<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="5" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="300" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -299,6 +298,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalSoulAttack">
+				<param criticalChance="5" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -314,7 +314,6 @@
 		<table name="#enchDuel"> 4955 5040 5125 5210 5295 5380 5465 5551 5636 5721 5806 5891 5976 6061 6147 6232 6317 6402 6487 6572 6657 6742 6828 6913 6998 7083 7168 7253 7338 7424 </table>
 		<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="baseCritRate" val="25" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -352,7 +351,9 @@
 			<using kind="CROSSBOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalSoulAttack" />
+			<effect name="PhysicalSoulAttack">
+				<param criticalChance="25" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="508" levels="31" name="Rising Shot" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2" enchantGroup4="2" enchantGroup5="2" enchantGroup6="2" enchantGroup7="2">
@@ -2228,7 +2229,6 @@
 		<table name="#effectPoints"> -288 -300 -311 -320 </table>
 		<table name="#magicLvl"> 60 63 66 69 </table>
 		<table name="#maxCharges"> 1 2 3 4 </table>
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="effectRange" val="1100" />
@@ -2243,7 +2243,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 		<selfEffects>
 			<effect name="FocusEnergy">
@@ -2323,7 +2325,6 @@
 		<set name="activateRate" val="50" />
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="250" />
-		<set name="baseCritRate" val="15" />
 		<set name="basicProperty" val="CON" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="element" val="3" /> <!-- Earth -->
@@ -2342,7 +2343,9 @@
 		<set name="targetType" val="AURA" />
 		<set name="trait" val="SHOCK" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="Stun" />
 		</for>
 	</skill>
diff --git a/dist/game/data/stats/skills/00600-00699.xml b/dist/game/data/stats/skills/00600-00699.xml
index 6cf3b10880..914de4380d 100644
--- a/dist/game/data/stats/skills/00600-00699.xml
+++ b/dist/game/data/stats/skills/00600-00699.xml
@@ -1475,7 +1475,6 @@
 		</for>
 	</skill>
 	<skill id="675" levels="1" name="Divine Warrior Cross Slash">
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="167" />
 		<set name="effectPoint" val="-598" />
@@ -1492,11 +1491,12 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="676" levels="1" name="Divine Warrior Sonic Blaster">
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-342" />
 		<set name="effectRange" val="1100" />
@@ -1511,7 +1511,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="677" levels="1" name="Divine Warrior Transfixion of Earth">
@@ -1779,7 +1781,6 @@
 		</for>
 	</skill>
 	<skill id="687" levels="1" name="Divine Rogue Double Shot">
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-684" />
@@ -1795,7 +1796,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="688" levels="1" name="Divine Rogue Bleed Attack">
diff --git a/dist/game/data/stats/skills/00700-00799.xml b/dist/game/data/stats/skills/00700-00799.xml
index 2a279b26a9..bf3546ca76 100644
--- a/dist/game/data/stats/skills/00700-00799.xml
+++ b/dist/game/data/stats/skills/00700-00799.xml
@@ -1618,7 +1618,6 @@
 		<set name="activateRate" val="70" />
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="300" />
-		<set name="baseCritRate" val="50" />
 		<set name="basicProperty" val="CON" />
 		<set name="coolTime" val="700" />
 		<set name="effectPoint" val="-1357" />
@@ -1643,6 +1642,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="50" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 			<effect name="Debuff">
@@ -1859,7 +1859,6 @@
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="900" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-686" />
@@ -1879,7 +1878,9 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="CallSkill">
 				<param skillId="23298" skillLevel="1" />
 			</effect>
@@ -1889,7 +1890,6 @@
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="200" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="600" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-686" />
@@ -1908,7 +1908,9 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="CallSkill">
 				<param skillId="23299" skillLevel="1" />
 			</effect>
@@ -1918,7 +1920,6 @@
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="900" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-686" />
@@ -1938,7 +1939,9 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 			<effect name="CallSkill">
 				<param skillId="23300" skillLevel="1" />
 			</effect>
@@ -2015,7 +2018,6 @@
 		<set name="abnormalType" val="FORCE_OF_DESTRUCTION" />
 		<set name="abnormalVisualEffect" val="DOT_POISON" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="20" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="40" />
 		<set name="chargeConsume" val="2" />
@@ -2051,7 +2053,6 @@
 	<skill id="777" levels="1" name="Demolition Impact">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<set name="affectRange" val="500" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-686" />
 		<set name="effectRange" val="650" />
@@ -2073,7 +2074,9 @@
 			</and>
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="778" levels="1" name="Golem Armor">
@@ -2399,7 +2402,6 @@
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<set name="affectLimit" val="5-12" />
 		<set name="affectRange" val="900" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-1" />
@@ -2420,7 +2422,9 @@
 			<using kind="CROSSBOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalSoulAttack" />
+			<effect name="PhysicalSoulAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="791" levels="1" name="Lightning Shock">
diff --git a/dist/game/data/stats/skills/00800-00899.xml b/dist/game/data/stats/skills/00800-00899.xml
index fc91b300db..a1464e7a52 100644
--- a/dist/game/data/stats/skills/00800-00899.xml
+++ b/dist/game/data/stats/skills/00800-00899.xml
@@ -282,7 +282,6 @@
 		<table name="#power"> 893 945 998 1054 1112 1172 1234 1298 1365 1433 1503 1575 1649 1725 1803 1882 1963 2045 2129 2214 2301 2388 2476 2565 2655 2745 2836 2927 3018 3108 3198 3288 3376 3464 3551 3636 3720 3801 3881 3959 4034 4107 4176 </table>
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="200" />
-		<set name="baseCritRate" val="15" />
 		<set name="coolTime" val="733" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="hitTime" val="1067" />
@@ -303,6 +302,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -315,7 +315,6 @@
 		<table name="#power"> 893 945 998 1054 1112 1172 1234 1298 1365 1433 1503 1575 1649 1725 1803 1882 1963 2045 2129 2214 2301 2388 2476 2565 2655 2745 2836 2927 3018 3108 3198 3288 3376 3464 3551 3636 3720 3801 3881 3959 4034 4107 4176 </table>
 		<set name="affectLimit" val="6-12" />
 		<set name="affectRange" val="200" />
-		<set name="baseCritRate" val="15" />
 		<set name="coolTime" val="733" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="hitTime" val="1067" />
@@ -333,6 +332,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -343,7 +343,6 @@
 		<table name="#magicLvl"> 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 </table>
 		<table name="#mpConsume"> 41 42 43 44 46 47 48 50 50 51 52 53 55 56 57 58 60 61 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 78 79 80 80 81 82 82 83 </table>
 		<table name="#power"> 992 1049 1109 1171 1236 1302 1371 1443 1516 1592 1670 1750 1832 1917 2003 2091 2181 2272 2366 2460 2556 2653 2751 2850 2950 3050 3151 3252 3353 3453 3553 3653 3752 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="1080" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -368,6 +367,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -378,7 +378,6 @@
 		<table name="#magicLvl"> 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 </table>
 		<table name="#mpConsume"> 41 42 43 44 46 47 48 50 50 51 52 53 55 56 57 58 60 61 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 78 79 80 80 81 82 82 83 </table>
 		<table name="#power"> 992 1049 1109 1171 1236 1302 1371 1443 1516 1592 1670 1750 1832 1917 2003 2091 2181 2272 2366 2460 2556 2653 2751 2850 2950 3050 3151 3252 3353 3453 3553 3653 3752 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="167" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -399,6 +398,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
diff --git a/dist/game/data/stats/skills/00900-00999.xml b/dist/game/data/stats/skills/00900-00999.xml
index 4f4f42fd8c..89adfa74b7 100644
--- a/dist/game/data/stats/skills/00900-00999.xml
+++ b/dist/game/data/stats/skills/00900-00999.xml
@@ -545,7 +545,6 @@
 		<table name="#magicLvl"> 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 </table>
 		<table name="#mpConsume"> 38 38 40 41 42 43 44 46 47 48 50 50 51 52 53 55 56 57 58 60 61 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 </table>
 		<table name="#power"> 664 706 750 795 843 893 945 998 1054 1112 1172 1234 1298 1365 1433 1503 1575 1649 1725 1803 1882 1963 2045 2129 2214 2301 2388 2476 2565 2655 2745 2836 2927 3018 3108 3198 3288 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="80" />
 		<set name="coolTime" val="720" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -565,12 +564,13 @@
 			<using kind="POLE" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="921" levels="1" name="Cursed Pierce">
 		<!-- Confirmed CT2.5 -->
-		<set name="baseCritRate" val="30" />
 		<set name="castRange" val="80" />
 		<set name="coolTime" val="720" />
 		<set name="effectPoint" val="-337" />
@@ -591,6 +591,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="30" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -633,7 +634,6 @@
 	</skill>
 	<skill id="924" levels="1" name="Seven Arrow">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="effectPoint" val="-1022" />
 		<set name="effectRange" val="1000" />
@@ -651,7 +651,9 @@
 			<using kind="BOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="925" levels="1" name="Sigil Mastery">
@@ -703,7 +705,6 @@
 		<set name="abnormalType" val="DOT_ATTR" />
 		<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
 		<set name="activateRate" val="50" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
@@ -731,7 +732,9 @@
 			<using kind="SWORD,BLUNT,DAGGER,POLE,DUALFIST,DUAL,DUALDAGGER" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="DamOverTime" ticks="1">
 				<param power="#dot" />
 			</effect>
@@ -739,7 +742,6 @@
 	</skill>
 	<skill id="928" levels="1" name="Dual Blow">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="30" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
 		<set name="effectPoint" val="-337" />
@@ -762,6 +764,7 @@
 		<for>
 			<effect name="FatalBlow">
 				<param blowChance="60" />
+				<param criticalChance="30" />
 			</effect>
 			<effect name="Lethal">
 				<param fullLethal="0.1" halfLethal="8" />
@@ -1010,7 +1013,6 @@
 	</skill>
 	<skill id="939" levels="1" name="Soul Rage">
 		<!-- Confirmed CT2.5 -->
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-340" />
 		<set name="effectRange" val="1100" />
@@ -1025,7 +1027,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 		<selfEffects>
 			<effect name="FocusSouls">
@@ -1112,7 +1116,6 @@
 		<!-- High Five Confirmed -->
 		<set name="affectLimit" val="3-6" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="5" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="100" />
 		<set name="effectPoint" val="-343" />
@@ -1131,7 +1134,9 @@
 			<using kind="SWORD,BLUNT" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="5" />
+			</effect>
 			<effect name="Spoil" />
 		</for>
 	</skill>
@@ -1385,7 +1390,6 @@
 		<table name="#magicLvl"> 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 </table>
 		<table name="#mpConsume"> 58 59 59 61 62 64 65 67 69 70 71 73 73 75 76 77 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 96 97 98 99 99 </table>
 		<table name="#power"> 2057 2164 2274 2388 2505 2625 2748 2875 3004 3136 3271 3408 3548 3690 3834 3980 4127 4275 4425 4575 4726 4878 5029 5180 5330 5479 5627 5773 5918 6060 6199 6335 6468 6598 6723 6844 6960 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="1080" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -1409,6 +1413,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -1420,7 +1425,6 @@
 		<table name="#magicLvl"> 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 </table>
 		<table name="#mpConsume"> 58 59 59 61 62 64 65 67 69 70 71 73 73 75 76 77 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 96 97 98 99 99 </table>
 		<table name="#power"> 2057 2164 2274 2388 2505 2625 2748 2875 3004 3136 3271 3408 3548 3690 3834 3980 4127 4275 4425 4575 4726 4878 5029 5180 5330 5479 5627 5773 5918 6060 6199 6335 6468 6598 6723 6844 6960 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="167" />
 		<set name="effectPoint" val="#effectPoints" />
@@ -1441,6 +1445,7 @@
 		</cond>
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -2128,7 +2133,6 @@
 		<!-- High Five Confirmed -->
 		<set name="affectLimit" val="8-0" />
 		<set name="affectRange" val="900" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-686" />
@@ -2150,7 +2154,9 @@
 			<using kind="BOW,CROSSBOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="988" levels="3" name="Battle Whisper">
@@ -2214,7 +2220,6 @@
 	</skill>
 	<skill id="990" levels="1" name="Death Shot">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="coolTime" val="500" />
 		<set name="effectPoint" val="-1387" />
@@ -2235,7 +2240,9 @@
 			<using kind="BOW,CROSSBOW" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="991" levels="1" name="Throwing Dagger">
@@ -2244,7 +2251,6 @@
 		<set name="abnormalTime" val="10" />
 		<set name="abnormalType" val="SPEED_DOWN" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="15" />
 		<set name="basicProperty" val="MEN" />
 		<set name="castRange" val="300" />
 		<set name="effectPoint" val="-345" />
@@ -2269,7 +2275,9 @@
 			<effect name="Debuff">
 				<mul stat="runSpd" val="0.2" />
 			</effect>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="992" levels="8" name="Sonic Mastery">
@@ -2441,7 +2449,6 @@
 		<set name="abnormalTime" val="3" />
 		<set name="abnormalType" val="PD_DOWN" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="5" />
 		<set name="basicProperty" val="MEN" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="500" />
@@ -2464,7 +2471,9 @@
 			<using kind="SWORD,BLUNT" />
 		</cond>
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="5" />
+			</effect>
 			<effect name="Debuff">
 				<mul stat="pDef" val="0.9" />
 			</effect>
diff --git a/dist/game/data/stats/skills/01500-01599.xml b/dist/game/data/stats/skills/01500-01599.xml
index 0a7c610694..c229cc3157 100644
--- a/dist/game/data/stats/skills/01500-01599.xml
+++ b/dist/game/data/stats/skills/01500-01599.xml
@@ -1891,7 +1891,6 @@
 	</skill>
 	<skill id="1560" levels="1" name="Lucky Blow">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="30" />
 		<set name="castRange" val="40" />
 		<set name="coolTime" val="720" />
 		<set name="effectPoint" val="-337" />
@@ -1914,6 +1913,7 @@
 		<for>
 			<effect name="FatalBlow">
 				<param blowChance="60" />
+				<param criticalChance="30" />
 			</effect>
 			<effect name="Lethal">
 				<param fullLethal="0.1" halfLethal="8" />
diff --git a/dist/game/data/stats/skills/04500-04599.xml b/dist/game/data/stats/skills/04500-04599.xml
index 85de485933..7d84d34e55 100644
--- a/dist/game/data/stats/skills/04500-04599.xml
+++ b/dist/game/data/stats/skills/04500-04599.xml
@@ -1182,7 +1182,6 @@
 		<table name="#magicLvl"> 10 20 30 40 50 60 70 75 80 85 90 95 </table>
 		<table name="#mpConsume"> 25 40 56 76 99 121 142 151 159 165 168 170 </table>
 		<table name="#power"> 92 210 438 833 1443 2272 3252 3752 4224 4640 4974 5233 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="-100" />
 		<set name="effectRange" val="400" />
@@ -1196,6 +1195,7 @@
 		<set name="targetType" val="ONE" />
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
@@ -1204,7 +1204,6 @@
 		<table name="#magicLvl"> 10 20 30 40 50 60 70 75 80 85 90 95 </table>
 		<table name="#mpConsume"> 13 20 28 38 50 61 71 76 80 83 84 85 </table>
 		<table name="#power"> 46 105 219 417 722 1136 1626 1876 2112 2320 2487 2617 </table>
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-100" />
 		<set name="effectRange" val="1100" />
@@ -1217,7 +1216,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="4574" levels="12" name="NPC Sonic Storm">
@@ -1225,7 +1226,6 @@
 		<table name="#mpConsume"> 9 14 19 26 33 41 48 51 53 55 56 57 </table>
 		<table name="#power"> 31 70 146 278 481 758 1084 1251 1408 1547 1658 1745 </table>
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="500" />
 		<set name="effectPoint" val="-100" />
 		<set name="effectRange" val="1000" />
@@ -1238,7 +1238,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="AREA" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="4575" levels="2" name="NPC Clan Buff - Haste">
diff --git a/dist/game/data/stats/skills/04600-04699.xml b/dist/game/data/stats/skills/04600-04699.xml
index f25b776ba1..9ec1a82cca 100644
--- a/dist/game/data/stats/skills/04600-04699.xml
+++ b/dist/game/data/stats/skills/04600-04699.xml
@@ -1988,7 +1988,6 @@
 		<!-- Valakas Skills -->
 		<!-- Valakas Trample Left -->
 		<set name="affectRange" val="250" />
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="50" />
 		<set name="coolTime" val="1500" />
 		<set name="effectPoint" val="-100" />
@@ -2004,7 +2003,9 @@
 		<set name="targetType" val="FRONT_AREA" />
 		<set name="trait" val="VALAKAS" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="4682" levels="1" name="Valakas Trample">
@@ -2012,7 +2013,6 @@
 		<!-- Valakas Skills -->
 		<!-- Valakas Trample Right -->
 		<set name="affectRange" val="250" />
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="50" />
 		<set name="coolTime" val="1500" />
 		<set name="effectPoint" val="-100" />
@@ -2028,7 +2028,9 @@
 		<set name="targetType" val="FRONT_AREA" />
 		<set name="trait" val="VALAKAS" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="4683" levels="1" name="Valakas Dragon Breath">
@@ -2102,7 +2104,6 @@
 		<!-- Valakas Skills -->
 		<!-- Valakas Tail Stomp A from Behind -->
 		<set name="affectRange" val="1000" />
-		<set name="baseCritRate" val="10" />
 		<set name="coolTime" val="1000" />
 		<set name="effectPoint" val="-100" />
 		<set name="element" val="0" /> <!-- Fire -->
@@ -2115,7 +2116,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="BEHIND_AURA" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="4686" levels="1" name="Valakas Tail Stomp">
@@ -2155,7 +2158,6 @@
 		<set name="abnormalType" val="FLY_AWAY" />
 		<set name="activateRate" val="80" />
 		<set name="affectRange" val="250" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="CON" />
 		<set name="coolTime" val="3000" />
 		<set name="effectPoint" val="-100" />
@@ -2175,7 +2177,9 @@
 		<set name="targetType" val="BEHIND_AURA" />
 		<set name="trait" val="SHOCK" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="ThrowUp" />
 			<effect name="Stun" />
 		</for>
diff --git a/dist/game/data/stats/skills/04700-04799.xml b/dist/game/data/stats/skills/04700-04799.xml
index 6c001ad537..c5427d052f 100644
--- a/dist/game/data/stats/skills/04700-04799.xml
+++ b/dist/game/data/stats/skills/04700-04799.xml
@@ -274,7 +274,6 @@
 		<table name="#magicLvl"> 58 62 66 70 72 74 76 78 79 80 </table>
 		<table name="#mpConsume"> 58 62 67 71 73 75 77 78 79 80 </table>
 		<table name="#power"> 4181 4920 5700 6503 6906 7305 7698 8079 8265 8447 </table>
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="#effectPoints" />
 		<set name="effectRange" val="200" />
@@ -289,6 +288,7 @@
 		<for>
 			<effect name="FatalBlow">
 				<param blowChance="20" />
+				<param criticalChance="10" />
 			</effect>
 		</for>
 	</skill>
diff --git a/dist/game/data/stats/skills/05000-05099.xml b/dist/game/data/stats/skills/05000-05099.xml
index 4a044003e9..0ee763473a 100644
--- a/dist/game/data/stats/skills/05000-05099.xml
+++ b/dist/game/data/stats/skills/05000-05099.xml
@@ -295,11 +295,10 @@
 	<skill id="5014" levels="3" name="Frintezza's Daemon Attack">
 		<!-- Confirmed CT2.5 -->
 		<!-- Frintezza Skills -->
-		<table name="#baseCritRate"> 6 8 10 </table>
+		<table name="#criticalChance"> 6 8 10 </table>
 		<table name="#magicLvl"> 85 85 90 </table>
 		<table name="#power"> 15835 19096 16176 </table>
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="#baseCritRate" />
 		<set name="castRange" val="150" />
 		<set name="coolTime" val="1200" />
 		<set name="effectPoint" val="-100" />
@@ -314,7 +313,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="FRONT_AREA" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="#criticalChance" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="5015" levels="6" name="Frintezza's Daemon Charge">
diff --git a/dist/game/data/stats/skills/05200-05299.xml b/dist/game/data/stats/skills/05200-05299.xml
index a632261a38..06afb63473 100644
--- a/dist/game/data/stats/skills/05200-05299.xml
+++ b/dist/game/data/stats/skills/05200-05299.xml
@@ -559,7 +559,6 @@
 		<!-- Confirmed CT2.5 -->
 		<!-- Baylor Skills -->
 		<set name="affectRange" val="200" />
-		<set name="baseCritRate" val="20" />
 		<set name="effectPoint" val="-100" />
 		<set name="hitTime" val="2500" />
 		<set name="magicLvl" val="85" />
@@ -569,14 +568,15 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="AURA" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="5228" levels="1" name="Jump Attack">
 		<!-- Confirmed CT2.5 -->
 		<!-- Baylor Skills -->
 		<set name="affectRange" val="200" />
-		<set name="baseCritRate" val="20" />
 		<set name="effectPoint" val="-100" />
 		<set name="hitTime" val="2500" />
 		<set name="magicLvl" val="85" />
@@ -587,7 +587,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="AURA" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="5229" levels="1" name="Strong Punch">
@@ -598,7 +600,6 @@
 		<set name="abnormalType" val="STUN" />
 		<set name="abnormalVisualEffect" val="STUN" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="20" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-100" />
@@ -617,7 +618,9 @@
 		<set name="targetType" val="ONE" />
 		<set name="trait" val="SHOCK" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="20" />
+			</effect>
 			<effect name="Stun" />
 			<effect name="ThrowUp" />
 		</for>
diff --git a/dist/game/data/stats/skills/06300-06399.xml b/dist/game/data/stats/skills/06300-06399.xml
index d92aa30ae7..135b6905d9 100644
--- a/dist/game/data/stats/skills/06300-06399.xml
+++ b/dist/game/data/stats/skills/06300-06399.xml
@@ -1480,7 +1480,6 @@
 	</skill>
 	<skill id="6387" levels="1" name="Bistakon Earthquake">
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="15" />
 		<set name="coolTime" val="500" />
 		<set name="effectPoint" val="-1000" />
 		<set name="element" val="3" /> <!-- Earth -->
@@ -1495,6 +1494,7 @@
 		<set name="targetType" val="AURA" />
 		<for>
 			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
 				<param ignoreShieldDefence="true" />
 			</effect>
 		</for>
diff --git a/dist/game/data/stats/skills/06700-06799.xml b/dist/game/data/stats/skills/06700-06799.xml
index d3ca8334d9..155ef378eb 100644
--- a/dist/game/data/stats/skills/06700-06799.xml
+++ b/dist/game/data/stats/skills/06700-06799.xml
@@ -657,7 +657,6 @@
 	</skill>
 	<skill id="6750" levels="1" name="Power Strike">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="5" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-1000" />
 		<set name="effectRange" val="300" />
@@ -673,7 +672,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="5" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6751" levels="1" name="Blow Attack">
@@ -702,7 +703,6 @@
 	</skill>
 	<skill id="6753" levels="1" name="Death Blow">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="20" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-337" />
 		<set name="effectRange" val="300" />
@@ -720,6 +720,7 @@
 		<for>
 			<effect name="FatalBlow">
 				<param blowChance="30" />
+				<param criticalChance="20" />
 			</effect>
 		</for>
 	</skill>
@@ -731,7 +732,6 @@
 		<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
 		<set name="activateRate" val="80" />
 		<set name="affectRange" val="150" />
-		<set name="baseCritRate" val="20" />
 		<set name="basicProperty" val="CON" />
 		<set name="effectPoint" val="-10000" />
 		<set name="element" val="5" /> <!-- Dark -->
@@ -751,6 +751,7 @@
 		<for>
 			<effect name="FatalBlow">
 				<param blowChance="30" />
+				<param criticalChance="20" />
 			</effect>
 			<effect name="DamOverTime" ticks="5">
 				<param power="100" />
@@ -862,7 +863,6 @@
 	</skill>
 	<skill id="6760" levels="1" name="Dragon Strike">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="50" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-1000" />
 		<set name="effectRange" val="300" />
@@ -877,7 +877,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="50" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6761" levels="1" name="Dragon Blow Strike">
@@ -926,7 +928,6 @@
 	</skill>
 	<skill id="6763" levels="1" name="Dragon Earth Strike">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-1000" />
 		<set name="effectRange" val="300" />
@@ -941,12 +942,13 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6764" levels="1" name="Dragon Earth Shot">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="15" />
 		<set name="castRange" val="900" />
 		<set name="effectPoint" val="-897" />
 		<set name="effectRange" val="1400" />
@@ -961,7 +963,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="15" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6765" levels="1" name="Complete Recovery">
@@ -1117,7 +1121,6 @@
 	</skill>
 	<skill id="6772" levels="1" name="Power Strike">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="10" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-1000" />
 		<set name="effectRange" val="300" />
@@ -1133,7 +1136,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6773" levels="1" name="Rage">
@@ -1169,7 +1174,6 @@
 		<set name="abnormalType" val="STUN" />
 		<set name="abnormalVisualEffect" val="STUN" />
 		<set name="activateRate" val="80" />
-		<set name="baseCritRate" val="10" />
 		<set name="basicProperty" val="CON" />
 		<set name="castRange" val="150" />
 		<set name="effectPoint" val="-10000" />
@@ -1189,7 +1193,9 @@
 		<set name="targetType" val="ONE" />
 		<set name="trait" val="SHOCK" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="10" />
+			</effect>
 			<effect name="Stun" />
 		</for>
 	</skill>
diff --git a/dist/game/data/stats/skills/06800-06899.xml b/dist/game/data/stats/skills/06800-06899.xml
index e0c9c3617f..4d98a5f23f 100644
--- a/dist/game/data/stats/skills/06800-06899.xml
+++ b/dist/game/data/stats/skills/06800-06899.xml
@@ -550,7 +550,6 @@
 	</skill>
 	<skill id="6826" levels="1" name="Critical Strike">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="30" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="-10000" />
 		<set name="effectRange" val="150" />
@@ -562,7 +561,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="30" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6827" levels="1" name="Petrify">
@@ -571,7 +572,6 @@
 		<set name="abnormalTime" val="3" />
 		<set name="abnormalType" val="TURN_STONE" />
 		<set name="abnormalVisualEffect" val="FLESH_STONE" />
-		<set name="baseCritRate" val="30" />
 		<set name="castRange" val="300" />
 		<set name="effectPoint" val="-100" />
 		<set name="effectRange" val="600" />
@@ -586,7 +586,9 @@
 		<set name="targetType" val="ONE" />
 		<for>
 			<effect name="Stun" />
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="30" />
+			</effect>
 			<effect name="BlockBuff" />
 			<effect name="BlockDebuff" />
 			<effect name="BlockDamage">
@@ -1520,7 +1522,6 @@
 	</skill>
 	<skill id="6881" levels="1" name="Critical Strike">
 		<!-- High Five Confirmed -->
-		<set name="baseCritRate" val="30" />
 		<set name="castRange" val="40" />
 		<set name="effectPoint" val="-10000" />
 		<set name="effectRange" val="300" />
@@ -1533,7 +1534,9 @@
 		<set name="rideState" val="NONE" />
 		<set name="targetType" val="ONE" />
 		<for>
-			<effect name="PhysicalAttack" />
+			<effect name="PhysicalAttack">
+				<param criticalChance="30" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="6882" levels="1" name="Petrify">
-- 
GitLab