Browse Source

BETA: Fixing some NPEs in Formulas.
* Reported by: Nik

Rumen Nikiforov 12 years ago
parent
commit
f0b1909879
1 changed files with 14 additions and 14 deletions
  1. 14 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/stats/Formulas.java

+ 14 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/stats/Formulas.java

@@ -682,9 +682,9 @@ public final class Formulas
 		if (target.isL2Attackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_DMG_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 2))
 		{
 			int lvlDiff = target.getLevel() - attacker.getActingPlayer().getLevel() - 1;
-			if (lvlDiff > Config.NPC_SKILL_DMG_PENALTY.size())
+			if (lvlDiff >= Config.NPC_SKILL_DMG_PENALTY.size())
 			{
-				damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size());
+				damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size() - 1);
 			}
 			else
 			{
@@ -954,9 +954,9 @@ public final class Formulas
 				int lvlDiff = target.getLevel() - attacker.getActingPlayer().getLevel() - 1;
 				if (skill != null)
 				{
-					if (lvlDiff > Config.NPC_SKILL_DMG_PENALTY.size())
+					if (lvlDiff >= Config.NPC_SKILL_DMG_PENALTY.size())
 					{
-						damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size());
+						damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size() - 1);
 					}
 					else
 					{
@@ -965,9 +965,9 @@ public final class Formulas
 				}
 				else if (crit)
 				{
-					if (lvlDiff > Config.NPC_CRIT_DMG_PENALTY.size())
+					if (lvlDiff >= Config.NPC_CRIT_DMG_PENALTY.size())
 					{
-						damage *= Config.NPC_CRIT_DMG_PENALTY.get(Config.NPC_CRIT_DMG_PENALTY.size());
+						damage *= Config.NPC_CRIT_DMG_PENALTY.get(Config.NPC_CRIT_DMG_PENALTY.size() - 1);
 					}
 					else
 					{
@@ -976,9 +976,9 @@ public final class Formulas
 				}
 				else
 				{
-					if (lvlDiff > Config.NPC_DMG_PENALTY.size())
+					if (lvlDiff >= Config.NPC_DMG_PENALTY.size())
 					{
-						damage *= Config.NPC_DMG_PENALTY.get(Config.NPC_DMG_PENALTY.size());
+						damage *= Config.NPC_DMG_PENALTY.get(Config.NPC_DMG_PENALTY.size() - 1);
 					}
 					else
 					{
@@ -1129,9 +1129,9 @@ public final class Formulas
 			if (!target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_DMG_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 2))
 			{
 				int lvlDiff = target.getLevel() - attacker.getActingPlayer().getLevel() - 1;
-				if (lvlDiff > Config.NPC_SKILL_DMG_PENALTY.size())
+				if (lvlDiff >= Config.NPC_SKILL_DMG_PENALTY.size())
 				{
-					damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size());
+					damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size() - 1);
 				}
 				else
 				{
@@ -2333,9 +2333,9 @@ public final class Formulas
 		if (target.isL2Attackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
 		{
 			int lvlDiff = target.getLevel() - attacker.getActingPlayer().getLevel() - 2;
-			if (lvlDiff > Config.NPC_SKILL_CHANCE_PENALTY.size())
+			if (lvlDiff >= Config.NPC_SKILL_CHANCE_PENALTY.size())
 			{
-				targetModifier = Config.NPC_SKILL_CHANCE_PENALTY.get(Config.NPC_SKILL_CHANCE_PENALTY.size());
+				targetModifier = Config.NPC_SKILL_CHANCE_PENALTY.get(Config.NPC_SKILL_CHANCE_PENALTY.size() - 1);
 			}
 			else
 			{
@@ -2411,9 +2411,9 @@ public final class Formulas
 			if (!target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LVL_DMG_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 2))
 			{
 				int lvlDiff = target.getLevel() - attacker.getActingPlayer().getLevel() - 1;
-				if (lvlDiff > Config.NPC_SKILL_DMG_PENALTY.size())
+				if (lvlDiff >= Config.NPC_SKILL_DMG_PENALTY.size())
 				{
-					damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size());
+					damage *= Config.NPC_SKILL_DMG_PENALTY.get(Config.NPC_SKILL_DMG_PENALTY.size() - 1);
 				}
 				else
 				{