Преглед изворни кода

BETA: Core-Part for [DP9998].

Nos пре 11 година
родитељ
комит
afbf948783

+ 41 - 40
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2AttackableAI.java

@@ -352,9 +352,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					{
 						int x, y, z;
 						
- 						// Territory based spawn
- 						if ((npc.getSpawn().getX() == 0) && (npc.getSpawn().getY() == 0))
- 						{
+						// Territory based spawn
+						if ((npc.getSpawn().getX() == 0) && (npc.getSpawn().getY() == 0))
+						{
 							x = npc.getSpawn().getX(npc);
 							y = npc.getSpawn().getY(npc);
 							z = npc.getSpawn().getZ(npc);
@@ -688,18 +688,19 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 			else
 			{
 				// New territory based spawn - obtain last spawn point
-				if (npc.getSpawn().getX() == 0 && npc.getSpawn().getY() == 0)
+				if ((npc.getSpawn().getX() == 0) && (npc.getSpawn().getY() == 0))
 				{
 					x1 = npc.getSpawn().getX(npc);
 					y1 = npc.getSpawn().getY(npc);
 					z1 = npc.getSpawn().getZ(npc);
 				}
-				else // If NPC with fixed coord
+				else
+				// If NPC with fixed coord
 				{
 					x1 = npc.getSpawn().getX();
 					y1 = npc.getSpawn().getY();
 					z1 = npc.getSpawn().getZ();
-				}				
+				}
 				
 				if (!npc.isInsideRadius(x1, y1, 0, range, false, false))
 				{
@@ -709,9 +710,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				{
 					int deltaX = Rnd.nextInt(range * 2); // x
 					int deltaY = Rnd.get(deltaX, range * 2); // distance
-					deltaY = (int) Math.sqrt(deltaY * deltaY - deltaX * deltaX); // y
-					x1 = deltaX + x1 - range;
-					y1 = deltaY + y1 - range;
+					deltaY = (int) Math.sqrt((deltaY * deltaY) - (deltaX * deltaX)); // y
+					x1 = (deltaX + x1) - range;
+					y1 = (deltaY + y1) - range;
 					z1 = npc.getZ();
 				}
 			}
@@ -1434,46 +1435,46 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				break;
 			}
-			case DEBUFF:
+			default:
 			{
-				if (GeoData.getInstance().canSeeTarget(caster, attackTarget) && !canAOE(sk) && !attackTarget.isDead() && (dist2 <= srange))
-				{
-					if (!attackTarget.isAffectedBySkill(sk.getId()))
-					{
-						clientStopMoving(null);
-						caster.doCast(sk);
-						return true;
-					}
-				}
-				else if (canAOE(sk))
+				if (sk.isDebuff())
 				{
-					if ((sk.getTargetType() == L2TargetType.AURA) || (sk.getTargetType() == L2TargetType.BEHIND_AURA) || (sk.getTargetType() == L2TargetType.FRONT_AURA) || (sk.getTargetType() == L2TargetType.AURA_CORPSE_MOB))
+					if (GeoData.getInstance().canSeeTarget(caster, attackTarget) && !canAOE(sk) && !attackTarget.isDead() && (dist2 <= srange))
 					{
-						clientStopMoving(null);
-						caster.doCast(sk);
-						return true;
+						if (!attackTarget.isAffectedBySkill(sk.getId()))
+						{
+							clientStopMoving(null);
+							caster.doCast(sk);
+							return true;
+						}
 					}
-					if (((sk.getTargetType() == L2TargetType.AREA) || (sk.getTargetType() == L2TargetType.BEHIND_AREA) || (sk.getTargetType() == L2TargetType.FRONT_AREA)) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && (dist2 <= srange))
+					else if (canAOE(sk))
 					{
-						clientStopMoving(null);
-						caster.doCast(sk);
-						return true;
+						if ((sk.getTargetType() == L2TargetType.AURA) || (sk.getTargetType() == L2TargetType.BEHIND_AURA) || (sk.getTargetType() == L2TargetType.FRONT_AURA) || (sk.getTargetType() == L2TargetType.AURA_CORPSE_MOB))
+						{
+							clientStopMoving(null);
+							caster.doCast(sk);
+							return true;
+						}
+						if (((sk.getTargetType() == L2TargetType.AREA) || (sk.getTargetType() == L2TargetType.BEHIND_AREA) || (sk.getTargetType() == L2TargetType.FRONT_AREA)) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && (dist2 <= srange))
+						{
+							clientStopMoving(null);
+							caster.doCast(sk);
+							return true;
+						}
 					}
-				}
-				else if (sk.getTargetType() == L2TargetType.ONE)
-				{
-					L2Character target = effectTargetReconsider(sk, false);
-					if (target != null)
+					else if (sk.getTargetType() == L2TargetType.ONE)
 					{
-						clientStopMoving(null);
-						caster.doCast(sk);
-						return true;
+						L2Character target = effectTargetReconsider(sk, false);
+						if (target != null)
+						{
+							clientStopMoving(null);
+							caster.doCast(sk);
+							return true;
+						}
 					}
 				}
-				break;
-			}
-			default:
-			{
+				
 				if (sk.hasEffectType(L2EffectType.DISPEL))
 				{
 					if (sk.getTargetType() == L2TargetType.ONE)

+ 5 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2CharacterAI.java

@@ -1286,14 +1286,15 @@ public class L2CharacterAI extends AbstractAI
 					case BUFF:
 						buffSkills.add(sk);
 						continue; // won't be considered something for fighting
-					case DEBUFF:
-						debuffSkills.add(sk);
-						break;
 					case NOTDONE:
 					case COREDONE:
 						continue; // won't be considered something for fighting
 					default:
-						if (sk.hasEffectType(L2EffectType.DISPEL))
+						if (sk.isDebuff())
+						{
+							debuffSkills.add(sk);
+						}
+						else if (sk.hasEffectType(L2EffectType.DISPEL))
 						{
 							cancelSkills.add(sk);
 						}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2TamedBeastInstance.java

@@ -365,7 +365,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 			for (L2Skill skill : getTemplate().getSkills().values())
 			{
 				// if the skill is a debuff, check if the attacker has it already [ attacker.getEffect(L2Skill skill) ]
-				if ((skill.getSkillType() == L2SkillType.DEBUFF) && (Rnd.get(3) < 1) && ((attacker != null) && attacker.isAffectedBySkill(skill.getId())))
+				if (skill.isDebuff() && (Rnd.get(3) < 1) && ((attacker != null) && attacker.isAffectedBySkill(skill.getId())))
 				{
 					sitCastAndFollow(skill, attacker);
 				}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/cubics/CubicAction.java

@@ -155,7 +155,7 @@ public final class CubicAction implements Runnable
 							target
 						};
 						
-						if (type == L2SkillType.DEBUFF)
+						if (skill.isContinuous())
 						{
 							if (Config.DEBUG)
 							{

+ 7 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java

@@ -345,13 +345,14 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 					case BUFF:
 						addBuffSkill(skill);
 						break;
-					case DEBUFF:
-						addDebuffSkill(skill);
-						addCOTSkill(skill);
-						addRangeSkill(skill);
-						break;
 					case DUMMY:
-						if (skill.hasEffectType(L2EffectType.DISPEL))
+						if (skill.isDebuff())
+						{
+							addDebuffSkill(skill);
+							addCOTSkill(skill);
+							addRangeSkill(skill);
+						}
+						else if (skill.hasEffectType(L2EffectType.DISPEL))
 						{
 							addNegativeSkill(skill);
 							addRangeSkill(skill);

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/L2SkillType.java

@@ -57,7 +57,6 @@ public enum L2SkillType
 	FEED_PET,
 	
 	BUFF,
-	DEBUFF,
 	DETECT_TRAP,
 	REMOVE_TRAP,