Explorar o código

Removed power from skills that have Backstab, FatalBlow and SoulBlow
effect handler.

Adry85 %!s(int64=7) %!d(string=hai) anos
pai
achega
40c9da9022

+ 4 - 6
src/main/java/com/l2jserver/gameserver/model/stats/Formulas.java

@@ -555,7 +555,7 @@ public final class Formulas
 		return 1.5; // If all is true, then modifier will be 50% more
 	}
 	
-	public static double calcBlowDamage(L2Character attacker, L2Character target, Skill skill, byte shld, boolean ss)
+	public static double calcBlowDamage(L2Character attacker, L2Character target, Skill skill, byte shld, boolean ss, double power)
 	{
 		double defence = target.getPDef(attacker);
 		
@@ -573,8 +573,6 @@ public final class Formulas
 		}
 		
 		final boolean isPvP = attacker.isPlayable() && target.isPlayable();
-		final boolean isPvE = attacker.isPlayable() && target.isAttackable();
-		double power = skill.getPower(isPvP, isPvE);
 		double damage = 0;
 		double proximityBonus = attacker.isBehindTarget() ? 1.2 : attacker.isInFrontOfTarget() ? 1 : 1.1; // Behind: +20% - Side: +10% (TODO: values are unconfirmed, possibly custom, remove or update when confirmed);
 		double ssboost = ss ? 1.458 : 1;
@@ -625,7 +623,7 @@ public final class Formulas
 		if (attacker.isDebug())
 		{
 			final StatsSet set = new StatsSet();
-			set.set("skillPower", skill.getPower(isPvP, isPvE));
+			set.set("skillPower", power);
 			set.set("ssboost", ssboost);
 			set.set("proximityBonus", proximityBonus);
 			set.set("pvpBonus", pvpBonus);
@@ -647,7 +645,7 @@ public final class Formulas
 		return Math.max(damage, 1);
 	}
 	
-	public static double calcBackstabDamage(L2Character attacker, L2Character target, Skill skill, byte shld, boolean ss)
+	public static double calcBackstabDamage(L2Character attacker, L2Character target, Skill skill, byte shld, boolean ss, double power)
 	{
 		double defence = target.getPDef(attacker);
 		
@@ -680,7 +678,7 @@ public final class Formulas
 		}
 		
 		// Initial damage
-		double baseMod = ((77 * (skill.getPower(isPvP, isPvE) + attacker.getPAtk(target))) / defence) * ssboost;
+		double baseMod = ((77 * (power + attacker.getPAtk(target))) / defence) * ssboost;
 		// Critical
 		double criticalMod = (attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill));
 		double criticalModPos = (((attacker.calcStat(Stats.CRITICAL_DAMAGE_POS, 1, target, skill) - 1) / 2) + 1);