Переглянути джерело

Core Support for CritVuln type Skills like Chant of Protection

* CritDMG Bonus is decreased.
nBd 17 роки тому
батько
коміт
63a0623620

+ 3 - 1
L2_GameServer_T1/java/net/sf/l2j/gameserver/skills/Formulas.java

@@ -1219,7 +1219,9 @@ public final class Formulas
 		}
 
 
-		if (crit) damage += attacker.getCriticalDmg(target, damage);
+		if (crit)
+			damage += (attacker.getCriticalDmg(target, damage) * target.calcStat(Stats.CRIT_VULN, target.getTemplate().baseCritVuln, target, skill != null ? skill : null));
+		
 		if (shld && !Config.ALT_GAME_SHIELD_BLOCKS)
 		{
 			defence += target.getShldDef();

+ 1 - 0
L2_GameServer_T1/java/net/sf/l2j/gameserver/skills/Stats.java

@@ -123,6 +123,7 @@ public enum Stats
 	CANCEL_VULN     ("cancelVuln"), // Resistance for cancel type skills
 	DERANGEMENT_VULN("derangementVuln"),
 	DEBUFF_VULN		("debuffVuln"),
+	CRIT_VULN		("critVuln"), // Resistence to Crit DMG.
 
 	NONE_WPN_VULN 	("noneWpnVuln"), // Shields!!!
 	SWORD_WPN_VULN 	("swordWpnVuln"),

+ 2 - 0
L2_GameServer_T1/java/net/sf/l2j/gameserver/templates/L2CharTemplate.java

@@ -83,6 +83,7 @@ public class L2CharTemplate
 	public final double baseEarthVuln;
 	public final double baseHolyVuln;
 	public final double baseDarkVuln;
+	public final double baseCritVuln;
 
 	public final boolean isUndead;
 
@@ -152,6 +153,7 @@ public class L2CharTemplate
 		baseEarthVuln       = set.getInteger("baseEarthVuln",       1);
 		baseHolyVuln        = set.getInteger("baseHolyVuln",        1);
 		baseDarkVuln        = set.getInteger("baseDarkVuln",        1);
+		baseCritVuln		= set.getInteger("baseCritVuln",		1);
 
 		isUndead			= (set.getInteger("isUndead", 0) == 1);