Explorar o código

BETA: DP-Part for [L5060]

Rumen Nikiforov %!s(int64=13) %!d(string=hai) anos
pai
achega
a0edd1e063
Modificáronse 61 ficheiros con 2335 adicións e 2197 borrados
  1. 64 67
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
  2. 89 31
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chests.java
  3. 16 23
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java
  4. 55 59
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
  5. 332 331
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
  6. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FairyTrees.java
  7. 51 52
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
  8. 20 12
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Monastery.java
  9. 3 3
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PavelArchaic.java
  10. 15 14
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java
  11. 81 27
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java
  12. 22 18
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrisonGuards.java
  13. 52 104
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/RandomSpawn.java
  14. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SearchingMaster.java
  15. 48 5
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeeThroughSilentMove.java
  16. 126 36
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java
  17. 11 5
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StakatoNest.java
  18. 22 11
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java
  19. 13 15
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SummonMinions.java
  20. 103 117
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
  21. 31 114
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
  22. 16 17
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Core.java
  23. 83 80
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/DarkWaterDragon.java
  24. 21 23
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/DrChaos.java
  25. 6 3
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/FleeNpc.java
  26. 8 9
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/GeneralDilios.java
  27. 82 49
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Gordon.java
  28. 58 159
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Keltas.java
  29. 34 59
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Orfen.java
  30. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/OutpostCaptain.java
  31. 36 35
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/QueenAnt.java
  32. 38 36
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Valakas.java
  33. 111 110
      L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Zaken.java
  34. 11 9
      L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/BanditStronghold/BanditStronghold.java
  35. 5 11
      L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java
  36. 16 14
      L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/WildBeastReserve/WildBeastReserve.java
  37. 35 33
      L2J_DataPack_BETA/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java
  38. 20 19
      L2J_DataPack_BETA/dist/game/data/scripts/events/GiftOfVitality/GiftOfVitality.java
  39. 107 102
      L2J_DataPack_BETA/dist/game/data/scripts/events/HeavyMedal/HeavyMedal.java
  40. 104 95
      L2J_DataPack_BETA/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java
  41. 52 53
      L2J_DataPack_BETA/dist/game/data/scripts/events/TheValentineEvent/TheValentineEvent.java
  42. 12 13
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/MithrilMines/MithrilMines.java
  43. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/NewbieTravelToken/NewbieTravelToken.java
  44. 6 4
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/NoblesseTeleport/NoblesseTeleport.java
  45. 147 44
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/OracleTeleport/OracleTeleport.java
  46. 5 3
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/PaganTeleporters/PaganTeleporters.java
  47. 12 13
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/StakatoNest/StakatoNest.java
  48. 13 11
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/StrongholdsTeleports/StrongholdsTeleports.java
  49. 5 6
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/Survivor/Survivor.java
  50. 37 37
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/TeleportToFantasy/TeleportToFantasy.java
  51. 29 29
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
  52. 12 9
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/TeleportWithCharm/TeleportWithCharm.java
  53. 14 15
      L2J_DataPack_BETA/dist/game/data/scripts/teleports/ToIVortex/ToIVortex.java
  54. 26 28
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
  55. 3 4
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatGiranTalking.java
  56. 1 2
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatGludinRune.java
  57. 1 2
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatInnadrilTour.java
  58. 2 3
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatRunePrimeval.java
  59. 1 2
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatTalkingGludin.java
  60. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/EngineerLekon/EngineerLekon.java
  61. 5 5
      L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/KeucereusNorthController.java

+ 64 - 67
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java

@@ -41,8 +41,7 @@ import com.l2jserver.util.Rnd;
 
 /**
  * Growth-capable mobs: Polymorphing upon successful feeding.
- * @author Fulminus
- * Updated to Freya by Gigiikun
+ * @author Fulminus Updated to Freya by Gigiikun
  */
 public class BeastFarm extends L2AttackableAIScript
 {
@@ -54,19 +53,24 @@ public class BeastFarm extends L2AttackableAIScript
 	private static final int SKILL_BLESSED_CRYSTAL_SPICE = 9052;
 	private static final int SKILL_SGRADE_GOLDEN_SPICE = 9053;
 	private static final int SKILL_SGRADE_CRYSTAL_SPICE = 9054;
-	private static final int[] TAMED_BEASTS = { 18869, 18870, 18871, 18872 };
+	private static final int[] TAMED_BEASTS =
+	{
+		18869, 18870, 18871, 18872
+	};
 	private static final int TAME_CHANCE = 20;
-	private static final int[] SPECIAL_SPICE_CHANCES = { 33, 75 };
+	private static final int[] SPECIAL_SPICE_CHANCES =
+	{
+		33, 75
+	};
 	
 	// all mobs that can eat...
-	private static final int[] FEEDABLE_BEASTS = {
-		18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882,
-		18883, 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892,
-		18893, 18894, 18895, 18896, 18897, 18898, 18899, 18900
+	private static final int[] FEEDABLE_BEASTS =
+	{
+		18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883, 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897, 18898, 18899, 18900
 	};
 	
-	private static Map<Integer,Integer> _FeedInfo = new FastMap<Integer,Integer>();
-	private static Map<Integer,GrowthCapableMob> _GrowthCapableMobs = new FastMap<Integer,GrowthCapableMob>();
+	private static Map<Integer, Integer> _FeedInfo = new FastMap<Integer, Integer>();
+	private static Map<Integer, GrowthCapableMob> _GrowthCapableMobs = new FastMap<Integer, GrowthCapableMob>();
 	private static Map<String, SkillHolder[]> _TamedBeastsData = new FastMap<String, SkillHolder[]>();
 	
 	// all mobs that grow by eating
@@ -75,7 +79,7 @@ public class BeastFarm extends L2AttackableAIScript
 		private final int _chance;
 		private final int _growthLevel;
 		private final int _tameNpcId;
-		private final Map<Integer,Integer> _skillSuccessNpcIdList = new FastMap<Integer,Integer>();
+		private final Map<Integer, Integer> _skillSuccessNpcIdList = new FastMap<Integer, Integer>();
 		
 		public GrowthCapableMob(int chance, int growthLevel, int tameNpcId)
 		{
@@ -98,8 +102,7 @@ public class BeastFarm extends L2AttackableAIScript
 		{
 			if (!_skillSuccessNpcIdList.containsKey(skillId))
 				return -1;
-			else if (skillId == SKILL_BLESSED_GOLDEN_SPICE || skillId == SKILL_BLESSED_CRYSTAL_SPICE
-					|| skillId == SKILL_SGRADE_GOLDEN_SPICE || skillId == SKILL_SGRADE_CRYSTAL_SPICE)
+			else if (skillId == SKILL_BLESSED_GOLDEN_SPICE || skillId == SKILL_BLESSED_CRYSTAL_SPICE || skillId == SKILL_SGRADE_GOLDEN_SPICE || skillId == SKILL_SGRADE_CRYSTAL_SPICE)
 			{
 				if (Rnd.get(100) < SPECIAL_SPICE_CHANCES[0])
 				{
@@ -122,10 +125,10 @@ public class BeastFarm extends L2AttackableAIScript
 		}
 	}
 	
-	public BeastFarm (int questId, String name, String descr)
+	public BeastFarm(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-		this.registerMobs(FEEDABLE_BEASTS, QuestEventType.ON_KILL, QuestEventType.ON_SKILL_SEE);
+		registerMobs(FEEDABLE_BEASTS, QuestEventType.ON_KILL, QuestEventType.ON_SKILL_SEE);
 		
 		GrowthCapableMob temp;
 		
@@ -235,32 +238,32 @@ public class BeastFarm extends L2AttackableAIScript
 		
 		// Tamed beasts data
 		SkillHolder[] stemp = new SkillHolder[2];
-		stemp[0] = new SkillHolder(6432,1);
-		stemp[1] = new SkillHolder(6668,1);
+		stemp[0] = new SkillHolder(6432, 1);
+		stemp[1] = new SkillHolder(6668, 1);
 		_TamedBeastsData.put("%name% of Focus", stemp);
 		
 		stemp = new SkillHolder[2];
-		stemp[0] = new SkillHolder(6433,1);
-		stemp[1] = new SkillHolder(6670,1);
+		stemp[0] = new SkillHolder(6433, 1);
+		stemp[1] = new SkillHolder(6670, 1);
 		_TamedBeastsData.put("%name% of Guiding", stemp);
 		
 		stemp = new SkillHolder[2];
-		stemp[0] = new SkillHolder(6434,1);
-		stemp[1] = new SkillHolder(6667,1);
+		stemp[0] = new SkillHolder(6434, 1);
+		stemp[1] = new SkillHolder(6667, 1);
 		_TamedBeastsData.put("%name% of Swifth", stemp);
 		
 		stemp = new SkillHolder[1];
-		stemp[0] = new SkillHolder(6671,1);
+		stemp[0] = new SkillHolder(6671, 1);
 		_TamedBeastsData.put("Berserker %name%", stemp);
 		
 		stemp = new SkillHolder[2];
-		stemp[0] = new SkillHolder(6669,1);
-		stemp[1] = new SkillHolder(6672,1);
+		stemp[0] = new SkillHolder(6669, 1);
+		stemp[1] = new SkillHolder(6672, 1);
 		_TamedBeastsData.put("%name% of Protect", stemp);
 		
 		stemp = new SkillHolder[2];
-		stemp[0] = new SkillHolder(6431,1);
-		stemp[1] = new SkillHolder(6666,1);
+		stemp[0] = new SkillHolder(6431, 1);
+		stemp[1] = new SkillHolder(6666, 1);
 		_TamedBeastsData.put("%name% of Vigor", stemp);
 	}
 	
@@ -273,26 +276,23 @@ public class BeastFarm extends L2AttackableAIScript
 				_FeedInfo.remove(npc.getObjectId());
 		}
 		// despawn the old mob
-		//TODO: same code? FIXED?
-		/*if (_GrowthCapableMobs.get(npc.getNpcId()).getGrowthLevel() == 0)
-		{
-			npc.deleteMe();
-		}
-		else
-		{*/
-			npc.deleteMe();
-		//}
+		// TODO: same code? FIXED?
+		/*
+		 * if (_GrowthCapableMobs.get(npc.getNpcId()).getGrowthLevel() == 0) { npc.deleteMe(); } else {
+		 */
+		npc.deleteMe();
+		// }
 		
 		// if this is finally a trained mob, then despawn any other trained mobs that the
 		// player might have and initialize the Tamed Beast.
-		if (Util.contains(TAMED_BEASTS,nextNpcId))
+		if (Util.contains(TAMED_BEASTS, nextNpcId))
 		{
 			L2NpcTemplate template = NpcTable.getInstance().getTemplate(nextNpcId);
 			L2TamedBeastInstance nextNpc = new L2TamedBeastInstance(IdFactory.getInstance().getNextId(), template, player, food, npc.getX(), npc.getY(), npc.getZ(), true);
 			
 			String name = _TamedBeastsData.keySet().toArray(new String[_TamedBeastsData.keySet().size()])[Rnd.get(_TamedBeastsData.size())];
 			SkillHolder[] skillList = _TamedBeastsData.get(name);
-			switch(nextNpcId)
+			switch (nextNpcId)
 			{
 				case 18869:
 					name = name.replace("%name%", "Alpine Kookaburra");
@@ -309,29 +309,29 @@ public class BeastFarm extends L2AttackableAIScript
 			}
 			nextNpc.setName(name);
 			nextNpc.broadcastPacket(new AbstractNpcInfo.NpcInfo(nextNpc, player));
-			for(SkillHolder sh : skillList)
+			for (SkillHolder sh : skillList)
 				nextNpc.addBeastSkill(SkillTable.getInstance().getInfo(sh.getSkillId(), sh.getSkillLvl()));
 			nextNpc.setRunning();
 			
 			QuestState st = player.getQuestState("20_BringUpWithLove");
 			if (st != null && st.getInt("cond") == 1 && st.getQuestItemsCount(7185) == 0 && Rnd.get(10) == 1)
 			{
-				//if player has quest 20 going, give quest item
-				//it's easier to hardcode it in here than to try and repeat this stuff in the quest
-				st.giveItems(7185,1);
-				st.set("cond","2");
+				// if player has quest 20 going, give quest item
+				// it's easier to hardcode it in here than to try and repeat this stuff in the quest
+				st.giveItems(7185, 1);
+				st.set("cond", "2");
 			}
 		}
 		else
 		{
 			// if not trained, the newly spawned mob will automatically be agro against its feeder
 			// (what happened to "never bite the hand that feeds you" anyway?!)
-			L2Attackable nextNpc = (L2Attackable) this.addSpawn(nextNpcId,npc);
+			L2Attackable nextNpc = (L2Attackable) addSpawn(nextNpcId, npc);
 			
 			// register the player in the feedinfo for the mob that just spawned
-			_FeedInfo.put(nextNpc.getObjectId(),player.getObjectId());
+			_FeedInfo.put(nextNpc.getObjectId(), player.getObjectId());
 			nextNpc.setRunning();
-			nextNpc.addDamageHate(player,0,99999);
+			nextNpc.addDamageHate(player, 0, 99999);
 			nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
 			
 			player.sendPacket(new MyTargetSelected(nextNpc.getObjectId(), player.getLevel() - nextNpc.getLevel()));
@@ -344,29 +344,26 @@ public class BeastFarm extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onSkillSee (L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
 	{
 		// this behavior is only run when the target of skill is the passed npc (chest)
 		// i.e. when the player is attempting to open the chest using a skill
-		if (!Util.contains(targets,npc))
+		if (!Util.contains(targets, npc))
 		{
-			return super.onSkillSee(npc,caster,skill,targets,isPet);
+			return super.onSkillSee(npc, caster, skill, targets, isPet);
 		}
 		// gather some values on local variables
 		int npcId = npc.getNpcId();
 		int skillId = skill.getId();
-		// check if the npc and skills used are valid for this script.  Exit if invalid.
-		if (!Util.contains(FEEDABLE_BEASTS,npcId)
-				|| (skillId !=SKILL_GOLDEN_SPICE && skillId != SKILL_CRYSTAL_SPICE
-						&& skillId !=SKILL_BLESSED_GOLDEN_SPICE && skillId != SKILL_BLESSED_CRYSTAL_SPICE
-						&& skillId !=SKILL_SGRADE_GOLDEN_SPICE && skillId != SKILL_SGRADE_CRYSTAL_SPICE))
+		// check if the npc and skills used are valid for this script. Exit if invalid.
+		if (!Util.contains(FEEDABLE_BEASTS, npcId) || (skillId != SKILL_GOLDEN_SPICE && skillId != SKILL_CRYSTAL_SPICE && skillId != SKILL_BLESSED_GOLDEN_SPICE && skillId != SKILL_BLESSED_CRYSTAL_SPICE && skillId != SKILL_SGRADE_GOLDEN_SPICE && skillId != SKILL_SGRADE_CRYSTAL_SPICE))
 		{
-			return super.onSkillSee(npc,caster,skill,targets,isPet);
+			return super.onSkillSee(npc, caster, skill, targets, isPet);
 		}
 		
 		// first gather some values on local variables
 		int objectId = npc.getObjectId();
-		int growthLevel = 3;  // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3)
+		int growthLevel = 3; // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3)
 		if (_GrowthCapableMobs.containsKey(npcId))
 		{
 			growthLevel = _GrowthCapableMobs.get(npcId).getGrowthLevel();
@@ -376,11 +373,11 @@ public class BeastFarm extends L2AttackableAIScript
 		// If the mob is at 0th level (when it still listens to all feeders) lock it to the first feeder!
 		if (growthLevel == 0 && _FeedInfo.containsKey(objectId))
 		{
-			return super.onSkillSee(npc,caster,skill,targets,isPet);
+			return super.onSkillSee(npc, caster, skill, targets, isPet);
 		}
 		else
 		{
-			_FeedInfo.put(objectId,caster.getObjectId());
+			_FeedInfo.put(objectId, caster.getObjectId());
 		}
 		
 		// display the social action of the beast eating the food.
@@ -407,41 +404,41 @@ public class BeastFarm extends L2AttackableAIScript
 				{
 					_FeedInfo.remove(objectId);
 					npc.setRunning();
-					((L2Attackable)npc).addDamageHate(caster,0,1);
+					((L2Attackable) npc).addDamageHate(caster, 0, 1);
 					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, caster);
 				}
-				return super.onSkillSee(npc,caster,skill,targets,isPet);
+				return super.onSkillSee(npc, caster, skill, targets, isPet);
 			}
 			else if (growthLevel > 0 && _FeedInfo.get(objectId) != caster.getObjectId())
 			{
 				// check if this is the same player as the one who raised it from growth 0.
 				// if no, then do not allow a chance to raise the pet (food gets consumed but has no effect).
-				return super.onSkillSee(npc,caster,skill,targets,isPet);
+				return super.onSkillSee(npc, caster, skill, targets, isPet);
 			}
-			spawnNext(npc,caster,newNpcId,food);
+			spawnNext(npc, caster, newNpcId, food);
 		}
 		else
 		{
 			caster.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1).addString("The beast spit out the feed instead of eating it."));
-			((L2Attackable)npc).dropItem(caster, food, 1);
+			((L2Attackable) npc).dropItem(caster, food, 1);
 		}
-		return super.onSkillSee(npc,caster,skill,targets,isPet);
+		return super.onSkillSee(npc, caster, skill, targets, isPet);
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		// remove the feedinfo of the mob that got killed, if any
 		if (_FeedInfo.containsKey(npc.getObjectId()))
 		{
 			_FeedInfo.remove(npc.getObjectId());
 		}
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	public static void main(String[] args)
 	{
 		// now call the constructor (starts up the ai)
-		new BeastFarm(-1,"beast_farm","ai");
+		new BeastFarm(-1, "beast_farm", "ai");
 	}
-}
+}

+ 89 - 31
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chests.java

@@ -33,7 +33,7 @@ public class Chests extends L2AttackableAIScript
 	
 	private static final int SKILL_DELUXE_KEY = 2229;
 	
-	//Base chance for BOX to be opened
+	// Base chance for BOX to be opened
 	private static final int BASE_CHANCE = 100;
 	
 	// Percent to decrease base chance when grade of DELUXE key not match
@@ -42,42 +42,100 @@ public class Chests extends L2AttackableAIScript
 	// Chance for a chest to actually be a BOX (as opposed to being a mimic).
 	private static final int IS_BOX = 40;
 	
-	private static final int[] NPC_IDS = { 18265,18266,18267,18268,18269,18270,18271,
-		18272,18273,18274,18275,18276,18277,18278,18279,18280,18281,
-		18282,18283,18284,18285,18286,18287,18288,18289,18290,18291,
-		18292,18293,18294,18295,18296,18297,18298,21671,21694,21717,
-		21740,21763,21786,21801,21802,21803,21804,21805,21806,21807,
-		21808,21809,21810,21811,21812,21813,21814,21815,21816,21817,
-		21818,21819,21820,21821,21822 };
+	private static final int[] NPC_IDS =
+	{
+		18265,
+		18266,
+		18267,
+		18268,
+		18269,
+		18270,
+		18271,
+		18272,
+		18273,
+		18274,
+		18275,
+		18276,
+		18277,
+		18278,
+		18279,
+		18280,
+		18281,
+		18282,
+		18283,
+		18284,
+		18285,
+		18286,
+		18287,
+		18288,
+		18289,
+		18290,
+		18291,
+		18292,
+		18293,
+		18294,
+		18295,
+		18296,
+		18297,
+		18298,
+		21671,
+		21694,
+		21717,
+		21740,
+		21763,
+		21786,
+		21801,
+		21802,
+		21803,
+		21804,
+		21805,
+		21806,
+		21807,
+		21808,
+		21809,
+		21810,
+		21811,
+		21812,
+		21813,
+		21814,
+		21815,
+		21816,
+		21817,
+		21818,
+		21819,
+		21820,
+		21821,
+		21822
+	};
 	
 	public Chests(int questId, String name, String descr)
 	{
 		// firstly, don't forget to call the parent constructor to prepare the event triggering
 		// mechanisms etc.
 		super(questId, name, descr);
-		this.registerMobs(NPC_IDS, QuestEventType.ON_ATTACK, QuestEventType.ON_SKILL_SEE);
+		registerMobs(NPC_IDS, QuestEventType.ON_ATTACK, QuestEventType.ON_SKILL_SEE);
 	}
 	
 	@Override
-	public String onSkillSee (L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
 	{
 		if (npc instanceof L2ChestInstance)
 		{
 			// this behavior is only run when the target of skill is the passed npc (chest)
 			// i.e. when the player is attempting to open the chest using a skill
-			if (!Util.contains(targets,npc))
+			if (!Util.contains(targets, npc))
 			{
-				return super.onSkillSee(npc,caster,skill,targets,isPet);
+				return super.onSkillSee(npc, caster, skill, targets, isPet);
 			}
-			L2ChestInstance chest = ((L2ChestInstance)npc);
+			L2ChestInstance chest = ((L2ChestInstance) npc);
 			int npcId = chest.getNpcId();
 			int skillId = skill.getId();
-			int skillLevel= skill.getLevel();
+			int skillLevel = skill.getLevel();
 			
-			// check if the chest and skills used are valid for this script.  Exit if invalid.
-			if (!Util.contains(NPC_IDS,npcId))
+			// check if the chest and skills used are valid for this script. Exit if invalid.
+			if (!Util.contains(NPC_IDS, npcId))
 			{
-				return super.onSkillSee(npc,caster,skill,targets,isPet);
+				return super.onSkillSee(npc, caster, skill, targets, isPet);
 			}
 			// if this has already been interacted, no further ai decisions are needed
 			// if it's the first interaction, check if this is a box or mimic
@@ -90,13 +148,13 @@ public class Chests extends L2AttackableAIScript
 					if (skillId == SKILL_DELUXE_KEY)
 					{
 						// check the chance to open the box
-						int keyLevelNeeded = chest.getLevel()/10;
+						int keyLevelNeeded = chest.getLevel() / 10;
 						keyLevelNeeded -= skillLevel;
 						if (keyLevelNeeded < 0)
 							keyLevelNeeded *= -1;
 						int chance = BASE_CHANCE - keyLevelNeeded * LEVEL_DECREASE;
 						
-						// success, pretend-death with rewards:  chest.reduceCurrentHp(99999999, player)
+						// success, pretend-death with rewards: chest.reduceCurrentHp(99999999, player)
 						if (Rnd.get(100) < chance)
 						{
 							chest.setMustRewardExpSp(false);
@@ -110,27 +168,27 @@ public class Chests extends L2AttackableAIScript
 				}
 				else
 				{
-					L2Character originalCaster = isPet? caster.getPet(): caster;
+					L2Character originalCaster = isPet ? caster.getPet() : caster;
 					chest.setRunning();
-					chest.addDamageHate(originalCaster,0,999);
+					chest.addDamageHate(originalCaster, 0, 999);
 					chest.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, originalCaster);
 				}
 			}
 		}
-		return super.onSkillSee(npc,caster,skill,targets,isPet);
+		return super.onSkillSee(npc, caster, skill, targets, isPet);
 	}
 	
 	@Override
-	public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
 	{
 		if (npc instanceof L2ChestInstance)
 		{
-			L2ChestInstance chest = ((L2ChestInstance)npc);
+			L2ChestInstance chest = ((L2ChestInstance) npc);
 			int npcId = chest.getNpcId();
-			// check if the chest and skills used are valid for this script.  Exit if invalid.
+			// check if the chest and skills used are valid for this script. Exit if invalid.
 			if (!Util.contains(NPC_IDS, npcId))
 			{
-				return super.onAttack(npc,attacker,damage,isPet);
+				return super.onAttack(npc, attacker, damage, isPet);
 			}
 			
 			// if this was a mimic, set the target, start the skills and become agro
@@ -145,19 +203,19 @@ public class Chests extends L2AttackableAIScript
 				{
 					// if this weren't a box, upon interaction start the mimic behaviors...
 					// todo: perhaps a self-buff (skill id 4245) with random chance goes here?
-					L2Character originalAttacker = isPet? attacker.getPet(): attacker;
+					L2Character originalAttacker = isPet ? attacker.getPet() : attacker;
 					chest.setRunning();
-					chest.addDamageHate(originalAttacker,0,(damage*100)/(chest.getLevel()+7));
+					chest.addDamageHate(originalAttacker, 0, (damage * 100) / (chest.getLevel() + 7));
 					chest.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, originalAttacker);
 				}
 			}
 		}
-		return super.onAttack(npc,attacker,damage,isPet);
+		return super.onAttack(npc, attacker, damage, isPet);
 	}
 	
 	public static void main(String[] args)
 	{
 		// now call the constructor (starts up the ai)
-		new Chests(-1,"chests","ai");
+		new Chests(-1, "chests", "ai");
 	}
-}
+}

+ 16 - 23
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java

@@ -18,6 +18,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -34,22 +35,16 @@ public class Chimeras extends L2AttackableAIScript
 		22349, 22350, 22351, 22352
 	};
 	private static final int CELTUS = 22353;
+	
 	// Locations
-	private static final int[][] LOCATIONS =
+	private static final Location[] LOCATIONS =
 	{
-		{
-			3678, 233418, -3319
-		},
-		{
-			2038, 237125, -3363
-		},
-		{
-			7222, 240617, -2033
-		},
-		{
-			9969, 235570, -1993
-		}
+		new Location(3678, 233418, -3319),
+		new Location(2038, 237125, -3363),
+		new Location(7222, 240617, -2033),
+		new Location(9969, 235570, -1993)
 	};
+	
 	// Items
 	private static final int BOTTLE = 2359;
 	private static final int DIM_LIFE_FORCE = 9680;
@@ -61,13 +56,11 @@ public class Chimeras extends L2AttackableAIScript
 	{
 		if ((HellboundManager.getInstance().getLevel() == 7) && !npc.isTeleporting()) // Have random spawn points only in 7 lvl
 		{
-			final int[] spawn = LOCATIONS[Rnd.get(LOCATIONS.length)];
-			if (!npc.isInsideRadius(spawn[0], spawn[1], spawn[2], 200, false, false))
+			final Location loc = LOCATIONS[Rnd.get(LOCATIONS.length)];
+			if (!npc.isInsideRadius(loc, 200, false, false))
 			{
-				npc.getSpawn().setLocx(spawn[0]);
-				npc.getSpawn().setLocy(spawn[1]);
-				npc.getSpawn().setLocz(spawn[2]);
-				ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(npc, spawn), 100);
+				npc.getSpawn().setLocation(loc);
+				ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(npc, loc), 100);
 			}
 		}
 		return super.onSpawn(npc);
@@ -113,18 +106,18 @@ public class Chimeras extends L2AttackableAIScript
 	private static class Teleport implements Runnable
 	{
 		private final L2Npc _npc;
-		private final int[] _coords;
+		private final Location _loc;
 		
-		public Teleport(L2Npc npc, int[] coords)
+		public Teleport(L2Npc npc, Location loc)
 		{
 			_npc = npc;
-			_coords = coords;
+			_loc = loc;
 		}
 		
 		@Override
 		public void run()
 		{
-			_npc.teleToLocation(_coords[0], _coords[1], _coords[2]);
+			_npc.teleToLocation(_loc, false);
 		}
 	}
 	

+ 55 - 59
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java

@@ -18,6 +18,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2Skill;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
@@ -40,52 +41,52 @@ public class DenOfEvil extends L2AttackableAIScript
 	private static final int[] _eye_ids = { 18812, 18813, 18814 };
 	private static final int _skill_id = 6150; // others +2
 	
-	private static final int[][] _eye_spawn =
+	private static final Location[] _eye_spawn =
 	{
-		{ 71544, -129400, -3360, 16472 },
-		{ 70954, -128854, -3360,    16 },
-		{ 72145, -128847, -3368, 32832 },
-		{ 76147, -128372, -3144, 16152 },
-		{ 71573, -128309, -3360, 49152 },
-		{ 75211, -127441, -3152,     0 },
-		{ 77005, -127406, -3144, 32784 },
-		{ 75965, -126486, -3144, 49120 },
-		{ 70972, -126429, -3016, 19208 },
-		{ 69916, -125838, -3024,  2840 },
-		{ 71658, -125459, -3016, 35136 },
-		{ 70605, -124646, -3040, 52104 },
-		{ 67283, -123237, -2912, 12376 },
-		{ 68383, -122754, -2912, 27904 },
-		{ 74137, -122733, -3024, 13272 },
-		{ 66736, -122007, -2896, 60576 },
-		{ 73289, -121769, -3024,  1024 },
-		{ 67894, -121491, -2912, 43872 },
-		{ 75530, -121477, -3008, 34424 },
-		{ 74117, -120459, -3024, 52344 },
-		{ 69608, -119855, -2534, 17251 },
-		{ 71014, -119027, -2520, 31904 },
-		{ 68944, -118964, -2527, 59874 },
-		{ 62261, -118263, -3072, 12888 },
-		{ 70300, -117942, -2528, 46208 },
-		{ 74312, -117583, -2272, 15280 },
-		{ 63276, -117409, -3064, 24760 },
-		{ 68104, -117192, -2168, 15888 },
-		{ 73758, -116945, -2216,     0 },
-		{ 74944, -116858, -2220, 30892 },
-		{ 61715, -116623, -3064, 59888 },
-		{ 69140, -116464, -2168, 28952 },
-		{ 67311, -116374, -2152,  1280 },
-		{ 62459, -116370, -3064, 48624 },
-		{ 74475, -116260, -2216, 47456 },
-		{ 68333, -115015, -2168, 45136 },
-		{ 68280, -108129, -1160, 17992 },
-		{ 62983, -107259, -2384, 12552 },
-		{ 67062, -107125, -1144, 64008 },
-		{ 68893, -106954, -1160, 36704 },
-		{ 63848, -106771, -2384, 32784 },
-		{ 62372, -106514, -2384,     0 },
-		{ 67838, -106143, -1160, 51232 },
-		{ 62905, -106109, -2384, 51288 }
+		new Location(71544, -129400, -3360, 16472),
+		new Location(70954, -128854, -3360,    16),
+		new Location(72145, -128847, -3368, 32832),
+		new Location(76147, -128372, -3144, 16152),
+		new Location(71573, -128309, -3360, 49152),
+		new Location(75211, -127441, -3152,     0),
+		new Location(77005, -127406, -3144, 32784),
+		new Location(75965, -126486, -3144, 49120),
+		new Location(70972, -126429, -3016, 19208),
+		new Location(69916, -125838, -3024,  2840),
+		new Location(71658, -125459, -3016, 35136),
+		new Location(70605, -124646, -3040, 52104),
+		new Location(67283, -123237, -2912, 12376),
+		new Location(68383, -122754, -2912, 27904),
+		new Location(74137, -122733, -3024, 13272),
+		new Location(66736, -122007, -2896, 60576),
+		new Location(73289, -121769, -3024,  1024),
+		new Location(67894, -121491, -2912, 43872),
+		new Location(75530, -121477, -3008, 34424),
+		new Location(74117, -120459, -3024, 52344),
+		new Location(69608, -119855, -2534, 17251),
+		new Location(71014, -119027, -2520, 31904),
+		new Location(68944, -118964, -2527, 59874),
+		new Location(62261, -118263, -3072, 12888),
+		new Location(70300, -117942, -2528, 46208),
+		new Location(74312, -117583, -2272, 15280),
+		new Location(63276, -117409, -3064, 24760),
+		new Location(68104, -117192, -2168, 15888),
+		new Location(73758, -116945, -2216,     0),
+		new Location(74944, -116858, -2220, 30892),
+		new Location(61715, -116623, -3064, 59888),
+		new Location(69140, -116464, -2168, 28952),
+		new Location(67311, -116374, -2152,  1280),
+		new Location(62459, -116370, -3064, 48624),
+		new Location(74475, -116260, -2216, 47456),
+		new Location(68333, -115015, -2168, 45136),
+		new Location(68280, -108129, -1160, 17992),
+		new Location(62983, -107259, -2384, 12552),
+		new Location(67062, -107125, -1144, 64008),
+		new Location(68893, -106954, -1160, 36704),
+		new Location(63848, -106771, -2384, 32784),
+		new Location(62372, -106514, -2384,     0),
+		new Location(67838, -106143, -1160, 51232),
+		new Location(62905, -106109, -2384, 51288)
 	};
 	
 	private int getSkillIdByNpcId(int npcId)
@@ -141,7 +142,7 @@ public class DenOfEvil extends L2AttackableAIScript
 	{
 		if (Util.contains(_eye_ids, npc.getNpcId()))
 		{
-			ThreadPoolManager.getInstance().scheduleAi(new RespawnNewEye(npc.getX(), npc.getY(), npc.getZ(), npc.getHeading()), 15000);
+			ThreadPoolManager.getInstance().scheduleAi(new RespawnNewEye(npc.getLocation()), 15000);
 			L2EffectZone zone = ZoneManager.getInstance().getZone(npc, L2EffectZone.class);
 			if (zone == null)
 			{
@@ -157,25 +158,23 @@ public class DenOfEvil extends L2AttackableAIScript
 	
 	private void spawnEyes()
 	{
-		for(int[] _spawn : _eye_spawn)
-			addSpawn(_eye_ids[Rnd.get(0, _eye_ids.length-1)], _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
+		for(Location loc : _eye_spawn)
+			addSpawn(_eye_ids[Rnd.get(_eye_ids.length)], loc, false, 0);
 	}
 	
 	private class RespawnNewEye implements Runnable
 	{
-		private final int _x, _y, _z, _h;
+		private final Location _loc;
 		
-		public RespawnNewEye(int x, int y, int z, int h) {
-			_x = x;
-			_y = y;
-			_z = z;
-			_h = h;
+		public RespawnNewEye(Location loc) 
+		{
+			_loc = loc;
 		}
 		
 		@Override
 		public void run()
 		{
-			addSpawn(_eye_ids[Rnd.get(0, _eye_ids.length-1)], _x, _y, _z, _h, false, 0);
+			addSpawn(_eye_ids[Rnd.get(_eye_ids.length)], _loc, false, 0);
 		}
 	}
 	
@@ -188,9 +187,6 @@ public class DenOfEvil extends L2AttackableAIScript
 			_zone = zone;
 		}
 		
-		/* (non-Javadoc)
-		 * @see java.lang.Runnable#run()
-		 */
 		@Override
 		public void run()
 		{
@@ -225,7 +221,7 @@ public class DenOfEvil extends L2AttackableAIScript
 							// respawn eye
 							L2Npc npc = (L2Npc) character;
 							if (Util.contains(_eye_ids, npc.getNpcId()))
-								ThreadPoolManager.getInstance().scheduleAi(new RespawnNewEye(npc.getX(), npc.getY(), npc.getZ(), npc.getHeading()), 15000);
+								ThreadPoolManager.getInstance().scheduleAi(new RespawnNewEye(npc.getLocation()), 15000);
 						}
 					}
 				}

+ 332 - 331
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java

@@ -28,6 +28,7 @@ import com.l2jserver.gameserver.instancemanager.GraciaSeedsManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
@@ -84,13 +85,13 @@ public class EnergySeeds extends L2AttackableAIScript
 		private final int _spawnId;
 		private final GraciaSeeds _seedId;
 		private final int[] _npcIds;
-		private final int[] _spawnCoords;
+		private final Location _loc;
 		
-		public ESSpawn(int spawnId, GraciaSeeds seedId, int[] spawnCoords, int[] npcIds)
+		public ESSpawn(int spawnId, GraciaSeeds seedId, Location loc, int[] npcIds)
 		{
 			_spawnId = spawnId;
 			_seedId = seedId;
-			_spawnCoords = spawnCoords;
+			_loc = loc;
 			_npcIds = npcIds;
 		}
 		
@@ -106,7 +107,7 @@ public class EnergySeeds extends L2AttackableAIScript
 					{
 						//get a random NPC that should spawn at this location
 						Integer spawnId = _spawnId; // the map uses "Integer", not "int"
-						_spawnedNpcs.put(addSpawn(_npcIds[Rnd.get(_npcIds.length)], _spawnCoords[0], _spawnCoords[1], _spawnCoords[2], 0, false, 0), spawnId);
+						_spawnedNpcs.put(addSpawn(_npcIds[Rnd.get(_npcIds.length)], _loc, false, 0), spawnId);
 					}
 				}
 			}, waitTime);
@@ -389,336 +390,336 @@ public class EnergySeeds extends L2AttackableAIScript
 	{
 		// Seed of Destruction
 		//Temporary Teleporters
-		_spawns.put(1, new ESSpawn(1, GraciaSeeds.DESTRUCTION, new int[]{-245790,220320,-12104}, new int[]{TEMPORARY_TELEPORTER}));
-		_spawns.put(2, new ESSpawn(2, GraciaSeeds.DESTRUCTION, new int[]{-249770,207300,-11952}, new int[]{TEMPORARY_TELEPORTER}));
+		_spawns.put(1, new ESSpawn(1, GraciaSeeds.DESTRUCTION, new Location(-245790,220320,-12104), new int[]{TEMPORARY_TELEPORTER}));
+		_spawns.put(2, new ESSpawn(2, GraciaSeeds.DESTRUCTION, new Location(-249770,207300,-11952), new int[]{TEMPORARY_TELEPORTER}));
 		//Energy Seeds
-		_spawns.put(3, new ESSpawn(3, GraciaSeeds.DESTRUCTION, new int[]{-248360,219272,-12448}, new int[]{18678,18679,18680}));
-		_spawns.put(4, new ESSpawn(4, GraciaSeeds.DESTRUCTION, new int[]{-249448,219256,-12448}, new int[]{18678,18679,18680}));
-		_spawns.put(5, new ESSpawn(5, GraciaSeeds.DESTRUCTION, new int[]{-249432,220872,-12448}, new int[]{18678,18679,18680}));
-		_spawns.put(6, new ESSpawn(6, GraciaSeeds.DESTRUCTION, new int[]{-248360,220888,-12448}, new int[]{18678,18679,18680}));
-		
-		_spawns.put(7, new ESSpawn(7, GraciaSeeds.DESTRUCTION, new int[]{-250088,219256,-12448}, new int[]{18681,18682}));
-		_spawns.put(8, new ESSpawn(8, GraciaSeeds.DESTRUCTION, new int[]{-250600,219272,-12448}, new int[]{18681,18682}));
-		_spawns.put(9, new ESSpawn(9, GraciaSeeds.DESTRUCTION, new int[]{-250584,220904,-12448}, new int[]{18681,18682}));
-		_spawns.put(10, new ESSpawn(10, GraciaSeeds.DESTRUCTION, new int[]{-250072,220888,-12448}, new int[]{18681,18682}));
-		
-		_spawns.put(11, new ESSpawn(11, GraciaSeeds.DESTRUCTION, new int[]{-253096,217704,-12296}, new int[]{18683,18678}));
-		_spawns.put(12, new ESSpawn(12, GraciaSeeds.DESTRUCTION, new int[]{-253112,217048,-12288}, new int[]{18683,18678}));
-		_spawns.put(13, new ESSpawn(13, GraciaSeeds.DESTRUCTION, new int[]{-251448,217032,-12288}, new int[]{18683,18678}));
-		_spawns.put(14, new ESSpawn(14, GraciaSeeds.DESTRUCTION, new int[]{-251416,217672,-12296}, new int[]{18683,18678}));
-		
-		_spawns.put(15, new ESSpawn(15, GraciaSeeds.DESTRUCTION, new int[]{-251416,217672,-12296}, new int[]{18679,18680}));
-		_spawns.put(16, new ESSpawn(16, GraciaSeeds.DESTRUCTION, new int[]{-251416,217016,-12280}, new int[]{18679,18680}));
-		_spawns.put(17, new ESSpawn(17, GraciaSeeds.DESTRUCTION, new int[]{-249752,217016,-12280}, new int[]{18679,18680}));
-		_spawns.put(18, new ESSpawn(18, GraciaSeeds.DESTRUCTION, new int[]{-249736,217688,-12296}, new int[]{18679,18680}));
-		
-		_spawns.put(19, new ESSpawn(19, GraciaSeeds.DESTRUCTION, new int[]{-252472,215208,-12120}, new int[]{18681,18682}));
-		_spawns.put(20, new ESSpawn(20, GraciaSeeds.DESTRUCTION, new int[]{-252552,216760,-12248}, new int[]{18681,18682}));
-		_spawns.put(21, new ESSpawn(21, GraciaSeeds.DESTRUCTION, new int[]{-253160,216744,-12248}, new int[]{18681,18682}));
-		_spawns.put(22, new ESSpawn(22, GraciaSeeds.DESTRUCTION, new int[]{-253128,215160,-12096}, new int[]{18681,18682}));
-		
-		_spawns.put(23, new ESSpawn(23, GraciaSeeds.DESTRUCTION, new int[]{-250392,215208,-12120}, new int[]{18683,18678}));
-		_spawns.put(24, new ESSpawn(24, GraciaSeeds.DESTRUCTION, new int[]{-250264,216744,-12248}, new int[]{18683,18678}));
-		_spawns.put(25, new ESSpawn(25, GraciaSeeds.DESTRUCTION, new int[]{-249720,216744,-12248}, new int[]{18683,18678}));
-		_spawns.put(26, new ESSpawn(26, GraciaSeeds.DESTRUCTION, new int[]{-249752,215128,-12096}, new int[]{18683,18678}));
-		
-		_spawns.put(27, new ESSpawn(27, GraciaSeeds.DESTRUCTION, new int[]{-250280,216760,-12248}, new int[]{18679,18680,18681}));
-		_spawns.put(28, new ESSpawn(28, GraciaSeeds.DESTRUCTION, new int[]{-250344,216152,-12248}, new int[]{18679,18680,18681}));
-		_spawns.put(29, new ESSpawn(29, GraciaSeeds.DESTRUCTION, new int[]{-252504,216152,-12248}, new int[]{18679,18680,18681}));
-		_spawns.put(30, new ESSpawn(30, GraciaSeeds.DESTRUCTION, new int[]{-252520,216792,-12248}, new int[]{18679,18680,18681}));
-		
-		_spawns.put(31, new ESSpawn(31, GraciaSeeds.DESTRUCTION, new int[]{-242520,217272,-12384}, new int[]{18681,18682,18683}));
-		_spawns.put(32, new ESSpawn(32, GraciaSeeds.DESTRUCTION, new int[]{-241432,217288,-12384}, new int[]{18681,18682,18683}));
-		_spawns.put(33, new ESSpawn(33, GraciaSeeds.DESTRUCTION, new int[]{-241432,218936,-12384}, new int[]{18681,18682,18683}));
-		_spawns.put(34, new ESSpawn(34, GraciaSeeds.DESTRUCTION, new int[]{-242536,218936,-12384}, new int[]{18681,18682,18683}));
-		
-		_spawns.put(35, new ESSpawn(35, GraciaSeeds.DESTRUCTION, new int[]{-240808,217272,-12384}, new int[]{18678,18679}));
-		_spawns.put(36, new ESSpawn(36, GraciaSeeds.DESTRUCTION, new int[]{-240280,217272,-12384}, new int[]{18678,18679}));
-		_spawns.put(37, new ESSpawn(37, GraciaSeeds.DESTRUCTION, new int[]{-240280,218952,-12384}, new int[]{18678,18679}));
-		_spawns.put(38, new ESSpawn(38, GraciaSeeds.DESTRUCTION, new int[]{-240792,218936,-12384}, new int[]{18678,18679}));
-		
-		_spawns.put(39, new ESSpawn(39, GraciaSeeds.DESTRUCTION, new int[]{-239576,217240,-12640}, new int[]{18680,18681,18682}));
-		_spawns.put(40, new ESSpawn(40, GraciaSeeds.DESTRUCTION, new int[]{-239560,216168,-12640}, new int[]{18680,18681,18682}));
-		_spawns.put(41, new ESSpawn(41, GraciaSeeds.DESTRUCTION, new int[]{-237896,216152,-12640}, new int[]{18680,18681,18682}));
-		_spawns.put(42, new ESSpawn(42, GraciaSeeds.DESTRUCTION, new int[]{-237912,217256,-12640}, new int[]{18680,18681,18682}));
-		
-		_spawns.put(43, new ESSpawn(43, GraciaSeeds.DESTRUCTION, new int[]{-237896,215528,-12640}, new int[]{18683,18678}));
-		_spawns.put(44, new ESSpawn(44, GraciaSeeds.DESTRUCTION, new int[]{-239560,215528,-12640}, new int[]{18683,18678}));
-		_spawns.put(45, new ESSpawn(45, GraciaSeeds.DESTRUCTION, new int[]{-239560,214984,-12640}, new int[]{18683,18678}));
-		_spawns.put(46, new ESSpawn(46, GraciaSeeds.DESTRUCTION, new int[]{-237896,215000,-12640}, new int[]{18683,18678}));
-		
-		_spawns.put(47, new ESSpawn(47, GraciaSeeds.DESTRUCTION, new int[]{-237896,213640,-12768}, new int[]{18678,18679,18680}));
-		_spawns.put(48, new ESSpawn(48, GraciaSeeds.DESTRUCTION, new int[]{-239560,213640,-12768}, new int[]{18678,18679,18680}));
-		_spawns.put(49, new ESSpawn(49, GraciaSeeds.DESTRUCTION, new int[]{-239544,212552,-12768}, new int[]{18678,18679,18680}));
-		_spawns.put(50, new ESSpawn(50, GraciaSeeds.DESTRUCTION, new int[]{-237912,212552,-12768}, new int[]{18678,18679,18680}));
-		
-		_spawns.put(51, new ESSpawn(51, GraciaSeeds.DESTRUCTION, new int[]{-237912,211912,-12768}, new int[]{18681,18682}));
-		_spawns.put(52, new ESSpawn(52, GraciaSeeds.DESTRUCTION, new int[]{-237912,211400,-12768}, new int[]{18681,18682}));
-		_spawns.put(53, new ESSpawn(53, GraciaSeeds.DESTRUCTION, new int[]{-239560,211400,-12768}, new int[]{18681,18682}));
-		_spawns.put(54, new ESSpawn(54, GraciaSeeds.DESTRUCTION, new int[]{-239560,211912,-12768}, new int[]{18681,18682}));
-		
-		_spawns.put(55, new ESSpawn(55, GraciaSeeds.DESTRUCTION, new int[]{-241960,214536,-12512}, new int[]{18683,18678,18679}));
-		_spawns.put(56, new ESSpawn(56, GraciaSeeds.DESTRUCTION, new int[]{-241976,213448,-12512}, new int[]{18683,18678,18679}));
-		_spawns.put(57, new ESSpawn(57, GraciaSeeds.DESTRUCTION, new int[]{-243624,213448,-12512}, new int[]{18683,18678,18679}));
-		_spawns.put(58, new ESSpawn(58, GraciaSeeds.DESTRUCTION, new int[]{-243624,214520,-12512}, new int[]{18683,18678,18679}));
-		
-		_spawns.put(59, new ESSpawn(59, GraciaSeeds.DESTRUCTION, new int[]{-241976,212808,-12504}, new int[]{18680,18681}));
-		_spawns.put(60, new ESSpawn(60, GraciaSeeds.DESTRUCTION, new int[]{-241960,212280,-12504}, new int[]{18680,18681}));
-		_spawns.put(61, new ESSpawn(61, GraciaSeeds.DESTRUCTION, new int[]{-243624,212264,-12504}, new int[]{18680,18681}));
-		_spawns.put(62, new ESSpawn(62, GraciaSeeds.DESTRUCTION, new int[]{-243624,212792,-12504}, new int[]{18680,18681}));
-		
-		_spawns.put(63, new ESSpawn(63, GraciaSeeds.DESTRUCTION, new int[]{-243640,210920,-12640}, new int[]{18682,18683,18678}));
-		_spawns.put(64, new ESSpawn(64, GraciaSeeds.DESTRUCTION, new int[]{-243624,209832,-12640}, new int[]{18682,18683,18678}));
-		_spawns.put(65, new ESSpawn(65, GraciaSeeds.DESTRUCTION, new int[]{-241976,209832,-12640}, new int[]{18682,18683,18678}));
-		_spawns.put(66, new ESSpawn(66, GraciaSeeds.DESTRUCTION, new int[]{-241976,210920,-12640}, new int[]{18682,18683,18678}));
-		
-		_spawns.put(67, new ESSpawn(67, GraciaSeeds.DESTRUCTION, new int[]{-241976,209192,-12640}, new int[]{18679,18680}));
-		_spawns.put(68, new ESSpawn(68, GraciaSeeds.DESTRUCTION, new int[]{-241976,208664,-12640}, new int[]{18679,18680}));
-		_spawns.put(69, new ESSpawn(69, GraciaSeeds.DESTRUCTION, new int[]{-243624,208664,-12640}, new int[]{18679,18680}));
-		_spawns.put(70, new ESSpawn(70, GraciaSeeds.DESTRUCTION, new int[]{-243624,209192,-12640}, new int[]{18679,18680}));
-		
-		_spawns.put(71, new ESSpawn(71, GraciaSeeds.DESTRUCTION, new int[]{-241256,208664,-12896}, new int[]{18681,18682,18683}));
-		_spawns.put(72, new ESSpawn(72, GraciaSeeds.DESTRUCTION, new int[]{-240168,208648,-12896}, new int[]{18681,18682,18683}));
-		_spawns.put(73, new ESSpawn(73, GraciaSeeds.DESTRUCTION, new int[]{-240168,207000,-12896}, new int[]{18681,18682,18683}));
-		_spawns.put(74, new ESSpawn(74, GraciaSeeds.DESTRUCTION, new int[]{-241256,207000,-12896}, new int[]{18681,18682,18683}));
-		
-		_spawns.put(75, new ESSpawn(75, GraciaSeeds.DESTRUCTION, new int[]{-239528,208648,-12896}, new int[]{18678,18679}));
-		_spawns.put(76, new ESSpawn(76, GraciaSeeds.DESTRUCTION, new int[]{-238984,208664,-12896}, new int[]{18678,18679}));
-		_spawns.put(77, new ESSpawn(77, GraciaSeeds.DESTRUCTION, new int[]{-239000,207000,-12896}, new int[]{18678,18679}));
-		_spawns.put(78, new ESSpawn(78, GraciaSeeds.DESTRUCTION, new int[]{-239512,207000,-12896}, new int[]{18678,18679}));
-		
-		_spawns.put(79, new ESSpawn(79, GraciaSeeds.DESTRUCTION, new int[]{-245064,213144,-12384}, new int[]{18680,18681,18682}));
-		_spawns.put(80, new ESSpawn(80, GraciaSeeds.DESTRUCTION, new int[]{-245064,212072,-12384}, new int[]{18680,18681,18682}));
-		_spawns.put(81, new ESSpawn(81, GraciaSeeds.DESTRUCTION, new int[]{-246696,212072,-12384}, new int[]{18680,18681,18682}));
-		_spawns.put(82, new ESSpawn(82, GraciaSeeds.DESTRUCTION, new int[]{-246696,213160,-12384}, new int[]{18680,18681,18682}));
-		
-		_spawns.put(83, new ESSpawn(83, GraciaSeeds.DESTRUCTION, new int[]{-245064,211416,-12384}, new int[]{18683,18678}));
-		_spawns.put(84, new ESSpawn(84, GraciaSeeds.DESTRUCTION, new int[]{-245048,210904,-12384}, new int[]{18683,18678}));
-		_spawns.put(85, new ESSpawn(85, GraciaSeeds.DESTRUCTION, new int[]{-246712,210888,-12384}, new int[]{18683,18678}));
-		_spawns.put(86, new ESSpawn(86, GraciaSeeds.DESTRUCTION, new int[]{-246712,211416,-12384}, new int[]{18683,18678}));
-		
-		_spawns.put(87, new ESSpawn(87, GraciaSeeds.DESTRUCTION, new int[]{-245048,209544,-12512}, new int[]{18679,18680,18681}));
-		_spawns.put(88, new ESSpawn(88, GraciaSeeds.DESTRUCTION, new int[]{-245064,208456,-12512}, new int[]{18679,18680,18681}));
-		_spawns.put(89, new ESSpawn(89, GraciaSeeds.DESTRUCTION, new int[]{-246696,208456,-12512}, new int[]{18679,18680,18681}));
-		_spawns.put(90, new ESSpawn(90, GraciaSeeds.DESTRUCTION, new int[]{-246712,209544,-12512}, new int[]{18679,18680,18681}));
-		
-		_spawns.put(91, new ESSpawn(91, GraciaSeeds.DESTRUCTION, new int[]{-245048,207816,-12512}, new int[]{18682,18683}));
-		_spawns.put(92, new ESSpawn(92, GraciaSeeds.DESTRUCTION, new int[]{-245048,207288,-12512}, new int[]{18682,18683}));
-		_spawns.put(93, new ESSpawn(93, GraciaSeeds.DESTRUCTION, new int[]{-246696,207304,-12512}, new int[]{18682,18683}));
-		_spawns.put(94, new ESSpawn(94, GraciaSeeds.DESTRUCTION, new int[]{-246712,207816,-12512}, new int[]{18682,18683}));
-		
-		_spawns.put(95, new ESSpawn(95, GraciaSeeds.DESTRUCTION, new int[]{-244328,207272,-12768}, new int[]{18678,18679,18680}));
-		_spawns.put(96, new ESSpawn(96, GraciaSeeds.DESTRUCTION, new int[]{-243256,207256,-12768}, new int[]{18678,18679,18680}));
-		_spawns.put(97, new ESSpawn(97, GraciaSeeds.DESTRUCTION, new int[]{-243256,205624,-12768}, new int[]{18678,18679,18680}));
-		_spawns.put(98, new ESSpawn(98, GraciaSeeds.DESTRUCTION, new int[]{-244328,205608,-12768}, new int[]{18678,18679,18680}));
-		
-		_spawns.put(99, new ESSpawn(99, GraciaSeeds.DESTRUCTION, new int[]{-242616,207272,-12768}, new int[]{18681,18682}));
-		_spawns.put(100, new ESSpawn(100, GraciaSeeds.DESTRUCTION, new int[]{-242104,207272,-12768}, new int[]{18681,18682}));
-		_spawns.put(101, new ESSpawn(101, GraciaSeeds.DESTRUCTION, new int[]{-242088,205624,-12768}, new int[]{18681,18682}));
-		_spawns.put(102, new ESSpawn(102, GraciaSeeds.DESTRUCTION, new int[]{-242600,205608,-12768}, new int[]{18681,18682}));
+		_spawns.put(3, new ESSpawn(3, GraciaSeeds.DESTRUCTION, new Location(-248360,219272,-12448), new int[]{18678,18679,18680}));
+		_spawns.put(4, new ESSpawn(4, GraciaSeeds.DESTRUCTION, new Location(-249448,219256,-12448), new int[]{18678,18679,18680}));
+		_spawns.put(5, new ESSpawn(5, GraciaSeeds.DESTRUCTION, new Location(-249432,220872,-12448), new int[]{18678,18679,18680}));
+		_spawns.put(6, new ESSpawn(6, GraciaSeeds.DESTRUCTION, new Location(-248360,220888,-12448), new int[]{18678,18679,18680}));
+
+		_spawns.put(7, new ESSpawn(7, GraciaSeeds.DESTRUCTION, new Location(-250088,219256,-12448), new int[]{18681,18682}));
+		_spawns.put(8, new ESSpawn(8, GraciaSeeds.DESTRUCTION, new Location(-250600,219272,-12448), new int[]{18681,18682}));
+		_spawns.put(9, new ESSpawn(9, GraciaSeeds.DESTRUCTION, new Location(-250584,220904,-12448), new int[]{18681,18682}));
+		_spawns.put(10, new ESSpawn(10, GraciaSeeds.DESTRUCTION, new Location(-250072,220888,-12448), new int[]{18681,18682}));
+
+		_spawns.put(11, new ESSpawn(11, GraciaSeeds.DESTRUCTION, new Location(-253096,217704,-12296), new int[]{18683,18678}));
+		_spawns.put(12, new ESSpawn(12, GraciaSeeds.DESTRUCTION, new Location(-253112,217048,-12288), new int[]{18683,18678}));
+		_spawns.put(13, new ESSpawn(13, GraciaSeeds.DESTRUCTION, new Location(-251448,217032,-12288), new int[]{18683,18678}));
+		_spawns.put(14, new ESSpawn(14, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18683,18678}));
+
+		_spawns.put(15, new ESSpawn(15, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18679,18680}));
+		_spawns.put(16, new ESSpawn(16, GraciaSeeds.DESTRUCTION, new Location(-251416,217016,-12280), new int[]{18679,18680}));
+		_spawns.put(17, new ESSpawn(17, GraciaSeeds.DESTRUCTION, new Location(-249752,217016,-12280), new int[]{18679,18680}));
+		_spawns.put(18, new ESSpawn(18, GraciaSeeds.DESTRUCTION, new Location(-249736,217688,-12296), new int[]{18679,18680}));
+
+		_spawns.put(19, new ESSpawn(19, GraciaSeeds.DESTRUCTION, new Location(-252472,215208,-12120), new int[]{18681,18682}));
+		_spawns.put(20, new ESSpawn(20, GraciaSeeds.DESTRUCTION, new Location(-252552,216760,-12248), new int[]{18681,18682}));
+		_spawns.put(21, new ESSpawn(21, GraciaSeeds.DESTRUCTION, new Location(-253160,216744,-12248), new int[]{18681,18682}));
+		_spawns.put(22, new ESSpawn(22, GraciaSeeds.DESTRUCTION, new Location(-253128,215160,-12096), new int[]{18681,18682}));
+
+		_spawns.put(23, new ESSpawn(23, GraciaSeeds.DESTRUCTION, new Location(-250392,215208,-12120), new int[]{18683,18678}));
+		_spawns.put(24, new ESSpawn(24, GraciaSeeds.DESTRUCTION, new Location(-250264,216744,-12248), new int[]{18683,18678}));
+		_spawns.put(25, new ESSpawn(25, GraciaSeeds.DESTRUCTION, new Location(-249720,216744,-12248), new int[]{18683,18678}));
+		_spawns.put(26, new ESSpawn(26, GraciaSeeds.DESTRUCTION, new Location(-249752,215128,-12096), new int[]{18683,18678}));
+
+		_spawns.put(27, new ESSpawn(27, GraciaSeeds.DESTRUCTION, new Location(-250280,216760,-12248), new int[]{18679,18680,18681}));
+		_spawns.put(28, new ESSpawn(28, GraciaSeeds.DESTRUCTION, new Location(-250344,216152,-12248), new int[]{18679,18680,18681}));
+		_spawns.put(29, new ESSpawn(29, GraciaSeeds.DESTRUCTION, new Location(-252504,216152,-12248), new int[]{18679,18680,18681}));
+		_spawns.put(30, new ESSpawn(30, GraciaSeeds.DESTRUCTION, new Location(-252520,216792,-12248), new int[]{18679,18680,18681}));
+
+		_spawns.put(31, new ESSpawn(31, GraciaSeeds.DESTRUCTION, new Location(-242520,217272,-12384), new int[]{18681,18682,18683}));
+		_spawns.put(32, new ESSpawn(32, GraciaSeeds.DESTRUCTION, new Location(-241432,217288,-12384), new int[]{18681,18682,18683}));
+		_spawns.put(33, new ESSpawn(33, GraciaSeeds.DESTRUCTION, new Location(-241432,218936,-12384), new int[]{18681,18682,18683}));
+		_spawns.put(34, new ESSpawn(34, GraciaSeeds.DESTRUCTION, new Location(-242536,218936,-12384), new int[]{18681,18682,18683}));
+
+		_spawns.put(35, new ESSpawn(35, GraciaSeeds.DESTRUCTION, new Location(-240808,217272,-12384), new int[]{18678,18679}));
+		_spawns.put(36, new ESSpawn(36, GraciaSeeds.DESTRUCTION, new Location(-240280,217272,-12384), new int[]{18678,18679}));
+		_spawns.put(37, new ESSpawn(37, GraciaSeeds.DESTRUCTION, new Location(-240280,218952,-12384), new int[]{18678,18679}));
+		_spawns.put(38, new ESSpawn(38, GraciaSeeds.DESTRUCTION, new Location(-240792,218936,-12384), new int[]{18678,18679}));
+
+		_spawns.put(39, new ESSpawn(39, GraciaSeeds.DESTRUCTION, new Location(-239576,217240,-12640), new int[]{18680,18681,18682}));
+		_spawns.put(40, new ESSpawn(40, GraciaSeeds.DESTRUCTION, new Location(-239560,216168,-12640), new int[]{18680,18681,18682}));
+		_spawns.put(41, new ESSpawn(41, GraciaSeeds.DESTRUCTION, new Location(-237896,216152,-12640), new int[]{18680,18681,18682}));
+		_spawns.put(42, new ESSpawn(42, GraciaSeeds.DESTRUCTION, new Location(-237912,217256,-12640), new int[]{18680,18681,18682}));
+
+		_spawns.put(43, new ESSpawn(43, GraciaSeeds.DESTRUCTION, new Location(-237896,215528,-12640), new int[]{18683,18678}));
+		_spawns.put(44, new ESSpawn(44, GraciaSeeds.DESTRUCTION, new Location(-239560,215528,-12640), new int[]{18683,18678}));
+		_spawns.put(45, new ESSpawn(45, GraciaSeeds.DESTRUCTION, new Location(-239560,214984,-12640), new int[]{18683,18678}));
+		_spawns.put(46, new ESSpawn(46, GraciaSeeds.DESTRUCTION, new Location(-237896,215000,-12640), new int[]{18683,18678}));
+
+		_spawns.put(47, new ESSpawn(47, GraciaSeeds.DESTRUCTION, new Location(-237896,213640,-12768), new int[]{18678,18679,18680}));
+		_spawns.put(48, new ESSpawn(48, GraciaSeeds.DESTRUCTION, new Location(-239560,213640,-12768), new int[]{18678,18679,18680}));
+		_spawns.put(49, new ESSpawn(49, GraciaSeeds.DESTRUCTION, new Location(-239544,212552,-12768), new int[]{18678,18679,18680}));
+		_spawns.put(50, new ESSpawn(50, GraciaSeeds.DESTRUCTION, new Location(-237912,212552,-12768), new int[]{18678,18679,18680}));
+
+		_spawns.put(51, new ESSpawn(51, GraciaSeeds.DESTRUCTION, new Location(-237912,211912,-12768), new int[]{18681,18682}));
+		_spawns.put(52, new ESSpawn(52, GraciaSeeds.DESTRUCTION, new Location(-237912,211400,-12768), new int[]{18681,18682}));
+		_spawns.put(53, new ESSpawn(53, GraciaSeeds.DESTRUCTION, new Location(-239560,211400,-12768), new int[]{18681,18682}));
+		_spawns.put(54, new ESSpawn(54, GraciaSeeds.DESTRUCTION, new Location(-239560,211912,-12768), new int[]{18681,18682}));
+
+		_spawns.put(55, new ESSpawn(55, GraciaSeeds.DESTRUCTION, new Location(-241960,214536,-12512), new int[]{18683,18678,18679}));
+		_spawns.put(56, new ESSpawn(56, GraciaSeeds.DESTRUCTION, new Location(-241976,213448,-12512), new int[]{18683,18678,18679}));
+		_spawns.put(57, new ESSpawn(57, GraciaSeeds.DESTRUCTION, new Location(-243624,213448,-12512), new int[]{18683,18678,18679}));
+		_spawns.put(58, new ESSpawn(58, GraciaSeeds.DESTRUCTION, new Location(-243624,214520,-12512), new int[]{18683,18678,18679}));
+
+		_spawns.put(59, new ESSpawn(59, GraciaSeeds.DESTRUCTION, new Location(-241976,212808,-12504), new int[]{18680,18681}));
+		_spawns.put(60, new ESSpawn(60, GraciaSeeds.DESTRUCTION, new Location(-241960,212280,-12504), new int[]{18680,18681}));
+		_spawns.put(61, new ESSpawn(61, GraciaSeeds.DESTRUCTION, new Location(-243624,212264,-12504), new int[]{18680,18681}));
+		_spawns.put(62, new ESSpawn(62, GraciaSeeds.DESTRUCTION, new Location(-243624,212792,-12504), new int[]{18680,18681}));
+
+		_spawns.put(63, new ESSpawn(63, GraciaSeeds.DESTRUCTION, new Location(-243640,210920,-12640), new int[]{18682,18683,18678}));
+		_spawns.put(64, new ESSpawn(64, GraciaSeeds.DESTRUCTION, new Location(-243624,209832,-12640), new int[]{18682,18683,18678}));
+		_spawns.put(65, new ESSpawn(65, GraciaSeeds.DESTRUCTION, new Location(-241976,209832,-12640), new int[]{18682,18683,18678}));
+		_spawns.put(66, new ESSpawn(66, GraciaSeeds.DESTRUCTION, new Location(-241976,210920,-12640), new int[]{18682,18683,18678}));
+
+		_spawns.put(67, new ESSpawn(67, GraciaSeeds.DESTRUCTION, new Location(-241976,209192,-12640), new int[]{18679,18680}));
+		_spawns.put(68, new ESSpawn(68, GraciaSeeds.DESTRUCTION, new Location(-241976,208664,-12640), new int[]{18679,18680}));
+		_spawns.put(69, new ESSpawn(69, GraciaSeeds.DESTRUCTION, new Location(-243624,208664,-12640), new int[]{18679,18680}));
+		_spawns.put(70, new ESSpawn(70, GraciaSeeds.DESTRUCTION, new Location(-243624,209192,-12640), new int[]{18679,18680}));
+
+		_spawns.put(71, new ESSpawn(71, GraciaSeeds.DESTRUCTION, new Location(-241256,208664,-12896), new int[]{18681,18682,18683}));
+		_spawns.put(72, new ESSpawn(72, GraciaSeeds.DESTRUCTION, new Location(-240168,208648,-12896), new int[]{18681,18682,18683}));
+		_spawns.put(73, new ESSpawn(73, GraciaSeeds.DESTRUCTION, new Location(-240168,207000,-12896), new int[]{18681,18682,18683}));
+		_spawns.put(74, new ESSpawn(74, GraciaSeeds.DESTRUCTION, new Location(-241256,207000,-12896), new int[]{18681,18682,18683}));
+
+		_spawns.put(75, new ESSpawn(75, GraciaSeeds.DESTRUCTION, new Location(-239528,208648,-12896), new int[]{18678,18679}));
+		_spawns.put(76, new ESSpawn(76, GraciaSeeds.DESTRUCTION, new Location(-238984,208664,-12896), new int[]{18678,18679}));
+		_spawns.put(77, new ESSpawn(77, GraciaSeeds.DESTRUCTION, new Location(-239000,207000,-12896), new int[]{18678,18679}));
+		_spawns.put(78, new ESSpawn(78, GraciaSeeds.DESTRUCTION, new Location(-239512,207000,-12896), new int[]{18678,18679}));
+
+		_spawns.put(79, new ESSpawn(79, GraciaSeeds.DESTRUCTION, new Location(-245064,213144,-12384), new int[]{18680,18681,18682}));
+		_spawns.put(80, new ESSpawn(80, GraciaSeeds.DESTRUCTION, new Location(-245064,212072,-12384), new int[]{18680,18681,18682}));
+		_spawns.put(81, new ESSpawn(81, GraciaSeeds.DESTRUCTION, new Location(-246696,212072,-12384), new int[]{18680,18681,18682}));
+		_spawns.put(82, new ESSpawn(82, GraciaSeeds.DESTRUCTION, new Location(-246696,213160,-12384), new int[]{18680,18681,18682}));
+
+		_spawns.put(83, new ESSpawn(83, GraciaSeeds.DESTRUCTION, new Location(-245064,211416,-12384), new int[]{18683,18678}));
+		_spawns.put(84, new ESSpawn(84, GraciaSeeds.DESTRUCTION, new Location(-245048,210904,-12384), new int[]{18683,18678}));
+		_spawns.put(85, new ESSpawn(85, GraciaSeeds.DESTRUCTION, new Location(-246712,210888,-12384), new int[]{18683,18678}));
+		_spawns.put(86, new ESSpawn(86, GraciaSeeds.DESTRUCTION, new Location(-246712,211416,-12384), new int[]{18683,18678}));
+
+		_spawns.put(87, new ESSpawn(87, GraciaSeeds.DESTRUCTION, new Location(-245048,209544,-12512), new int[]{18679,18680,18681}));
+		_spawns.put(88, new ESSpawn(88, GraciaSeeds.DESTRUCTION, new Location(-245064,208456,-12512), new int[]{18679,18680,18681}));
+		_spawns.put(89, new ESSpawn(89, GraciaSeeds.DESTRUCTION, new Location(-246696,208456,-12512), new int[]{18679,18680,18681}));
+		_spawns.put(90, new ESSpawn(90, GraciaSeeds.DESTRUCTION, new Location(-246712,209544,-12512), new int[]{18679,18680,18681}));
+
+		_spawns.put(91, new ESSpawn(91, GraciaSeeds.DESTRUCTION, new Location(-245048,207816,-12512), new int[]{18682,18683}));
+		_spawns.put(92, new ESSpawn(92, GraciaSeeds.DESTRUCTION, new Location(-245048,207288,-12512), new int[]{18682,18683}));
+		_spawns.put(93, new ESSpawn(93, GraciaSeeds.DESTRUCTION, new Location(-246696,207304,-12512), new int[]{18682,18683}));
+		_spawns.put(94, new ESSpawn(94, GraciaSeeds.DESTRUCTION, new Location(-246712,207816,-12512), new int[]{18682,18683}));
+
+		_spawns.put(95, new ESSpawn(95, GraciaSeeds.DESTRUCTION, new Location(-244328,207272,-12768), new int[]{18678,18679,18680}));
+		_spawns.put(96, new ESSpawn(96, GraciaSeeds.DESTRUCTION, new Location(-243256,207256,-12768), new int[]{18678,18679,18680}));
+		_spawns.put(97, new ESSpawn(97, GraciaSeeds.DESTRUCTION, new Location(-243256,205624,-12768), new int[]{18678,18679,18680}));
+		_spawns.put(98, new ESSpawn(98, GraciaSeeds.DESTRUCTION, new Location(-244328,205608,-12768), new int[]{18678,18679,18680}));
+
+		_spawns.put(99, new ESSpawn(99, GraciaSeeds.DESTRUCTION, new Location(-242616,207272,-12768), new int[]{18681,18682}));
+		_spawns.put(100, new ESSpawn(100, GraciaSeeds.DESTRUCTION, new Location(-242104,207272,-12768), new int[]{18681,18682}));
+		_spawns.put(101, new ESSpawn(101, GraciaSeeds.DESTRUCTION, new Location(-242088,205624,-12768), new int[]{18681,18682}));
+		_spawns.put(102, new ESSpawn(102, GraciaSeeds.DESTRUCTION, new Location(-242600,205608,-12768), new int[]{18681,18682}));
 		
 		// Seed of Annihilation
-		_spawns.put(103, new ESSpawn(103, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184519,183007,-10456}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(104, new ESSpawn(104, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184873,181445,-10488}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(105, new ESSpawn(105, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184009,180962,-10488}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(106, new ESSpawn(106, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-185321,181641,-10448}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(107, new ESSpawn(107, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184035,182775,-10512}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(108, new ESSpawn(108, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-185433,181935,-10424}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(109, new ESSpawn(109, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183309,183007,-10560}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(110, new ESSpawn(110, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184929,181886,-10488}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(111, new ESSpawn(111, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184009,180392,-10424}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(112, new ESSpawn(112, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183793,183239,-10488}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(113, new ESSpawn(113, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184245,180848,-10464}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(114, new ESSpawn(114, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-182704,183761,-10528}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(115, new ESSpawn(115, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184705,181886,-10504}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(116, new ESSpawn(116, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184304,181076,-10488}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(117, new ESSpawn(117, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183596,180430,-10424}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(118, new ESSpawn(118, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184422,181038,-10480}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(119, new ESSpawn(119, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184929,181543,-10496}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(120, new ESSpawn(120, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184398,182891,-10472}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(121, new ESSpawn(121, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-177606,182848,-10584}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(122, new ESSpawn(122, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178104,183224,-10560}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(123, new ESSpawn(123, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-177274,182284,-10600}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(124, new ESSpawn(124, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-177772,183224,-10560}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(125, new ESSpawn(125, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-181532,180364,-10504}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(126, new ESSpawn(126, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-181802,180276,-10496}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(127, new ESSpawn(127, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178429,180444,-10512}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(128, new ESSpawn(128, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-177606,182190,-10600}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(129, new ESSpawn(129, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-177357,181908,-10576}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(130, new ESSpawn(130, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178747,179534,-10408}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(131, new ESSpawn(131, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178429,179534,-10392}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(132, new ESSpawn(132, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178853,180094,-10472}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(133, new ESSpawn(133, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-181937,179660,-10416}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(134, new ESSpawn(134, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-180992,179572,-10416}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(135, new ESSpawn(135, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-185552,179252,-10368}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(136, new ESSpawn(136, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184572,178913,-10400}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(137, new ESSpawn(137, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184768,178348,-10312}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(138, new ESSpawn(138, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-184572,178574,-10352}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(139, new ESSpawn(139, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-185062,178913,-10384}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(140, new ESSpawn(140, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-181397,179484,-10416}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(141, new ESSpawn(141, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-181667,179044,-10408}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(142, new ESSpawn(142, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-185258,177896,-10240}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(143, new ESSpawn(143, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183506,176570,-10280}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(144, new ESSpawn(144, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183719,176804,-10240}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(145, new ESSpawn(145, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183648,177116,-10240}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(146, new ESSpawn(146, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183932,176492,-10240}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(147, new ESSpawn(147, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183861,176570,-10240}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(148, new ESSpawn(148, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-183790,175946,-10240}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(149, new ESSpawn(149, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178641,179604,-10416}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(150, new ESSpawn(150, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-178959,179814,-10432}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(151, new ESSpawn(151, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-176367,178456,-10376}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(152, new ESSpawn(152, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-175845,177172,-10264}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(153, new ESSpawn(153, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-175323,177600,-10248}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(154, new ESSpawn(154, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-174975,177172,-10216}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(155, new ESSpawn(155, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-176019,178242,-10352}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(156, new ESSpawn(156, GraciaSeeds.ANNIHILATION_BISTAKON, new int[]{-174801,178456,-10264}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		
-		_spawns.put(157, new ESSpawn(157, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185648,183384,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(158, new ESSpawn(158, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-186740,180908,-15528}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(159, new ESSpawn(159, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185297,184658,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(160, new ESSpawn(160, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185697,181601,-15488}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(161, new ESSpawn(161, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-186684,182744,-15536}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(162, new ESSpawn(162, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184908,183384,-15616}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(163, new ESSpawn(163, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184994,185572,-15784}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(164, new ESSpawn(164, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185796,182616,-15608}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(165, new ESSpawn(165, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184970,184385,-15648}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(166, new ESSpawn(166, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185995,180809,-15512}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(167, new ESSpawn(167, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185352,182872,-15632}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(168, new ESSpawn(168, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185624,184294,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(169, new ESSpawn(169, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184486,185774,-15816}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(170, new ESSpawn(170, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-186496,184112,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(171, new ESSpawn(171, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184232,185976,-15816}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(172, new ESSpawn(172, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184994,185673,-15792}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(173, new ESSpawn(173, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185733,184203,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(174, new ESSpawn(174, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185079,184294,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(175, new ESSpawn(175, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184803,180710,-15528}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(176, new ESSpawn(176, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-186293,180413,-15528}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(177, new ESSpawn(177, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185352,182936,-15632}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(178, new ESSpawn(178, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184356,180611,-15496}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(179, new ESSpawn(179, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185375,186784,-15816}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(180, new ESSpawn(180, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184867,186784,-15816}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(181, new ESSpawn(181, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180553,180454,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(182, new ESSpawn(182, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180422,180454,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(183, new ESSpawn(183, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-181863,181138,-15120}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(184, new ESSpawn(184, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-181732,180454,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(185, new ESSpawn(185, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180684,180397,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(186, new ESSpawn(186, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-182256,180682,-15112}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(187, new ESSpawn(187, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185492,179492,-15392}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(188, new ESSpawn(188, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185894,178538,-15336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(189, new ESSpawn(189, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-186028,178856,-15336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(190, new ESSpawn(190, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185224,179068,-15336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(191, new ESSpawn(191, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185492,178538,-15336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(192, new ESSpawn(192, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185894,178538,-15336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(193, new ESSpawn(193, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180619,178855,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(194, new ESSpawn(194, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180255,177892,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(195, new ESSpawn(195, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-185804,176472,-15336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(196, new ESSpawn(196, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184580,176370,-15320}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(197, new ESSpawn(197, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184308,176166,-15320}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(198, new ESSpawn(198, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-183764,177186,-15304}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(199, new ESSpawn(199, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180801,177571,-15144}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(200, new ESSpawn(200, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184716,176064,-15320}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(201, new ESSpawn(201, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-184444,175452,-15296}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(202, new ESSpawn(202, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180164,177464,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(203, new ESSpawn(203, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-180164,178213,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(204, new ESSpawn(204, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-179982,178320,-15152}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(205, new ESSpawn(205, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-176925,177757,-15824}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(206, new ESSpawn(206, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-176164,179282,-15720}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(207, new ESSpawn(207, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175692,177613,-15800}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(208, new ESSpawn(208, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175418,178117,-15824}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(209, new ESSpawn(209, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-176103,177829,-15824}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(210, new ESSpawn(210, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175966,177325,-15792}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(211, new ESSpawn(211, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-174778,179732,-15664}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(212, new ESSpawn(212, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175692,178261,-15824}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(213, new ESSpawn(213, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-176038,179192,-15736}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(214, new ESSpawn(214, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175660,179462,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(215, new ESSpawn(215, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175912,179732,-15664}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(216, new ESSpawn(216, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175156,180182,-15680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(217, new ESSpawn(217, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-174240,182059,-15664}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(218, new ESSpawn(218, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-175590,181478,-15640}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(219, new ESSpawn(219, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-174510,181561,-15616}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(220, new ESSpawn(220, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-174240,182391,-15688}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(221, new ESSpawn(221, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-174105,182806,-15672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(222, new ESSpawn(222, GraciaSeeds.ANNIHILATION_REPTILIKON, new int[]{-174645,182806,-15712}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		
-		_spawns.put(223, new ESSpawn(223, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-214962,182403,-10992}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(224, new ESSpawn(224, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-215019,182493,-11000}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(225, new ESSpawn(225, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-211374,180793,-11672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(226, new ESSpawn(226, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-211198,180661,-11680}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(227, new ESSpawn(227, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-213097,178936,-12720}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(228, new ESSpawn(228, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-213517,178936,-12712}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(229, new ESSpawn(229, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-214105,179191,-12720}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(230, new ESSpawn(230, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-213769,179446,-12720}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(231, new ESSpawn(231, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-214021,179344,-12720}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(232, new ESSpawn(232, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-210582,180595,-11672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(233, new ESSpawn(233, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-210934,180661,-11696}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(234, new ESSpawn(234, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207058,178460,-12656}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(235, new ESSpawn(235, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207454,179151,-11368}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(236, new ESSpawn(236, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207422,181365,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(237, new ESSpawn(237, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207358,180627,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(238, new ESSpawn(238, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207230,180996,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(239, new ESSpawn(239, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-208515,184160,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(240, new ESSpawn(240, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207613,184000,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(241, new ESSpawn(241, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-208597,183760,-11352}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(242, new ESSpawn(242, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206710,176142,-12656}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(243, new ESSpawn(243, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206361,178136,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(244, new ESSpawn(244, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206178,178630,-12672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(245, new ESSpawn(245, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-205738,178715,-12656}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(246, new ESSpawn(246, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206442,178205,-12648}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(247, new ESSpawn(247, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206585,178874,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(248, new ESSpawn(248, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206073,179366,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(249, new ESSpawn(249, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206009,178628,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(250, new ESSpawn(250, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206155,181301,-12656}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(251, new ESSpawn(251, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206595,181641,-12656}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(252, new ESSpawn(252, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206507,181641,-12656}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(253, new ESSpawn(253, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206507,181471,-12640}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(254, new ESSpawn(254, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206974,175972,-12672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(255, new ESSpawn(255, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206304,175130,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(256, new ESSpawn(256, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206886,175802,-12672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(257, new ESSpawn(257, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207238,175972,-12672}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(258, new ESSpawn(258, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206386,174857,-11328}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(259, new ESSpawn(259, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-206386,175039,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(260, new ESSpawn(260, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-205976,174584,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(261, new ESSpawn(261, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-207367,184320,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(262, new ESSpawn(262, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219002,180419,-12608}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(263, new ESSpawn(263, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218853,182790,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(264, new ESSpawn(264, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218853,183343,-12600}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(265, new ESSpawn(265, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218358,186247,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(266, new ESSpawn(266, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218358,186083,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(267, new ESSpawn(267, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-217574,185796,-11352}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(268, new ESSpawn(268, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219178,181051,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(269, new ESSpawn(269, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-220171,180313,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(270, new ESSpawn(270, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219293,183738,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(271, new ESSpawn(271, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219381,182553,-12584}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(272, new ESSpawn(272, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219600,183024,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(273, new ESSpawn(273, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219940,182680,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(274, new ESSpawn(274, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219260,183884,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(275, new ESSpawn(275, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219855,183540,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(276, new ESSpawn(276, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218946,186575,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(277, new ESSpawn(277, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219882,180103,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(278, new ESSpawn(278, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219266,179787,-12584}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(279, new ESSpawn(279, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219201,178337,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(280, new ESSpawn(280, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219716,179875,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(281, new ESSpawn(281, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219716,180021,-11328}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(282, new ESSpawn(282, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219989,179437,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(283, new ESSpawn(283, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219078,178298,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(284, new ESSpawn(284, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218684,178954,-11328}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(285, new ESSpawn(285, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219089,178456,-11328}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(286, new ESSpawn(286, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-220266,177623,-12608}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(287, new ESSpawn(287, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219201,178025,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(288, new ESSpawn(288, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219142,177044,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(289, new ESSpawn(289, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219690,177895,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(290, new ESSpawn(290, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219754,177623,-12584}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(291, new ESSpawn(291, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218791,177830,-12584}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(292, new ESSpawn(292, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218904,176219,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(293, new ESSpawn(293, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218768,176384,-12584}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(294, new ESSpawn(294, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218774,177626,-11320}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(295, new ESSpawn(295, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218774,177792,-11328}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(296, new ESSpawn(296, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219880,175901,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(297, new ESSpawn(297, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219210,176054,-12592}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(298, new ESSpawn(298, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219850,175991,-12608}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(299, new ESSpawn(299, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-219079,175021,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(300, new ESSpawn(300, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218812,174229,-11344}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
-		_spawns.put(301, new ESSpawn(301, GraciaSeeds.ANNIHILATION_COKRAKON, new int[]{-218723,174669,-11336}, new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(103, new ESSpawn(103, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184519,183007,-10456), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(104, new ESSpawn(104, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184873,181445,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(105, new ESSpawn(105, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180962,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(106, new ESSpawn(106, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185321,181641,-10448), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(107, new ESSpawn(107, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184035,182775,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(108, new ESSpawn(108, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185433,181935,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(109, new ESSpawn(109, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183309,183007,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(110, new ESSpawn(110, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181886,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(111, new ESSpawn(111, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180392,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(112, new ESSpawn(112, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183793,183239,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(113, new ESSpawn(113, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184245,180848,-10464), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(114, new ESSpawn(114, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-182704,183761,-10528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(115, new ESSpawn(115, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184705,181886,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(116, new ESSpawn(116, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184304,181076,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(117, new ESSpawn(117, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183596,180430,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(118, new ESSpawn(118, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184422,181038,-10480), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(119, new ESSpawn(119, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181543,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(120, new ESSpawn(120, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184398,182891,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(121, new ESSpawn(121, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182848,-10584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(122, new ESSpawn(122, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178104,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(123, new ESSpawn(123, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177274,182284,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(124, new ESSpawn(124, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177772,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(125, new ESSpawn(125, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181532,180364,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(126, new ESSpawn(126, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181802,180276,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(127, new ESSpawn(127, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,180444,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(128, new ESSpawn(128, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182190,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(129, new ESSpawn(129, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177357,181908,-10576), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(130, new ESSpawn(130, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178747,179534,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(131, new ESSpawn(131, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,179534,-10392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(132, new ESSpawn(132, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178853,180094,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(133, new ESSpawn(133, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181937,179660,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(134, new ESSpawn(134, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-180992,179572,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(135, new ESSpawn(135, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185552,179252,-10368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(136, new ESSpawn(136, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178913,-10400), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(137, new ESSpawn(137, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184768,178348,-10312), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(138, new ESSpawn(138, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178574,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(139, new ESSpawn(139, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185062,178913,-10384), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(140, new ESSpawn(140, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181397,179484,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(141, new ESSpawn(141, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181667,179044,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(142, new ESSpawn(142, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185258,177896,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(143, new ESSpawn(143, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183506,176570,-10280), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(144, new ESSpawn(144, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183719,176804,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(145, new ESSpawn(145, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183648,177116,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(146, new ESSpawn(146, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183932,176492,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(147, new ESSpawn(147, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183861,176570,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(148, new ESSpawn(148, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183790,175946,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(149, new ESSpawn(149, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178641,179604,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(150, new ESSpawn(150, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178959,179814,-10432), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(151, new ESSpawn(151, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176367,178456,-10376), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(152, new ESSpawn(152, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175845,177172,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(153, new ESSpawn(153, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175323,177600,-10248), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(154, new ESSpawn(154, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174975,177172,-10216), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(155, new ESSpawn(155, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176019,178242,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(156, new ESSpawn(156, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174801,178456,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+
+		_spawns.put(157, new ESSpawn(157, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185648,183384,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(158, new ESSpawn(158, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186740,180908,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(159, new ESSpawn(159, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185297,184658,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(160, new ESSpawn(160, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185697,181601,-15488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(161, new ESSpawn(161, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186684,182744,-15536), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(162, new ESSpawn(162, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184908,183384,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(163, new ESSpawn(163, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185572,-15784), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(164, new ESSpawn(164, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185796,182616,-15608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(165, new ESSpawn(165, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184970,184385,-15648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(166, new ESSpawn(166, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185995,180809,-15512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(167, new ESSpawn(167, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182872,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(168, new ESSpawn(168, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185624,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(169, new ESSpawn(169, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184486,185774,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(170, new ESSpawn(170, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186496,184112,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(171, new ESSpawn(171, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184232,185976,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(172, new ESSpawn(172, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185673,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(173, new ESSpawn(173, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185733,184203,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(174, new ESSpawn(174, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185079,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(175, new ESSpawn(175, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184803,180710,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(176, new ESSpawn(176, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186293,180413,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(177, new ESSpawn(177, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182936,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(178, new ESSpawn(178, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184356,180611,-15496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(179, new ESSpawn(179, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185375,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(180, new ESSpawn(180, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184867,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(181, new ESSpawn(181, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180553,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(182, new ESSpawn(182, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180422,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(183, new ESSpawn(183, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181863,181138,-15120), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(184, new ESSpawn(184, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181732,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(185, new ESSpawn(185, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180684,180397,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(186, new ESSpawn(186, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-182256,180682,-15112), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(187, new ESSpawn(187, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,179492,-15392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(188, new ESSpawn(188, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(189, new ESSpawn(189, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186028,178856,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(190, new ESSpawn(190, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185224,179068,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(191, new ESSpawn(191, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(192, new ESSpawn(192, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(193, new ESSpawn(193, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180619,178855,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(194, new ESSpawn(194, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180255,177892,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(195, new ESSpawn(195, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185804,176472,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(196, new ESSpawn(196, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184580,176370,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(197, new ESSpawn(197, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184308,176166,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(198, new ESSpawn(198, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-183764,177186,-15304), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(199, new ESSpawn(199, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180801,177571,-15144), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(200, new ESSpawn(200, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184716,176064,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(201, new ESSpawn(201, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184444,175452,-15296), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(202, new ESSpawn(202, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,177464,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(203, new ESSpawn(203, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,178213,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(204, new ESSpawn(204, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-179982,178320,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(205, new ESSpawn(205, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176925,177757,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(206, new ESSpawn(206, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176164,179282,-15720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(207, new ESSpawn(207, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,177613,-15800), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(208, new ESSpawn(208, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175418,178117,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(209, new ESSpawn(209, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176103,177829,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(210, new ESSpawn(210, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175966,177325,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(211, new ESSpawn(211, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174778,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(212, new ESSpawn(212, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,178261,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(213, new ESSpawn(213, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176038,179192,-15736), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(214, new ESSpawn(214, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175660,179462,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(215, new ESSpawn(215, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175912,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(216, new ESSpawn(216, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175156,180182,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(217, new ESSpawn(217, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182059,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(218, new ESSpawn(218, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175590,181478,-15640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(219, new ESSpawn(219, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174510,181561,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(220, new ESSpawn(220, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182391,-15688), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(221, new ESSpawn(221, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174105,182806,-15672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(222, new ESSpawn(222, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174645,182806,-15712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+
+		_spawns.put(223, new ESSpawn(223, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214962,182403,-10992), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(224, new ESSpawn(224, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-215019,182493,-11000), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(225, new ESSpawn(225, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211374,180793,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(226, new ESSpawn(226, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211198,180661,-11680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(227, new ESSpawn(227, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213097,178936,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(228, new ESSpawn(228, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213517,178936,-12712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(229, new ESSpawn(229, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214105,179191,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(230, new ESSpawn(230, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213769,179446,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(231, new ESSpawn(231, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214021,179344,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(232, new ESSpawn(232, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210582,180595,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(233, new ESSpawn(233, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210934,180661,-11696), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(234, new ESSpawn(234, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207058,178460,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(235, new ESSpawn(235, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207454,179151,-11368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(236, new ESSpawn(236, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207422,181365,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(237, new ESSpawn(237, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207358,180627,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(238, new ESSpawn(238, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207230,180996,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(239, new ESSpawn(239, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208515,184160,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(240, new ESSpawn(240, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207613,184000,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(241, new ESSpawn(241, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208597,183760,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(242, new ESSpawn(242, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206710,176142,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(243, new ESSpawn(243, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206361,178136,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(244, new ESSpawn(244, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206178,178630,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(245, new ESSpawn(245, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205738,178715,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(246, new ESSpawn(246, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206442,178205,-12648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(247, new ESSpawn(247, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206585,178874,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(248, new ESSpawn(248, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206073,179366,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(249, new ESSpawn(249, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206009,178628,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(250, new ESSpawn(250, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206155,181301,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(251, new ESSpawn(251, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206595,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(252, new ESSpawn(252, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(253, new ESSpawn(253, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181471,-12640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(254, new ESSpawn(254, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206974,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(255, new ESSpawn(255, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206304,175130,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(256, new ESSpawn(256, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206886,175802,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(257, new ESSpawn(257, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207238,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(258, new ESSpawn(258, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,174857,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(259, new ESSpawn(259, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,175039,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(260, new ESSpawn(260, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205976,174584,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(261, new ESSpawn(261, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207367,184320,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(262, new ESSpawn(262, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219002,180419,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(263, new ESSpawn(263, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,182790,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(264, new ESSpawn(264, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,183343,-12600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(265, new ESSpawn(265, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186247,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(266, new ESSpawn(266, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186083,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(267, new ESSpawn(267, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-217574,185796,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(268, new ESSpawn(268, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219178,181051,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(269, new ESSpawn(269, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220171,180313,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(270, new ESSpawn(270, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219293,183738,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(271, new ESSpawn(271, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219381,182553,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(272, new ESSpawn(272, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219600,183024,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(273, new ESSpawn(273, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219940,182680,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(274, new ESSpawn(274, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219260,183884,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(275, new ESSpawn(275, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219855,183540,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(276, new ESSpawn(276, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218946,186575,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(277, new ESSpawn(277, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219882,180103,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(278, new ESSpawn(278, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219266,179787,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(279, new ESSpawn(279, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178337,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(280, new ESSpawn(280, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,179875,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(281, new ESSpawn(281, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,180021,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(282, new ESSpawn(282, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219989,179437,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(283, new ESSpawn(283, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219078,178298,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(284, new ESSpawn(284, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218684,178954,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(285, new ESSpawn(285, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219089,178456,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(286, new ESSpawn(286, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220266,177623,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(287, new ESSpawn(287, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178025,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(288, new ESSpawn(288, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219142,177044,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(289, new ESSpawn(289, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219690,177895,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(290, new ESSpawn(290, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219754,177623,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(291, new ESSpawn(291, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218791,177830,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(292, new ESSpawn(292, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218904,176219,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(293, new ESSpawn(293, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218768,176384,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(294, new ESSpawn(294, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177626,-11320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(295, new ESSpawn(295, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177792,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(296, new ESSpawn(296, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219880,175901,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(297, new ESSpawn(297, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219210,176054,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(298, new ESSpawn(298, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219850,175991,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(299, new ESSpawn(299, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219079,175021,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(300, new ESSpawn(300, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218812,174229,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
+		_spawns.put(301, new ESSpawn(301, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218723,174669,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 }));
 	}
 	
 	public static void main(String[] args)

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FairyTrees.java

@@ -31,8 +31,8 @@ public class FairyTrees extends L2AttackableAIScript
 	public FairyTrees(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-		this.registerMobs(mobs, QuestEventType.ON_KILL);
-		super.addSpawnId(27189);
+		registerMobs(mobs, QuestEventType.ON_KILL);
+		addSpawnId(27189);
 	}
 	
 	public String onKill (L2NpcInstance npc, L2PcInstance killer, boolean isPet)

+ 51 - 52
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java

@@ -47,7 +47,8 @@ public class FeedableBeasts extends L2AttackableAIScript
 	private static final int FOODSKILLDIFF = GOLDEN_SPICE - SKILL_GOLDEN_SPICE;
 	
 	// all mobs that can eat...
-	private static final int[] FEEDABLE_BEASTS = {
+	private static final int[] FEEDABLE_BEASTS = 
+	{
 		21451,21452,21453,21454,21455,21456,21457,21458,21459,21460,21461,21462,21463,
 		21464,21465,21466,21467,21468,21469,21470,21471,21472,21473,21474,21475,21476,
 		21477,21478,21479,21480,21481,21482,21483,21484,21485,21486,21487,21488,21489,
@@ -57,6 +58,7 @@ public class FeedableBeasts extends L2AttackableAIScript
 	};
 	
 	private static final Map<Integer,Integer> MAD_COW_POLYMORPH = new FastMap<Integer,Integer>();
+	
 	static
 	{
 		MAD_COW_POLYMORPH.put(21824,21468);
@@ -372,22 +374,19 @@ public class FeedableBeasts extends L2AttackableAIScript
 				_FeedInfo.remove(npc.getObjectId());
 		}
 		// despawn the old mob
-		//TODO: same code? FIXED?
-		/*if (_GrowthCapableMobs.get(npcId).getGrowthLevel() == 0)
-		{
-			npc.deleteMe();
-		}
-		else
-		{*/
-			npc.deleteMe();
-		//}
+		// TODO: same code? FIXED?
+		/*
+		 * if (_GrowthCapableMobs.get(npcId).getGrowthLevel() == 0) { npc.deleteMe(); } else {
+		 */
+		npc.deleteMe();
+		// }
 		
 		// if this is finally a trained mob, then despawn any other trained mobs that the
 		// player might have and initialize the Tamed Beast.
-		if (Util.contains(TAMED_BEASTS,nextNpcId))
+		if (Util.contains(TAMED_BEASTS, nextNpcId))
 		{
 			if (player.getTrainedBeasts() != null && !player.getTrainedBeasts().isEmpty())
-				for(L2TamedBeastInstance oldTrained : player.getTrainedBeasts())
+				for (L2TamedBeastInstance oldTrained : player.getTrainedBeasts())
 					oldTrained.deleteMe();
 			
 			L2NpcTemplate template = NpcTable.getInstance().getTemplate(nextNpcId);
@@ -401,40 +400,40 @@ public class FeedableBeasts extends L2AttackableAIScript
 			{
 				if (Rnd.get(100) <= 5 && st.getQuestItemsCount(7185) == 0)
 				{
-					//if player has quest 20 going, give quest item
-					//it's easier to hardcode it in here than to try and repeat this stuff in the quest
-					st.giveItems(7185,1);
-					st.set("cond","2");
+					// if player has quest 20 going, give quest item
+					// it's easier to hardcode it in here than to try and repeat this stuff in the quest
+					st.giveItems(7185, 1);
+					st.set("cond", "2");
 				}
 			}
 			// also, perform a rare random chat
 			int rand = Rnd.get(20);
 			if (rand == 0)
 			{
-				npc.broadcastPacket(new NpcSay(objectId,0,nextNpc.getNpcId(), player.getName()+", will you show me your hideaway?"));
+				npc.broadcastPacket(new NpcSay(objectId, 0, nextNpc.getNpcId(), player.getName() + ", will you show me your hideaway?"));
 			}
 			else if (rand == 1)
 			{
-				npc.broadcastPacket(new NpcSay(objectId,0,nextNpc.getNpcId(), player.getName()+", whenever I look at spice, I think about you."));
+				npc.broadcastPacket(new NpcSay(objectId, 0, nextNpc.getNpcId(), player.getName() + ", whenever I look at spice, I think about you."));
 			}
 			else if (rand == 2)
 			{
-				npc.broadcastPacket(new NpcSay(objectId,0,nextNpc.getNpcId(), player.getName()+", you do not need to return to the village.  I will give you strength"));
+				npc.broadcastPacket(new NpcSay(objectId, 0, nextNpc.getNpcId(), player.getName() + ", you do not need to return to the village.  I will give you strength"));
 			}
 			else if (rand == 3)
 			{
-				npc.broadcastPacket(new NpcSay(objectId,0,nextNpc.getNpcId(), "Thanks, "+player.getName()+".  I hope I can help you"));
+				npc.broadcastPacket(new NpcSay(objectId, 0, nextNpc.getNpcId(), "Thanks, " + player.getName() + ".  I hope I can help you"));
 			}
 			else if (rand == 4)
 			{
-				npc.broadcastPacket(new NpcSay(objectId,0,nextNpc.getNpcId(), player.getName()+", what can I do to help you?"));
+				npc.broadcastPacket(new NpcSay(objectId, 0, nextNpc.getNpcId(), player.getName() + ", what can I do to help you?"));
 			}
 		}
 		else
 		{
 			// if not trained, the newly spawned mob will automatically be agro against its feeder
 			// (what happened to "never bite the hand that feeds you" anyway?!)
-			L2Attackable nextNpc = (L2Attackable) this.addSpawn(nextNpcId,npc);
+			L2Attackable nextNpc = (L2Attackable) addSpawn(nextNpcId, npc);
 			
 			if (MAD_COW_POLYMORPH.containsKey(nextNpcId))
 			{
@@ -442,19 +441,19 @@ public class FeedableBeasts extends L2AttackableAIScript
 			}
 			
 			// register the player in the feedinfo for the mob that just spawned
-			_FeedInfo.put(nextNpc.getObjectId(),player.getObjectId());
+			_FeedInfo.put(nextNpc.getObjectId(), player.getObjectId());
 			nextNpc.setRunning();
-			nextNpc.addDamageHate(player,0,99999);
+			nextNpc.addDamageHate(player, 0, 99999);
 			nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
 		}
 	}
 	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		if (event.equalsIgnoreCase("polymorph Mad Cow") && npc != null && player != null)
 		{
-			if( MAD_COW_POLYMORPH.containsKey(npc.getNpcId()))
+			if (MAD_COW_POLYMORPH.containsKey(npc.getNpcId()))
 			{
 				// remove the feed info from the previous mob
 				if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId())
@@ -464,39 +463,39 @@ public class FeedableBeasts extends L2AttackableAIScript
 				// despawn the mad cow
 				npc.deleteMe();
 				// spawn the new mob
-				L2Attackable nextNpc = (L2Attackable) this.addSpawn(MAD_COW_POLYMORPH.get(npc.getNpcId()),npc);
+				L2Attackable nextNpc = (L2Attackable) addSpawn(MAD_COW_POLYMORPH.get(npc.getNpcId()), npc);
 				
 				// register the player in the feedinfo for the mob that just spawned
 				_FeedInfo.put(nextNpc.getObjectId(), player.getObjectId());
 				nextNpc.setRunning();
-				nextNpc.addDamageHate(player,0,99999);
+				nextNpc.addDamageHate(player, 0, 99999);
 				nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
 			}
 		}
-		return super.onAdvEvent(event,npc,player);
+		return super.onAdvEvent(event, npc, player);
 	}
 	
 	@Override
-	public String onSkillSee (L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
 	{
 		// this behavior is only run when the target of skill is the passed npc (chest)
 		// i.e. when the player is attempting to open the chest using a skill
-		if (!Util.contains(targets,npc))
+		if (!Util.contains(targets, npc))
 		{
-			return super.onSkillSee(npc,caster,skill,targets,isPet);
+			return super.onSkillSee(npc, caster, skill, targets, isPet);
 		}
 		// gather some values on local variables
 		int npcId = npc.getNpcId();
 		int skillId = skill.getId();
-		// check if the npc and skills used are valid for this script.  Exit if invalid.
-		if (!Util.contains(FEEDABLE_BEASTS,npcId) || (skillId !=SKILL_GOLDEN_SPICE && skillId != SKILL_CRYSTAL_SPICE))
+		// check if the npc and skills used are valid for this script. Exit if invalid.
+		if (!Util.contains(FEEDABLE_BEASTS, npcId) || (skillId != SKILL_GOLDEN_SPICE && skillId != SKILL_CRYSTAL_SPICE))
 		{
-			return super.onSkillSee(npc,caster,skill,targets,isPet);
+			return super.onSkillSee(npc, caster, skill, targets, isPet);
 		}
 		
 		// first gather some values on local variables
 		int objectId = npc.getObjectId();
-		int growthLevel = 3;  // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3)
+		int growthLevel = 3; // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3)
 		if (_GrowthCapableMobs.containsKey(npcId))
 		{
 			growthLevel = _GrowthCapableMobs.get(npcId).getGrowthLevel();
@@ -504,13 +503,13 @@ public class FeedableBeasts extends L2AttackableAIScript
 		
 		// prevent exploit which allows 2 players to simultaneously raise the same 0-growth beast
 		// If the mob is at 0th level (when it still listens to all feeders) lock it to the first feeder!
-		if (growthLevel==0 && _FeedInfo.containsKey(objectId))
+		if (growthLevel == 0 && _FeedInfo.containsKey(objectId))
 		{
-			return super.onSkillSee(npc,caster,skill,targets,isPet);
+			return super.onSkillSee(npc, caster, skill, targets, isPet);
 		}
 		else
 		{
-			_FeedInfo.put(objectId,caster.getObjectId());
+			_FeedInfo.put(objectId, caster.getObjectId());
 		}
 		
 		int food = 0;
@@ -530,56 +529,56 @@ public class FeedableBeasts extends L2AttackableAIScript
 		if (_GrowthCapableMobs.containsKey(npcId))
 		{
 			// do nothing if this mob doesn't eat the specified food (food gets consumed but has no effect).
-			if (_GrowthCapableMobs.get(npcId).getMob(food, 0, 0) == null )
+			if (_GrowthCapableMobs.get(npcId).getMob(food, 0, 0) == null)
 			{
-				return super.onSkillSee(npc,caster,skill,targets,isPet);
+				return super.onSkillSee(npc, caster, skill, targets, isPet);
 			}
 			
 			// rare random talk...
-			if (Rnd.get(20) == 0 )
+			if (Rnd.get(20) == 0)
 			{
-				npc.broadcastPacket(new NpcSay(objectId,0,npc.getNpcId(),TEXT[growthLevel][Rnd.get(TEXT[growthLevel].length)]));
+				npc.broadcastPacket(new NpcSay(objectId, 0, npc.getNpcId(), TEXT[growthLevel][Rnd.get(TEXT[growthLevel].length)]));
 			}
 			
 			if (growthLevel > 0 && _FeedInfo.get(objectId) != caster.getObjectId())
 			{
 				// check if this is the same player as the one who raised it from growth 0.
 				// if no, then do not allow a chance to raise the pet (food gets consumed but has no effect).
-				return super.onSkillSee(npc,caster,skill,targets,isPet);
+				return super.onSkillSee(npc, caster, skill, targets, isPet);
 			}
 			
 			// Polymorph the mob, with a certain chance, given its current growth level
 			if (Rnd.get(100) < _GrowthCapableMobs.get(npcId).getChance())
 			{
-				this.spawnNext(npc, growthLevel,caster,food);
+				this.spawnNext(npc, growthLevel, caster, food);
 			}
 		}
-		else if (Util.contains(TAMED_BEASTS,npcId) && npc instanceof L2TamedBeastInstance)
+		else if (Util.contains(TAMED_BEASTS, npcId) && npc instanceof L2TamedBeastInstance)
 		{
-			L2TamedBeastInstance beast = ((L2TamedBeastInstance)npc);
+			L2TamedBeastInstance beast = ((L2TamedBeastInstance) npc);
 			if (skillId == beast.getFoodType())
 			{
 				beast.onReceiveFood();
-				beast.broadcastPacket(new NpcSay(objectId,0,npcId,TAMED_TEXT[Rnd.get(TAMED_TEXT.length)]));
+				beast.broadcastPacket(new NpcSay(objectId, 0, npcId, TAMED_TEXT[Rnd.get(TAMED_TEXT.length)]));
 			}
 		}
-		return super.onSkillSee(npc,caster,skill,targets,isPet);
+		return super.onSkillSee(npc, caster, skill, targets, isPet);
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		// remove the feedinfo of the mob that got killed, if any
 		if (_FeedInfo.containsKey(npc.getObjectId()))
 		{
 			_FeedInfo.remove(npc.getObjectId());
 		}
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	public static void main(String[] args)
 	{
 		// now call the constructor (starts up the ai)
-		new FeedableBeasts(-1,"feedable_beasts","ai");
+		new FeedableBeasts(-1, "feedable_beasts", "ai");
 	}
 }

+ 20 - 12
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Monastery.java

@@ -37,14 +37,22 @@ import com.l2jserver.util.Rnd;
 
 public class Monastery extends L2AttackableAIScript
 {
-	static final int[] mobs1 = {22124, 22125, 22126, 22127, 22129};
-	static final int[] mobs2 = {22134, 22135};
+	private static final int[] mobs1 =
+	{
+		22124, 22125, 22126, 22127, 22129
+	};
+	private static final int[] mobs2 =
+	{
+		22134, 22135
+	};
 	
-	static final NpcStringId[] messages = {
+	private static final NpcStringId[] messages =
+	{
 		NpcStringId.YOU_CANNOT_CARRY_A_WEAPON_WITHOUT_AUTHORIZATION,
 		NpcStringId.S1_WHY_WOULD_YOU_CHOOSE_THE_PATH_OF_DARKNESS,
 		NpcStringId.S1_HOW_DARE_YOU_DEFY_THE_WILL_OF_EINHASAD
 	};
+	
 	public Monastery(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
@@ -55,7 +63,7 @@ public class Monastery extends L2AttackableAIScript
 	@Override
 	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isPet)
 	{
-		if (Util.contains(mobs1,npc.getNpcId()) && !npc.isInCombat() && npc.getTarget() == null)
+		if (Util.contains(mobs1, npc.getNpcId()) && !npc.isInCombat() && npc.getTarget() == null)
 		{
 			if (player.getActiveWeaponInstance() != null)
 			{
@@ -66,7 +74,7 @@ public class Monastery extends L2AttackableAIScript
 					case 22124:
 					case 22126:
 					{
-						L2Skill skill = SkillTable.getInstance().getInfo(4589,8);
+						L2Skill skill = SkillTable.getInstance().getInfo(4589, 8);
 						npc.doCast(skill);
 						break;
 					}
@@ -79,7 +87,7 @@ public class Monastery extends L2AttackableAIScript
 					}
 				}
 			}
-			else if (((L2Attackable)npc).getMostHated() == null)
+			else if (((L2Attackable) npc).getMostHated() == null)
 				return null;
 		}
 		return super.onAggroRangeEnter(npc, player, isPet);
@@ -88,7 +96,7 @@ public class Monastery extends L2AttackableAIScript
 	@Override
 	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
 	{
-		if (Util.contains(mobs2,npc.getNpcId()))
+		if (Util.contains(mobs2, npc.getNpcId()))
 		{
 			if (skill.getSkillType() == L2SkillType.AGGDAMAGE && targets.length != 0)
 			{
@@ -96,7 +104,7 @@ public class Monastery extends L2AttackableAIScript
 				{
 					if (obj.equals(npc))
 					{
-						NpcSay packet = new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), messages[Rnd.get(2)+1]);
+						NpcSay packet = new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), messages[Rnd.get(2) + 1]);
 						packet.addStringParameter(caster.getName());
 						npc.broadcastPacket(packet);
 						((L2Attackable) npc).addDamageHate(caster, 0, 999);
@@ -112,7 +120,7 @@ public class Monastery extends L2AttackableAIScript
 	@Override
 	public String onSpawn(L2Npc npc)
 	{
-		if (Util.contains(mobs1,npc.getNpcId()))
+		if (Util.contains(mobs1, npc.getNpcId()))
 		{
 			FastList<L2Playable> result = new FastList<L2Playable>();
 			Collection<L2Object> objs = npc.getKnownList().getKnownObjects().values();
@@ -140,7 +148,7 @@ public class Monastery extends L2AttackableAIScript
 							case 22126:
 							case 22127:
 							{
-								L2Skill skill = SkillTable.getInstance().getInfo(4589,8);
+								L2Skill skill = SkillTable.getInstance().getInfo(4589, 8);
 								npc.doCast(skill);
 								break;
 							}
@@ -162,7 +170,7 @@ public class Monastery extends L2AttackableAIScript
 	@Override
 	public String onSpellFinished(L2Npc npc, L2PcInstance player, L2Skill skill)
 	{
-		if (Util.contains(mobs1,npc.getNpcId()) && skill.getId() == 4589)
+		if (Util.contains(mobs1, npc.getNpcId()) && skill.getId() == 4589)
 		{
 			npc.setIsRunning(true);
 			((L2Attackable) npc).addDamageHate(player, 0, 999);
@@ -175,4 +183,4 @@ public class Monastery extends L2AttackableAIScript
 	{
 		new Monastery(-1, "Monastery", "ai");
 	}
-}
+}

+ 3 - 3
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PavelArchaic.java

@@ -38,10 +38,10 @@ public class PavelArchaic extends L2AttackableAIScript
 			
 			if (Rnd.get(100) < 40)
 			{
-				L2Attackable _golem1 = (L2Attackable) addSpawn(22801, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0);
+				L2Attackable _golem1 = (L2Attackable) addSpawn(22801, npc.getLocation(), false, 0);
 				attackPlayer(_golem1, attacker);
 				
-				L2Attackable _golem2 = (L2Attackable) addSpawn(22804, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0);
+				L2Attackable _golem2 = (L2Attackable) addSpawn(22804, npc.getLocation(), false, 0);
 				attackPlayer(_golem2, attacker);
 			}
 		}
@@ -53,7 +53,7 @@ public class PavelArchaic extends L2AttackableAIScript
 	{
 		if (Util.contains(_mobs1, npc.getNpcId()))
 		{
-			L2Attackable _golem = (L2Attackable) addSpawn(npc.getNpcId() + 1, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0);
+			L2Attackable _golem = (L2Attackable) addSpawn(npc.getNpcId() + 1, npc.getLocation(), false, 0);
 			attackPlayer(_golem, killer);
 		}
 		return super.onKill(npc, killer, isPet);

+ 15 - 14
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java

@@ -23,45 +23,46 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
 /**
- * 
  * Angel spawns...when one of the angels in the keys dies, the other angel will spawn.
- * 
  */
 public class PolymorphingAngel extends L2AttackableAIScript
 {
 	
-	private static final Map<Integer,Integer> ANGELSPAWNS = new FastMap<Integer,Integer>();
+	private static final Map<Integer, Integer> ANGELSPAWNS = new FastMap<Integer, Integer>();
 	static
 	{
-		ANGELSPAWNS.put(20830,20859);
-		ANGELSPAWNS.put(21067,21068);
-		ANGELSPAWNS.put(21062,21063);
-		ANGELSPAWNS.put(20831,20860);
-		ANGELSPAWNS.put(21070,21071);
+		ANGELSPAWNS.put(20830, 20859);
+		ANGELSPAWNS.put(21067, 21068);
+		ANGELSPAWNS.put(21062, 21063);
+		ANGELSPAWNS.put(20831, 20860);
+		ANGELSPAWNS.put(21070, 21071);
 	}
 	
 	public PolymorphingAngel(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-		int[] temp = {20830,21067,21062,20831,21070};
+		int[] temp =
+		{
+			20830, 21067, 21062, 20831, 21070
+		};
 		registerMobs(temp, QuestEventType.ON_KILL);
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		int npcId = npc.getNpcId();
 		if (ANGELSPAWNS.containsKey(npcId))
 		{
-			L2Attackable newNpc = (L2Attackable) this.addSpawn(ANGELSPAWNS.get(npcId),npc);
+			L2Attackable newNpc = (L2Attackable) addSpawn(ANGELSPAWNS.get(npcId), npc);
 			newNpc.setRunning();
 		}
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	public static void main(String[] args)
 	{
 		// now call the constructor (starts up the ai)
-		new PolymorphingAngel(-1,"polymorphing_angel","ai");
+		new PolymorphingAngel(-1, "polymorphing_angel", "ai");
 	}
-}
+}

+ 81 - 27
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java

@@ -32,28 +32,82 @@ import com.l2jserver.util.Rnd;
 public class PolymorphingOnAttack extends L2AttackableAIScript
 {
 	private static final TIntObjectHashMap<Integer[]> MOBSPAWNS = new TIntObjectHashMap<Integer[]>();
+	
 	static
 	{
-		MOBSPAWNS.put(21258,new Integer[]{21259,100,100,-1}); //Fallen Orc Shaman -> Sharp Talon Tiger (always polymorphs)
-		MOBSPAWNS.put(21261,new Integer[]{21262,100,20,0}); //Ol Mahum Transcender 1st stage
-		MOBSPAWNS.put(21262,new Integer[]{21263,100,10,1}); //Ol Mahum Transcender 2nd stage
-		MOBSPAWNS.put(21263,new Integer[]{21264,100,5,2}); //Ol Mahum Transcender 3rd stage
-		MOBSPAWNS.put(21265,new Integer[]{21271,100,33,0}); //Cave Ant Larva -> Cave Ant
-		MOBSPAWNS.put(21266,new Integer[]{21269,100,100,-1}); //Cave Ant Larva -> Cave Ant (always polymorphs)
-		MOBSPAWNS.put(21267,new Integer[]{21270,100,100,-1}); //Cave Ant Larva -> Cave Ant Soldier (always polymorphs)
-		MOBSPAWNS.put(21271,new Integer[]{21272,66,10,1}); //Cave Ant -> Cave Ant Soldier
-		MOBSPAWNS.put(21272,new Integer[]{21273,33,5,2}); //Cave Ant Soldier -> Cave Noble Ant
-		MOBSPAWNS.put(21521,new Integer[]{21522,100,30,-1}); //Claws of Splendor
-		MOBSPAWNS.put(21527,new Integer[]{21528,100,30,-1}); //Anger of Splendor
-		MOBSPAWNS.put(21533,new Integer[]{21534,100,30,-1}); //Alliance of Splendor
-		MOBSPAWNS.put(21537,new Integer[]{21538,100,30,-1}); //Fang of Splendor
+		MOBSPAWNS.put(21258, new Integer[]
+		{
+			21259, 100, 100, -1
+		}); // Fallen Orc Shaman -> Sharp Talon Tiger (always polymorphs)
+		MOBSPAWNS.put(21261, new Integer[]
+		{
+			21262, 100, 20, 0
+		}); // Ol Mahum Transcender 1st stage
+		MOBSPAWNS.put(21262, new Integer[]
+		{
+			21263, 100, 10, 1
+		}); // Ol Mahum Transcender 2nd stage
+		MOBSPAWNS.put(21263, new Integer[]
+		{
+			21264, 100, 5, 2
+		}); // Ol Mahum Transcender 3rd stage
+		MOBSPAWNS.put(21265, new Integer[]
+		{
+			21271, 100, 33, 0
+		}); // Cave Ant Larva -> Cave Ant
+		MOBSPAWNS.put(21266, new Integer[]
+		{
+			21269, 100, 100, -1
+		}); // Cave Ant Larva -> Cave Ant (always polymorphs)
+		MOBSPAWNS.put(21267, new Integer[]
+		{
+			21270, 100, 100, -1
+		}); // Cave Ant Larva -> Cave Ant Soldier (always polymorphs)
+		MOBSPAWNS.put(21271, new Integer[]
+		{
+			21272, 66, 10, 1
+		}); // Cave Ant -> Cave Ant Soldier
+		MOBSPAWNS.put(21272, new Integer[]
+		{
+			21273, 33, 5, 2
+		}); // Cave Ant Soldier -> Cave Noble Ant
+		MOBSPAWNS.put(21521, new Integer[]
+		{
+			21522, 100, 30, -1
+		}); // Claws of Splendor
+		MOBSPAWNS.put(21527, new Integer[]
+		{
+			21528, 100, 30, -1
+		}); // Anger of Splendor
+		MOBSPAWNS.put(21533, new Integer[]
+		{
+			21534, 100, 30, -1
+		}); // Alliance of Splendor
+		MOBSPAWNS.put(21537, new Integer[]
+		{
+			21538, 100, 30, -1
+		}); // Fang of Splendor
 	}
 	protected static final NpcStringId[][] MOBTEXTS =
 	{
-		new NpcStringId[]{NpcStringId.ENOUGH_FOOLING_AROUND_GET_READY_TO_DIE, NpcStringId.YOU_IDIOT_IVE_JUST_BEEN_TOYING_WITH_YOU, NpcStringId.NOW_THE_FUN_STARTS},
-		new NpcStringId[]{NpcStringId.I_MUST_ADMIT_NO_ONE_MAKES_MY_BLOOD_BOIL_QUITE_LIKE_YOU_DO, NpcStringId.NOW_THE_BATTLE_BEGINS, NpcStringId.WITNESS_MY_TRUE_POWER},
-		new NpcStringId[]{NpcStringId.PREPARE_TO_DIE, NpcStringId.ILL_DOUBLE_MY_STRENGTH, NpcStringId.YOU_HAVE_MORE_SKILL_THAN_I_THOUGHT}
-
+		new NpcStringId[]
+		{
+			NpcStringId.ENOUGH_FOOLING_AROUND_GET_READY_TO_DIE, 
+			NpcStringId.YOU_IDIOT_IVE_JUST_BEEN_TOYING_WITH_YOU,
+			NpcStringId.NOW_THE_FUN_STARTS
+		}, 
+		new NpcStringId[]
+		{
+			NpcStringId.I_MUST_ADMIT_NO_ONE_MAKES_MY_BLOOD_BOIL_QUITE_LIKE_YOU_DO,
+			NpcStringId.NOW_THE_BATTLE_BEGINS, 
+			NpcStringId.WITNESS_MY_TRUE_POWER
+		}, 
+		new NpcStringId[]
+		{
+			NpcStringId.PREPARE_TO_DIE, 
+			NpcStringId.ILL_DOUBLE_MY_STRENGTH,
+			NpcStringId.YOU_HAVE_MORE_SKILL_THAN_I_THOUGHT
+		}
 	};
 	
 	public PolymorphingOnAttack(int questId, String name, String descr)
@@ -63,35 +117,35 @@ public class PolymorphingOnAttack extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
 	{
 		if (npc.isVisible() && !npc.isDead())
 		{
 			final Integer[] tmp = MOBSPAWNS.get(npc.getNpcId());
 			if (tmp != null)
 			{
-				if (npc.getCurrentHp() <= (npc.getMaxHp() * tmp[1]/100.0)&& Rnd.get(100) < tmp[2])
+				if (npc.getCurrentHp() <= (npc.getMaxHp() * tmp[1] / 100.0) && Rnd.get(100) < tmp[2])
 				{
 					if (tmp[3] >= 0)
 					{
 						NpcStringId npcString = MOBTEXTS[tmp[3]][Rnd.get(MOBTEXTS[tmp[3]].length)];
-						npc.broadcastPacket(new CreatureSay(npc.getObjectId(),Say2.ALL,npc.getName(),npcString));
-
+						npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.ALL, npc.getName(), npcString));
+						
 					}
 					npc.deleteMe();
-					L2Attackable newNpc = (L2Attackable) addSpawn(tmp[0], npc.getX(), npc.getY(), npc.getZ()+10, npc.getHeading(), false, 0, true);
-					L2Character originalAttacker = isPet? attacker.getPet(): attacker;
+					L2Attackable newNpc = (L2Attackable) addSpawn(tmp[0], npc.getX(), npc.getY(), npc.getZ() + 10, npc.getHeading(), false, 0, true);
+					L2Character originalAttacker = isPet ? attacker.getPet() : attacker;
 					newNpc.setRunning();
-					newNpc.addDamageHate(originalAttacker,0,500);
+					newNpc.addDamageHate(originalAttacker, 0, 500);
 					newNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, originalAttacker);
 				}
 			}
 		}
-		return super.onAttack (npc, attacker, damage, isPet);
+		return super.onAttack(npc, attacker, damage, isPet);
 	}
 	
 	public static void main(String[] args)
 	{
-		new PolymorphingOnAttack(-1,"polymorphing_on_attack","ai");
+		new PolymorphingOnAttack(-1, "polymorphing_on_attack", "ai");
 	}
-}
+}

+ 22 - 18
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrisonGuards.java

@@ -30,13 +30,15 @@ import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.util.Rnd;
 
-
 public class PrisonGuards extends L2AttackableAIScript
 {
 	final private static int GUARD1 = 18367;
 	final private static int GUARD2 = 18368;
 	final private static int STAMP = 10013;
-	final private static String[] GUARDVARS = {"1st","2nd","3rd","4th"};
+	final private static String[] GUARDVARS =
+	{
+		"1st", "2nd", "3rd", "4th"
+	};
 	final private static String qn = "IOPRace";
 	
 	private final static int silence = 4098;
@@ -45,30 +47,33 @@ public class PrisonGuards extends L2AttackableAIScript
 	
 	private boolean _firstAttacked = false;
 	
-	private Map<L2Npc,Integer> _guards = new FastMap<L2Npc, Integer>();
+	private final Map<L2Npc, Integer> _guards = new FastMap<L2Npc, Integer>();
 	
 	public PrisonGuards(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-		int[] mob = {GUARD1, GUARD2};
+		int[] mob =
+		{
+			GUARD1, GUARD2
+		};
 		registerMobs(mob);
 		
 		// place 1
-		_guards.put(addSpawn(GUARD2,160704,184704,-3704,49152,false,0),0);
-		_guards.put(addSpawn(GUARD2,160384,184704,-3704,49152,false,0),0);
-		_guards.put(addSpawn(GUARD1,160528,185216,-3704,49152,false,0),0);
+		_guards.put(addSpawn(GUARD2, 160704, 184704, -3704, 49152, false, 0), 0);
+		_guards.put(addSpawn(GUARD2, 160384, 184704, -3704, 49152, false, 0), 0);
+		_guards.put(addSpawn(GUARD1, 160528, 185216, -3704, 49152, false, 0), 0);
 		// place 2
-		_guards.put(addSpawn(GUARD2,135120,171856,-3704,49152,false,0),1);
-		_guards.put(addSpawn(GUARD2,134768,171856,-3704,49152,false,0),1);
-		_guards.put(addSpawn(GUARD1,134928,172432,-3704,49152,false,0),1);
+		_guards.put(addSpawn(GUARD2, 135120, 171856, -3704, 49152, false, 0), 1);
+		_guards.put(addSpawn(GUARD2, 134768, 171856, -3704, 49152, false, 0), 1);
+		_guards.put(addSpawn(GUARD1, 134928, 172432, -3704, 49152, false, 0), 1);
 		// place 3
-		_guards.put(addSpawn(GUARD2,146880,151504,-2872,49152,false,0),2);
-		_guards.put(addSpawn(GUARD2,146366,151506,-2872,49152,false,0),2);
-		_guards.put(addSpawn(GUARD1,146592,151888,-2872,49152,false,0),2);
+		_guards.put(addSpawn(GUARD2, 146880, 151504, -2872, 49152, false, 0), 2);
+		_guards.put(addSpawn(GUARD2, 146366, 151506, -2872, 49152, false, 0), 2);
+		_guards.put(addSpawn(GUARD1, 146592, 151888, -2872, 49152, false, 0), 2);
 		// place 4
-		_guards.put(addSpawn(GUARD2,155840,160448,-3352,0,false,0),3);
-		_guards.put(addSpawn(GUARD2,155840,159936,-3352,0,false,0),3);
-		_guards.put(addSpawn(GUARD1,155578,160177,-3352,0,false,0),3);
+		_guards.put(addSpawn(GUARD2, 155840, 160448, -3352, 0, false, 0), 3);
+		_guards.put(addSpawn(GUARD2, 155840, 159936, -3352, 0, false, 0), 3);
+		_guards.put(addSpawn(GUARD1, 155578, 160177, -3352, 0, false, 0), 3);
 		
 		for (L2Npc npc : _guards.keySet())
 		{
@@ -225,8 +230,7 @@ public class PrisonGuards extends L2AttackableAIScript
 		if (fromAttack)
 		{
 			/*
-			 * 1800107 It's not easy to obtain.
-			 * 1800108 You're out of your mind coming here...
+			 * 1800107 It's not easy to obtain. 1800108 You're out of your mind coming here...
 			 */
 			NpcStringId npcString = (npc.getNpcId() == GUARD1 ? NpcStringId.ITS_NOT_EASY_TO_OBTAIN : NpcStringId.YOURE_OUT_OF_YOUR_MIND_COMING_HERE);
 			npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), npcString));

+ 52 - 104
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/RandomSpawn.java

@@ -19,109 +19,60 @@ import java.util.Map;
 import javolution.util.FastMap;
 
 import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.util.Rnd;
 
 /**
- * This class manages the spawn of NPC's, having several random spawn points.
- * @author GKR
+ * @Manages spawn of NPC's, having several random spawn points 
  */
+
 public class RandomSpawn extends L2AttackableAIScript
 {
-	private static final Map<Integer, int[][]> SPAWN_POINTS = new FastMap<Integer, int[][]>();
+	private static Map<Integer, Location[]> SPAWN_POINTS = new FastMap<>();
 	
 	static
 	{
 		// Keltas
-		SPAWN_POINTS.put(22341, new int[][]
-		{
-			{
-				-27136, 250938, -3523
-			},
-			{
-				-29658, 252897, -3523
-			},
-			{
-				-27237, 251943, -3527
-			},
-			{
-				-28868, 250113, -3479
-			}
+		SPAWN_POINTS.put(22341, new Location[]
+		{	
+			new Location(-27136, 250938, -3523),
+			new Location(-29658, 252897, -3523),
+			new Location(-27237, 251943, -3527), 
+			new Location(-28868, 250113, -3479)
 		});
 		// Keymaster
-		SPAWN_POINTS.put(22361, new int[][]
-		{
-			{
-				14091, 250533, -1940
-			},
-			{
-				15762, 252440, -2015
-			},
-			{
-				19836, 256212, -2090
-			},
-			{
-				21940, 254107, -2010
-			},
-			{
-				17299, 252943, -2015
-			}
+		SPAWN_POINTS.put(22361, new Location[]
+		{	
+			new Location(14091, 250533, -1940),	
+			new Location(15762, 252440, -2015),	
+			new Location(19836, 256212, -2090),	
+			new Location(21940, 254107, -2010),	
+			new Location(17299, 252943, -2015),
 		});
 		// Typhoon
-		SPAWN_POINTS.put(25539, new int[][]
-		{
-			{
-				-20641, 255370, -3235
-			},
-			{
-				-16157, 250993, -3058
-			},
-			{
-				-18269, 250721, -3151
-			},
-			{
-				-16532, 254864, -3223
-			},
-			{
-				-19055, 253489, -3440
-			},
-			{
-				-9684, 254256, -3148
-			},
-			{
-				-6209, 251924, -3189
-			},
-			{
-				-10547, 251359, -2929
-			},
-			{
-				-7254, 254997, -3261
-			},
-			{
-				-4883, 253171, -3322
-			}
+		SPAWN_POINTS.put(25539, new Location[]
+		{	
+			new Location(-20641, 255370, -3235), 
+			new Location(-16157, 250993, -3058),
+			new Location(-18269, 250721, -3151), 
+			new Location(-16532, 254864, -3223),
+			new Location(-19055, 253489, -3440), 
+			new Location(-9684, 254256, -3148), 
+			new Location(-6209, 251924, -3189),	
+			new Location(-10547, 251359, -2929),
+			new Location(-7254, 254997, -3261), 
+			new Location(-4883, 253171, -3322)
 		});
 		// Mutated Elpy
-		SPAWN_POINTS.put(25604, new int[][]
+		SPAWN_POINTS.put(25604, new Location[]
 		{
-			{
-				-46080, 246368, -14183
-			},
-			{
-				-44816, 246368, -14183
-			},
-			{
-				-44224, 247440, -14184
-			},
-			{
-				-44896, 248464, -14183
-			},
-			{
-				-46064, 248544, -14183
-			},
-			{
-				-46720, 247424, -14183
-			}
+			new Location(-46080, 246368, -14183),
+			new Location(-44816, 246368, -14183),
+			new Location(-44224, 247440, -14184),
+			new Location(-44896, 248464, -14183), 
+			new Location(-46064, 248544, -14183),
+			new Location(-46720, 247424, -14183)
 		});
 	}
 	
@@ -130,48 +81,45 @@ public class RandomSpawn extends L2AttackableAIScript
 		super(questId, name, descr);
 		
 		for (int npcId : SPAWN_POINTS.keySet())
-		{
-			addSpawnId(npcId);
-		}
+			addSpawnId(npcId); 
 	}
-	
+
 	@Override
 	public final String onSpawn(L2Npc npc)
 	{
 		if (!npc.isTeleporting())
 		{
-			final int[][] spawnlist = SPAWN_POINTS.get(npc.getNpcId());
-			final int[] spawn = spawnlist[Rnd.get(spawnlist.length)];
-			if (!npc.isInsideRadius(spawn[0], spawn[1], spawn[2], 200, false, false))
+			final Location[] spawnlist = SPAWN_POINTS.get(npc.getNpcId());
+			int num = Rnd.get(spawnlist.length);
+			final Location loc = spawnlist[num];
+			if (!npc.isInsideRadius(loc, 200, false, false))
 			{
-				npc.getSpawn().setLocx(spawn[0]);
-				npc.getSpawn().setLocy(spawn[1]);
-				npc.getSpawn().setLocz(spawn[2]);
-				ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(npc, spawn), 100);
+				npc.getSpawn().setLocation(loc);
+				ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(npc, loc), 100);
 			}
 		}
 		
 		return super.onSpawn(npc);
 	}
-	
+
 	private static class Teleport implements Runnable
 	{
 		private final L2Npc _npc;
-		private final int[] _coords;
-		
-		public Teleport(L2Npc npc, int[] coords)
+		private final Location _loc;
+
+		public Teleport(L2Npc npc, Location loc)
 		{
 			_npc = npc;
-			_coords = coords;
+			_loc = loc;
 		}
-		
+
 		@Override
 		public void run()
 		{
-			_npc.teleToLocation(_coords[0], _coords[1], _coords[2]);
+			_npc.teleToLocation(_loc, false);
 		}
 	}
-	
+
 	public static void main(String[] args)
 	{
 		new RandomSpawn(-1, "RandomSpawn", "ai");

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SearchingMaster.java

@@ -23,7 +23,7 @@ public class SearchingMaster extends L2AttackableAIScript
 {
 	private static final int[] mobs =
 	{
-		20965,20966,20967,20968,20969,20970,20971,20972,20973
+		20965, 20966, 20967, 20968, 20969, 20970, 20971, 20972, 20973
 	};
 	
 	public SearchingMaster(int questId, String name, String descr)
@@ -49,4 +49,4 @@ public class SearchingMaster extends L2AttackableAIScript
 	{
 		new SearchingMaster(-1, "SearchingMaster", "ai");
 	}
-}
+}

+ 48 - 5
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeeThroughSilentMove.java

@@ -22,14 +22,57 @@ import com.l2jserver.gameserver.util.Util;
 
 public class SeeThroughSilentMove extends L2AttackableAIScript
 {
-	private static final int[] MOBIDS = {18001,18002,22199,22215,22216,22217,22327,22746,22747,22748,22749,22750,22751,22752,22753,22754,22755,22756,22757,22758,22759,22760,22761,22762,22763,22764,22765,22794,22795,22796,22797,22798,22799,22800,29009,29010,29011,29012,29013};
+	//@formatter:off
+	private static final int[] MOBIDS =
+	{
+		18001, 
+		18002, 
+		22199, 
+		22215, 
+		22216, 
+		22217, 
+		22327, 
+		22746, 
+		22747, 
+		22748, 
+		22749, 
+		22750, 
+		22751, 
+		22752,
+		22753, 
+		22754, 
+		22755, 
+		22756, 
+		22757, 
+		22758, 
+		22759, 
+		22760, 
+		22761, 
+		22762, 
+		22763, 
+		22764, 
+		22765, 
+		22794, 
+		22795, 
+		22796, 
+		22797, 
+		22798, 
+		22799, 
+		22800, 
+		29009, 
+		29010, 
+		29011, 
+		29012, 
+		29013
+	};
+	//@formatter:on
 	
 	public SeeThroughSilentMove(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
 		for (L2Spawn npc : SpawnTable.getInstance().getSpawnTable())
-			if (Util.contains(MOBIDS,npc.getNpcid()) && npc.getLastSpawn() != null && npc.getLastSpawn() instanceof L2Attackable)
-				((L2Attackable)npc.getLastSpawn()).setSeeThroughSilentMove(true);
+			if (Util.contains(MOBIDS, npc.getNpcid()) && npc.getLastSpawn() != null && npc.getLastSpawn() instanceof L2Attackable)
+				((L2Attackable) npc.getLastSpawn()).setSeeThroughSilentMove(true);
 		registerMobs(MOBIDS, QuestEventType.ON_SPAWN);
 	}
 	
@@ -37,7 +80,7 @@ public class SeeThroughSilentMove extends L2AttackableAIScript
 	public String onSpawn(L2Npc npc)
 	{
 		if (npc instanceof L2Attackable)
-			((L2Attackable)npc).setSeeThroughSilentMove(true);
+			((L2Attackable) npc).setSeeThroughSilentMove(true);
 		return super.onSpawn(npc);
 	}
 	
@@ -45,4 +88,4 @@ public class SeeThroughSilentMove extends L2AttackableAIScript
 	{
 		new SeeThroughSilentMove(-1, "SeeThroughSilentMove", "ai");
 	}
-}
+}

+ 126 - 36
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java

@@ -23,6 +23,7 @@ import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SpawnTable;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
@@ -36,14 +37,39 @@ import com.l2jserver.util.Rnd;
 public class SeedOfAnnihilation extends Quest
 {
 	final private static String qn = "SeedOfAnnihilation";
-	private static final Map<Integer, int[]> _teleportZones = new FastMap<Integer, int[]>();
+	private static final Map<Integer, Location> _teleportZones = new FastMap<>();
 	private static final int ANNIHILATION_FURNACE = 18928;
+
 	// Strength, Agility, Wisdom
-	private static final int[] ZONE_BUFFS = { 0, 6443, 6444, 6442 };
-	private static final int[][] ZONE_BUFFS_LIST = { {1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,2,1},{3,1,2} };
+	private static final int[] ZONE_BUFFS =
+	{
+		0, 6443, 6444, 6442
+	};
+	
+	private static final int[][] ZONE_BUFFS_LIST =
+	{
+		{
+			1, 2, 3
+		},
+		{
+			1, 3, 2
+		},
+		{
+			2, 1, 3
+		},
+		{
+			2, 3, 1
+		},
+		{
+			3, 2, 1
+		},
+		{
+			3, 1, 2
+		}
+	};
 	
 	// 0: Bistakon, 1: Reptilikon, 2: Cokrakon
-	private SeedRegion[] _regionsData = new SeedRegion[3];
+	private final SeedRegion[] _regionsData = new SeedRegion[3];
 	private Long _seedsNextStatusChange;
 	
 	private static class SeedRegion
@@ -66,31 +92,95 @@ public class SeedOfAnnihilation extends Quest
 	
 	static
 	{
-		_teleportZones.put(60002, new int[]{ -213175, 182648, -10992 });
-		_teleportZones.put(60003, new int[]{ -181217, 186711, -10528 });
-		_teleportZones.put(60004, new int[]{ -180211, 182984, -15152 });
-		_teleportZones.put(60005, new int[]{ -179275, 186802, -10720 });
+		_teleportZones.put(60002, new Location(-213175, 182648, -10992));
+		_teleportZones.put(60003, new Location(-181217, 186711, -10528));
+		_teleportZones.put(60004, new Location(-180211, 182984, -15152));
+		_teleportZones.put(60005, new Location(-179275, 186802, -10720));
 	}
 	
 	public void loadSeedRegionData()
 	{
 		// Bistakon data
-		_regionsData[0] = new SeedRegion(new int[]{ 22750, 22751, 22752, 22753 },
-				new int[][]{ { 22746, 22746, 22746 }, { 22747, 22747, 22747 },
-				{ 22748, 22748, 22748 }, { 22749, 22749, 22749 } }, 60006,
-				new int[][]{ {-180450,185507,-10544,11632},{-180005,185489,-10544,11632} });
+		_regionsData[0] = new SeedRegion(new int[]
+		{
+			22750, 22751, 22752, 22753
+		}, new int[][]
+		{
+			{
+				22746, 22746, 22746
+			},
+			{
+				22747, 22747, 22747
+			},
+			{
+				22748, 22748, 22748
+			},
+			{
+				22749, 22749, 22749
+			}
+		}, 60006, new int[][]
+		{
+			{
+				-180450, 185507, -10544, 11632
+			},
+			{
+				-180005, 185489, -10544, 11632
+			}
+		});
 		
 		// Reptilikon data
-		_regionsData[1] = new SeedRegion(new int[]{ 22757, 22758, 22759 },
-				new int[][]{ { 22754, 22755, 22756 } }, 60007,
-				new int[][]{ {-179600,186998,-10704,11632},{-179295,186444,-10704,11632} });
+		_regionsData[1] = new SeedRegion(new int[]
+		{
+			22757, 22758, 22759
+		}, new int[][]
+		{
+			{
+				22754, 22755, 22756
+			}
+		}, 60007, new int[][]
+		{
+			{
+				-179600, 186998, -10704, 11632
+			},
+			{
+				-179295, 186444, -10704, 11632
+			}
+		});
 		
 		// Cokrakon data
-		_regionsData[2] = new SeedRegion(new int[]{ 22763, 22764, 22765 },
-				new int[][]{ { 22760, 22760, 22761 }, { 22760, 22760, 22762 },
-				{ 22761, 22761, 22760 }, { 22761, 22761, 22762 }, { 22762, 22762, 22760 },
-				{ 22762, 22762, 22761 } }, 60008,
-				new int[][]{ {-180971,186361,-10528,11632},{-180758,186739,-10528,11632} });
+		_regionsData[2] = new SeedRegion(new int[]
+		{
+			22763, 22764, 22765
+		}, new int[][]
+		{
+			{
+				22760, 22760, 22761
+			},
+			{
+				22760, 22760, 22762
+			},
+			{
+				22761, 22761, 22760
+			},
+			{
+				22761, 22761, 22762
+			},
+			{
+				22762, 22762, 22760
+			},
+			{
+				22762, 22762, 22761
+			}
+		}, 60008, new int[][]
+		{
+			{
+				-180971, 186361, -10528, 11632
+			},
+			{
+				-180758, 186739, -10528, 11632
+			}
+		});
+		
 		int buffsNow = 0;
 		String var = loadGlobalQuestVar("SeedNextStatusChange");
 		if (var.equalsIgnoreCase("") || Long.parseLong(var) < System.currentTimeMillis())
@@ -125,10 +215,10 @@ public class SeedOfAnnihilation extends Quest
 	{
 		super(questId, name, descr);
 		loadSeedRegionData();
-		for(int i : _teleportZones.keySet())
+		for (int i : _teleportZones.keySet())
 			addEnterZoneId(i);
-		for(int i = 0; i < _regionsData.length; i++)
-			for(int j = 0; j < _regionsData[i].elite_mob_ids.length; j++)
+		for (int i = 0; i < _regionsData.length; i++)
+			for (int j = 0; j < _regionsData[i].elite_mob_ids.length; j++)
 				addSpawnId(_regionsData[i].elite_mob_ids[j]);
 		addStartNpc(32739);
 		addTalkId(32739);
@@ -138,9 +228,9 @@ public class SeedOfAnnihilation extends Quest
 	
 	private void startEffectZonesControl()
 	{
-		for(int i = 0; i < _regionsData.length; i++)
+		for (int i = 0; i < _regionsData.length; i++)
 		{
-			for(int j = 0; j < _regionsData[i].af_spawns.length; j++)
+			for (int j = 0; j < _regionsData[i].af_spawns.length; j++)
 			{
 				_regionsData[i].af_npcs[j] = addSpawn(ANNIHILATION_FURNACE, _regionsData[i].af_spawns[j][0], _regionsData[i].af_spawns[j][1], _regionsData[i].af_spawns[j][2], _regionsData[i].af_spawns[j][3], false, 0);
 				_regionsData[i].af_npcs[j].setDisplayEffect(_regionsData[i].activeBuff);
@@ -156,7 +246,7 @@ public class SeedOfAnnihilation extends Quest
 		{
 			if (spawn == null)
 				continue;
-			for(int i = 0; i < _regionsData.length; i++)
+			for (int i = 0; i < _regionsData.length; i++)
 			{
 				if (Util.contains(_regionsData[i].elite_mob_ids, spawn.getNpcid()))
 				{
@@ -177,16 +267,16 @@ public class SeedOfAnnihilation extends Quest
 	@Override
 	public String onSpawn(L2Npc npc)
 	{
-		for(int i = 0; i < _regionsData.length; i++)
+		for (int i = 0; i < _regionsData.length; i++)
 		{
 			if (Util.contains(_regionsData[i].elite_mob_ids, npc.getNpcId()))
-				spawnGroupOfMinion((L2MonsterInstance)npc, _regionsData[i].minion_lists[Rnd.get(_regionsData[i].minion_lists.length)]);
+				spawnGroupOfMinion((L2MonsterInstance) npc, _regionsData[i].minion_lists[Rnd.get(_regionsData[i].minion_lists.length)]);
 		}
 		return super.onSpawn(npc);
 	}
 	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		if (event.equalsIgnoreCase("ChangeSeedsStatus"))
 		{
@@ -194,11 +284,11 @@ public class SeedOfAnnihilation extends Quest
 			saveGlobalQuestVar("SeedBuffsList", String.valueOf(buffsNow));
 			_seedsNextStatusChange = getNextSeedsStatusChangeTime();
 			saveGlobalQuestVar("SeedNextStatusChange", String.valueOf(_seedsNextStatusChange));
-			for(int i = 0; i < _regionsData.length; i++)
+			for (int i = 0; i < _regionsData.length; i++)
 			{
 				_regionsData[i].activeBuff = ZONE_BUFFS_LIST[buffsNow][i];
 				
-				for(L2Npc af : _regionsData[i].af_npcs)
+				for (L2Npc af : _regionsData[i].af_npcs)
 					af.setDisplayEffect(_regionsData[i].activeBuff);
 				
 				L2EffectZone zone = ZoneManager.getInstance().getZoneById(_regionsData[i].buff_zone, L2EffectZone.class);
@@ -223,9 +313,9 @@ public class SeedOfAnnihilation extends Quest
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	@Override
@@ -233,14 +323,14 @@ public class SeedOfAnnihilation extends Quest
 	{
 		if (_teleportZones.containsKey(zone.getId()))
 		{
-			int[] teleLoc = _teleportZones.get(zone.getId());
-			character.teleToLocation(teleLoc[0],teleLoc[1],teleLoc[2]);
+			Location teleLoc = _teleportZones.get(zone.getId());
+			character.teleToLocation(teleLoc, false);
 		}
 		return super.onEnterZone(character, zone);
 	}
 	
 	public static void main(String[] args)
 	{
-		new SeedOfAnnihilation(-1,qn,"ai");
+		new SeedOfAnnihilation(-1, qn, "ai");
 	}
 }

+ 11 - 5
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StakatoNest.java

@@ -32,9 +32,15 @@ import com.l2jserver.util.Rnd;
 public class StakatoNest extends L2AttackableAIScript
 {
 	// List of all mobs just for register
-	private static final int[] _stakato_mobs = { 18793, 18794, 18795, 18796, 18797, 18798, 22617, 22618, 22619, 22620, 22621, 22622, 22623, 22624, 22625, 22626, 22627, 22628, 22629, 22630, 22631, 22632, 22633, 25667 };
+	private static final int[] _stakato_mobs =
+	{
+		18793, 18794, 18795, 18796, 18797, 18798, 22617, 22618, 22619, 22620, 22621, 22622, 22623, 22624, 22625, 22626, 22627, 22628, 22629, 22630, 22631, 22632, 22633, 25667
+	};
 	// Coocons
-	private static final int[] _cocoons = { 18793, 18794, 18795, 18796, 18797, 18798 };
+	private static final int[] _cocoons =
+	{
+		18793, 18794, 18795, 18796, 18797, 18798
+	};
 	
 	// Cannibalistic Stakato Leader
 	private static final int _stakato_leader = 22625;
@@ -111,7 +117,7 @@ public class StakatoNest extends L2AttackableAIScript
 		else if (npc.getNpcId() == _stakato_baby)
 		{
 			L2MonsterInstance _leader = ((L2MonsterInstance) npc).getLeader();
-			if(_leader != null && !_leader.isDead())
+			if (_leader != null && !_leader.isDead())
 			{
 				startQuestTimer("nurse_change", 5000, _leader, killer);
 			}
@@ -128,7 +134,7 @@ public class StakatoNest extends L2AttackableAIScript
 		else if (npc.getNpcId() == _stakato_female)
 		{
 			L2MonsterInstance _leader = ((L2MonsterInstance) npc).getLeader();
-			if(_leader != null && !_leader.isDead())
+			if (_leader != null && !_leader.isDead())
 			{
 				startQuestTimer("male_change", 5000, _leader, killer);
 			}
@@ -164,7 +170,7 @@ public class StakatoNest extends L2AttackableAIScript
 	{
 		if ((npc == null) || (player == null))
 			return null;
-		if(npc.isDead())
+		if (npc.isDead())
 			return null;
 		
 		if (event.equalsIgnoreCase("nurse_change"))

+ 22 - 11
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java

@@ -19,29 +19,42 @@ import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
 public class StarStones extends L2AttackableAIScript
 {
-	private static final int[] mobs = {18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692};
+	//@formatter:off
+	private static final int[] mobs =
+	{
+		18684, 
+		18685, 
+		18686, 
+		18687, 
+		18688, 
+		18689, 
+		18690, 
+		18691, 
+		18692
+	};
+	//@formatter:on
+	
 	private static final int RATE = 1;
 	
 	public StarStones(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-		this.registerMobs(mobs, QuestEventType.ON_SKILL_SEE);
+		registerMobs(mobs, QuestEventType.ON_SKILL_SEE);
 	}
 	
 	@Override
-	public String onSkillSee (L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
 	{
 		if (Util.contains(targets, npc) && skill.getId() == 932)
 		{
 			int itemId = 0;
 			
-			switch(npc.getNpcId())
+			switch (npc.getNpcId())
 			{
 				case 18684:
 				case 18685:
@@ -67,18 +80,16 @@ public class StarStones extends L2AttackableAIScript
 			}
 			if (Rnd.get(100) < 33)
 			{
-				caster.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.THE_COLLECTION_HAS_SUCCEEDED));
+				caster.sendPacket(SystemMessageId.THE_COLLECTION_HAS_SUCCEEDED);
 				caster.addItem("StarStone", itemId, Rnd.get(RATE + 1, 2 * RATE), null, true);
 			}
-			else if ((skill.getLevel() == 1 && Rnd.get(100) < 15) ||
-					(skill.getLevel() == 2 && Rnd.get(100) < 50) ||
-					(skill.getLevel() == 3 && Rnd.get(100) < 75))
+			else if ((skill.getLevel() == 1 && Rnd.get(100) < 15) || (skill.getLevel() == 2 && Rnd.get(100) < 50) || (skill.getLevel() == 3 && Rnd.get(100) < 75))
 			{
-				caster.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.THE_COLLECTION_HAS_SUCCEEDED));
+				caster.sendPacket(SystemMessageId.THE_COLLECTION_HAS_SUCCEEDED);
 				caster.addItem("StarStone", itemId, Rnd.get(1, RATE), null, true);
 			}
 			else
-				caster.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.THE_COLLECTION_HAS_FAILED));
+				caster.sendPacket(SystemMessageId.THE_COLLECTION_HAS_FAILED);
 			npc.deleteMe();
 		}
 		return super.onSkillSee(npc, caster, skill, targets, isPet);

+ 13 - 15
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SummonMinions.java

@@ -30,12 +30,13 @@ import com.l2jserver.util.Rnd;
 public class SummonMinions extends L2AttackableAIScript
 {
 	private static int HasSpawned;
-	private static TIntHashSet myTrackingSet = new TIntHashSet(); //Used to track instances of npcs
-	private FastMap<Integer, FastList<L2PcInstance>> _attackersList = new FastMap<Integer, FastList<L2PcInstance>>().shared();
+	private static TIntHashSet myTrackingSet = new TIntHashSet(); // Used to track instances of npcs
+	private final FastMap<Integer, FastList<L2PcInstance>> _attackersList = new FastMap<Integer, FastList<L2PcInstance>>().shared();
 	private static final TIntObjectHashMap<int[]> MINIONS = new TIntObjectHashMap<int[]>();
 	
 	static
 	{
+		//@formatter:off
 		MINIONS.put(20767,new int[]{20768,20769,20770}); //Timak Orc Troop
 		//MINIONS.put(22030,new Integer[]{22045,22047,22048}); //Ragna Orc Shaman
 		//MINIONS.put(22032,new Integer[]{22036}); //Ragna Orc Warrior - summons shaman but not 22030 ><
@@ -54,16 +55,13 @@ public class SummonMinions extends L2AttackableAIScript
 		MINIONS.put(22265,new int[]{18366,18366}); //Chrysocolla
 		MINIONS.put(22266,new int[]{18366,18366}); //Pythia
 		MINIONS.put(22774,new int[]{22768,22768}); // Tanta Lizardman Summoner
+		//@formatter:on
 	}
 	
 	public SummonMinions(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-		int[] temp =
-		{
-				20767,  21524, 21531, 21539, 22257, 22258, 22259, 22260, 22261, 22262, 22263, 22264, 22265, 22266, 22774
-		};
-		this.registerMobs(temp, QuestEventType.ON_ATTACK, QuestEventType.ON_KILL);
+		registerMobs(MINIONS.keys(), QuestEventType.ON_ATTACK, QuestEventType.ON_KILL);
 	}
 	
 	@Override
@@ -73,7 +71,7 @@ public class SummonMinions extends L2AttackableAIScript
 		int npcObjId = npc.getObjectId();
 		if (MINIONS.containsKey(npcId))
 		{
-			if (!myTrackingSet.contains(npcObjId)) //this allows to handle multiple instances of npc
+			if (!myTrackingSet.contains(npcObjId)) // this allows to handle multiple instances of npc
 			{
 				synchronized (myTrackingSet)
 				{
@@ -86,14 +84,14 @@ public class SummonMinions extends L2AttackableAIScript
 			{
 				switch (npcId)
 				{
-					case 22030: //mobs that summon minions only on certain hp
+					case 22030: // mobs that summon minions only on certain hp
 					case 22032:
 					case 22038:
 					{
 						if (npc.getCurrentHp() < (npc.getMaxHp() / 2.0))
 						{
 							HasSpawned = 0;
-							if (Rnd.get(100) < 33) //mobs that summon minions only on certain chance
+							if (Rnd.get(100) < 33) // mobs that summon minions only on certain chance
 							{
 								int[] minions = MINIONS.get(npcId);
 								for (int val : minions)
@@ -129,7 +127,7 @@ public class SummonMinions extends L2AttackableAIScript
 								{
 									FastList<L2PcInstance> player = new FastList<L2PcInstance>();
 									player.add(member);
-									_attackersList.put(npcObjId,player);
+									_attackersList.put(npcObjId, player);
 								}
 								else if (!_attackersList.get(npcObjId).contains(member))
 									_attackersList.get(npcObjId).add(member);
@@ -141,12 +139,12 @@ public class SummonMinions extends L2AttackableAIScript
 							{
 								FastList<L2PcInstance> player = new FastList<L2PcInstance>();
 								player.add(attacker);
-								_attackersList.put(npcObjId,player);
+								_attackersList.put(npcObjId, player);
 							}
 							else if (!_attackersList.get(npcObjId).contains(attacker))
 								_attackersList.get(npcObjId).add(attacker);
 						}
-						if ((attacker.getParty() != null && attacker.getParty().getMemberCount() > 2)||_attackersList.get(npcObjId).size() > 2) //Just to make sure..
+						if ((attacker.getParty() != null && attacker.getParty().getMemberCount() > 2) || _attackersList.get(npcObjId).size() > 2) // Just to make sure..
 						{
 							HasSpawned = 0;
 							for (int val : MINIONS.get(npcId))
@@ -159,7 +157,7 @@ public class SummonMinions extends L2AttackableAIScript
 						}
 						break;
 					}
-					default: //mobs without special conditions
+					default: // mobs without special conditions
 					{
 						HasSpawned = 0;
 						if (npcId != 20767)
@@ -215,4 +213,4 @@ public class SummonMinions extends L2AttackableAIScript
 		// now call the constructor (starts up the ai)
 		new SummonMinions(-1, "SummonMinions", "ai");
 	}
-}
+}

+ 103 - 117
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java

@@ -33,6 +33,7 @@ import com.l2jserver.gameserver.instancemanager.GrandBossManager;
 import com.l2jserver.gameserver.model.L2Effect;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
@@ -48,35 +49,14 @@ import com.l2jserver.gameserver.templates.StatsSet;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
-
 /**
- * Baium AI
- * 
- * Note1: if the server gets rebooted while players are still fighting Baium, there is no lock, but
- *   players also lose their ability to wake baium up.  However, should another person
- *   enter the room and wake him up, the players who had stayed inside may join the raid.
- *   This can be helpful for players who became victims of a reboot (they only need 1 new player to
- *   enter and wake up baium) and is not too exploitable since any player wishing to exploit it
- *   would have to suffer 5 days of being parked in an empty room.
- * Note2: Neither version of Baium should be a permanent spawn.  This script is fully capable of
- *   spawning the statue-version when the lock expires and switching it to the mob version promptly.
- *
- * Additional notes ( source http://aleenaresron.blogspot.com/2006_08_01_archive.html ):
- *   * Baium only first respawns five days after his last death. And from those five days he will
- *       respawn within 1-8 hours of his last death. So, you have to know his last time of death.
- *   * If by some freak chance you are the only one in Baium's chamber and NO ONE comes in
- *       [ha, ha] you or someone else will have to wake Baium. There is a good chance that Baium
- *       will automatically kill whoever wakes him. There are some people that have been able to
- *       wake him and not die, however if you've already gone through the trouble of getting the
- *       bloody fabric and camped him out and researched his spawn time, are you willing to take that
- *       chance that you'll wake him and not be able to finish your quest? Doubtful.
- *       [ this powerful attack vs the player who wakes him up is NOT yet implemented here]
- *   * once someone starts attacking Baium no one else can port into the chamber where he is.
- *       Unlike with the other raid bosses, you can just show up at any time as long as you are there
- *       when they die. Not true with Baium. Once he gets attacked, the port to Baium closes. byebye,
- *       see you in 5 days.  If nobody attacks baium for 30 minutes, he auto-despawns and unlocks the
- *       vortex
- * 
+ * Baium AI Note1: if the server gets rebooted while players are still fighting Baium, there is no lock, but players also lose their ability to wake baium up. However, should another person enter the room and wake him up, the players who had stayed inside may join the raid. This can be helpful for
+ * players who became victims of a reboot (they only need 1 new player to enter and wake up baium) and is not too exploitable since any player wishing to exploit it would have to suffer 5 days of being parked in an empty room. Note2: Neither version of Baium should be a permanent spawn. This script
+ * is fully capable of spawning the statue-version when the lock expires and switching it to the mob version promptly. Additional notes ( source http://aleenaresron.blogspot.com/2006_08_01_archive.html ): * Baium only first respawns five days after his last death. And from those five days he will
+ * respawn within 1-8 hours of his last death. So, you have to know his last time of death. * If by some freak chance you are the only one in Baium's chamber and NO ONE comes in [ha, ha] you or someone else will have to wake Baium. There is a good chance that Baium will automatically kill whoever
+ * wakes him. There are some people that have been able to wake him and not die, however if you've already gone through the trouble of getting the bloody fabric and camped him out and researched his spawn time, are you willing to take that chance that you'll wake him and not be able to finish your
+ * quest? Doubtful. [ this powerful attack vs the player who wakes him up is NOT yet implemented here] * once someone starts attacking Baium no one else can port into the chamber where he is. Unlike with the other raid bosses, you can just show up at any time as long as you are there when they die.
+ * Not true with Baium. Once he gets attacked, the port to Baium closes. byebye, see you in 5 days. If nobody attacks baium for 30 minutes, he auto-despawns and unlocks the vortex
  * @author Fulminus version 0.1
  */
 public class Baium extends L2AttackableAIScript
@@ -88,37 +68,40 @@ public class Baium extends L2AttackableAIScript
 	private static final int LIVE_BAIUM = 29020;
 	private static final int ARCHANGEL = 29021;
 	
-	//Baium status tracking
-	private static final byte ASLEEP = 0;  // baium is in the stone version, waiting to be woken up.  Entry is unlocked
-	private static final byte AWAKE = 1;   // baium is awake and fighting.  Entry is locked.
-	private static final byte DEAD = 2;    // baium has been killed and has not yet spawned.  Entry is locked
+	// Baium status tracking
+	private static final byte ASLEEP = 0; // baium is in the stone version, waiting to be woken up. Entry is unlocked
+	private static final byte AWAKE = 1; // baium is awake and fighting. Entry is locked.
+	private static final byte DEAD = 2; // baium has been killed and has not yet spawned. Entry is locked
 	
 	// fixed archangel spawnloc
-	private final static int ANGEL_LOCATION[][] =
+	private final static Location[] ANGEL_LOCATION =
 	{
-		{ 114239, 17168, 10080, 63544 },
-		{ 115780, 15564, 10080, 13620 },
-		{ 114880, 16236, 10080, 5400 },
-		{ 115168, 17200, 10080, 0 },
-		{ 115792, 16608, 10080, 0 },
+		new Location(114239, 17168, 10080, 63544),
+		new Location(115780, 15564, 10080, 13620),
+		new Location(114880, 16236, 10080, 5400),
+		new Location(115168, 17200, 10080, 0),
+		new Location(115792, 16608, 10080, 0)
 	};
 	
 	private long _LastAttackVsBaiumTime = 0;
 	private final List<L2Npc> _Minions = new ArrayList<L2Npc>(5);
 	private L2BossZone _Zone;
 	
-	public Baium (int questId, String name, String descr)
+	public Baium(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
 		
-		int[] mob = {LIVE_BAIUM};
-		this.registerMobs(mob);
+		int[] mob =
+		{
+			LIVE_BAIUM
+		};
+		registerMobs(mob);
 		
 		// Quest NPC starter initialization
 		addStartNpc(STONE_BAIUM, ANGELIC_VORTEX);
 		addTalkId(STONE_BAIUM, ANGELIC_VORTEX);
 		
-		_Zone = GrandBossManager.getInstance().getZone(113100,14500,10077);
+		_Zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
 		StatsSet info = GrandBossManager.getInstance().getStatsSet(LIVE_BAIUM);
 		int status = GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM);
 		if (status == DEAD)
@@ -127,17 +110,17 @@ public class Baium extends L2AttackableAIScript
 			long temp = (info.getLong("respawn_time") - System.currentTimeMillis());
 			if (temp > 0)
 			{
-				// the unlock time has not yet expired.  Mark Baium as currently locked (dead).  Setup a timer
+				// the unlock time has not yet expired. Mark Baium as currently locked (dead). Setup a timer
 				// to fire at the correct time (calculate the time between now and the unlock time,
 				// setup a timer to fire after that many msec)
 				startQuestTimer("baium_unlock", temp, null, null);
 			}
 			else
 			{
-				// the time has already expired while the server was offline.  Delete the saved time and
-				// immediately spawn the stone-baium.  Also the state need not be changed from ASLEEP
-				addSpawn(STONE_BAIUM,116033,17447,10104,40188,false,0);
-				GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM,ASLEEP);
+				// the time has already expired while the server was offline. Delete the saved time and
+				// immediately spawn the stone-baium. Also the state need not be changed from ASLEEP
+				addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
+				GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP);
 			}
 		}
 		else if (status == AWAKE)
@@ -148,40 +131,41 @@ public class Baium extends L2AttackableAIScript
 			int heading = info.getInteger("heading");
 			final int hp = info.getInteger("currentHP");
 			final int mp = info.getInteger("currentMP");
-			L2GrandBossInstance baium = (L2GrandBossInstance) addSpawn(LIVE_BAIUM,loc_x,loc_y,loc_z,heading,false,0);
+			L2GrandBossInstance baium = (L2GrandBossInstance) addSpawn(LIVE_BAIUM, loc_x, loc_y, loc_z, heading, false, 0);
 			GrandBossManager.getInstance().addBoss(baium);
 			final L2Npc _baium = baium;
-			ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() {
+			ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+			{
 				@Override
 				public void run()
 				{
 					try
 					{
-						_baium.setCurrentHpMp(hp,mp);
+						_baium.setCurrentHpMp(hp, mp);
 						_baium.setIsInvul(true);
 						_baium.setIsImmobilized(true);
 						_baium.setRunning();
 						_baium.broadcastSocialAction(2);
-						startQuestTimer("baium_wakeup",15000, _baium, null);
+						startQuestTimer("baium_wakeup", 15000, _baium, null);
 					}
 					catch (Exception e)
 					{
 						e.printStackTrace();
 					}
 				}
-			},100L);
+			}, 100L);
 		}
 		else
-			addSpawn(STONE_BAIUM,116033,17447,10104,40188,false,0);
+			addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
 	}
 	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		if (event.equalsIgnoreCase("baium_unlock"))
 		{
-			GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM,ASLEEP);
-			addSpawn(STONE_BAIUM,116033,17447,10104,40188,false,0);
+			GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP);
+			addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0);
 		}
 		else if (event.equalsIgnoreCase("skill_range") && npc != null)
 		{
@@ -196,13 +180,14 @@ public class Baium extends L2AttackableAIScript
 			if (npc.getNpcId() == LIVE_BAIUM)
 			{
 				npc.broadcastSocialAction(1);
-				npc.broadcastPacket(new Earthquake(npc.getX(), npc.getY(), npc.getZ(),40,5));
+				npc.broadcastPacket(new Earthquake(npc.getX(), npc.getY(), npc.getZ(), 40, 5));
 				// start monitoring baium's inactivity
 				_LastAttackVsBaiumTime = System.currentTimeMillis();
 				startQuestTimer("baium_despawn", 60000, npc, null, true);
 				startQuestTimer("skill_range", 500, npc, null, true);
 				final L2Npc baium = npc;
-				ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() {
+				ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+				{
 					@Override
 					public void run()
 					{
@@ -218,12 +203,12 @@ public class Baium extends L2AttackableAIScript
 							_log.log(Level.WARNING, "", e);
 						}
 					}
-				},11100L);
+				}, 11100L);
 				// TODO: the person who woke baium up should be knocked across the room, onto a wall, and
 				// lose massive amounts of HP.
 				for (int i = 0; i < ANGEL_LOCATION.length; i++)
 				{
-					L2Npc angel = addSpawn(ARCHANGEL, ANGEL_LOCATION[i][0], ANGEL_LOCATION[i][1], ANGEL_LOCATION[i][2], ANGEL_LOCATION[i][3], false, 0, true);
+					L2Npc angel = addSpawn(ARCHANGEL, ANGEL_LOCATION[i], false, 0, true);
 					angel.setIsInvul(true);
 					_Minions.add(angel);
 				}
@@ -237,7 +222,7 @@ public class Baium extends L2AttackableAIScript
 			{
 				// just in case the zone reference has been lost (somehow...), restore the reference
 				if (_Zone == null)
-					_Zone = GrandBossManager.getInstance().getZone(113100,14500,10077);
+					_Zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
 				if (_LastAttackVsBaiumTime + 1800000 < System.currentTimeMillis())
 				{
 					npc.deleteMe(); // despawn the live-baium
@@ -248,14 +233,14 @@ public class Baium extends L2AttackableAIScript
 							minion.deleteMe();
 						}
 					_Minions.clear();
-					addSpawn(STONE_BAIUM,116033,17447,10104,40188,false,0);  // spawn stone-baium
-					GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM,ASLEEP);    // mark that Baium is not awake any more
+					addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0); // spawn stone-baium
+					GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP); // mark that Baium is not awake any more
 					_Zone.oustAllPlayers();
 					cancelQuestTimer("baium_despawn", npc, null);
 				}
-				else if ((_LastAttackVsBaiumTime + 300000 < System.currentTimeMillis()) && npc.getCurrentHp() < ( ( npc.getMaxHp() * 3 ) / 4.0 ))
+				else if ((_LastAttackVsBaiumTime + 300000 < System.currentTimeMillis()) && npc.getCurrentHp() < ((npc.getMaxHp() * 3) / 4.0))
 				{
-					npc.setIsCastingNow(false); //just in case
+					npc.setIsCastingNow(false); // just in case
 					npc.setTarget(npc);
 					L2Skill skill = SkillTable.getInstance().getInfo(4135, 1);
 					if (skill.isMagic())
@@ -272,19 +257,19 @@ public class Baium extends L2AttackableAIScript
 					npc.setIsCastingNow(true);
 				}
 				else if (!_Zone.isInsideZone(npc))
-					npc.teleToLocation(116033,17447,10104);
+					npc.teleToLocation(116033, 17447, 10104);
 			}
 		}
 		return super.onAdvEvent(event, npc, player);
 	}
 	
 	@Override
-	public String onTalk(L2Npc npc,L2PcInstance player)
+	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		int npcId = npc.getNpcId();
 		String htmltext = "";
 		if (_Zone == null)
-			_Zone = GrandBossManager.getInstance().getZone(113100,14500,10077);
+			_Zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
 		if (_Zone == null)
 			return "<html><body>Angelic Vortex:<br>You may not enter while admin disabled this zone</body></html>";
 		if (npcId == STONE_BAIUM && GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM) == ASLEEP)
@@ -293,12 +278,13 @@ public class Baium extends L2AttackableAIScript
 			{
 				// once Baium is awaken, no more people may enter until he dies, the server reboots, or
 				// 30 minutes pass with no attacks made against Baium.
-				GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM,AWAKE);
+				GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, AWAKE);
 				npc.deleteMe();
 				L2GrandBossInstance baium = (L2GrandBossInstance) addSpawn(LIVE_BAIUM, npc, true);
 				GrandBossManager.getInstance().addBoss(baium);
 				final L2Npc _baium = baium;
-				ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() {
+				ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+				{
 					@Override
 					public void run()
 					{
@@ -307,7 +293,7 @@ public class Baium extends L2AttackableAIScript
 							_baium.setIsInvul(true);
 							_baium.setRunning();
 							_baium.broadcastSocialAction(2);
-							startQuestTimer("baium_wakeup",15000, _baium, null);
+							startQuestTimer("baium_wakeup", 15000, _baium, null);
 							_baium.setShowSummonAnimation(false);
 						}
 						catch (Throwable e)
@@ -315,7 +301,7 @@ public class Baium extends L2AttackableAIScript
 							_log.log(Level.WARNING, "", e);
 						}
 					}
-				},100L);
+				}, 100L);
 			}
 			else
 				htmltext = "Conditions are not right to wake up Baium";
@@ -324,18 +310,17 @@ public class Baium extends L2AttackableAIScript
 		{
 			if (player.isFlying())
 			{
-				//print "Player "+player.getName()+" attempted to enter Baium's lair while flying!";
+				// print "Player "+player.getName()+" attempted to enter Baium's lair while flying!";
 				return "<html><body>Angelic Vortex:<br>You may not enter while flying a wyvern</body></html>";
 			}
 			
-			if (GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM) == ASLEEP
-					&& player.getQuestState("baium").getQuestItemsCount(4295) > 0) // bloody fabric
+			if (GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM) == ASLEEP && player.getQuestState("baium").getQuestItemsCount(4295) > 0) // bloody fabric
 			{
-				player.getQuestState("baium").takeItems(4295,1);
+				player.getQuestState("baium").takeItems(4295, 1);
 				// allow entry for the player for the next 30 secs (more than enough time for the TP to happen)
 				// Note: this just means 30secs to get in, no limits on how long it takes before we get out.
-				_Zone.allowPlayerEntry(player,30);
-				player.teleToLocation(113100,14500,10077);
+				_Zone.allowPlayerEntry(player, 30);
+				player.teleToLocation(113100, 14500, 10077);
 			}
 			else
 				npc.showChatWindow(player, 1);
@@ -357,20 +342,20 @@ public class Baium extends L2AttackableAIScript
 		}
 		return super.onSpellFinished(npc, player, skill);
 	}
-
+	
 	@Override
 	public String onSpawn(L2Npc npc)
 	{
 		npc.disableCoreAI(true);
 		return super.onSpawn(npc);
 	}
-
+	
 	@Override
-	public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
 	{
 		if (!_Zone.isInsideZone(attacker))
 		{
-			attacker.reduceCurrentHp(attacker.getCurrentHp(),attacker,false,false, null);
+			attacker.reduceCurrentHp(attacker.getCurrentHp(), attacker, false, false, null);
 			return super.onAttack(npc, attacker, damage, isPet);
 		}
 		if (npc.isInvul())
@@ -395,7 +380,7 @@ public class Baium extends L2AttackableAIScript
 				if (sk_4258 == 0)
 				{
 					npc.setTarget(attacker);
-					L2Skill skill = SkillTable.getInstance().getInfo(4258,1);
+					L2Skill skill = SkillTable.getInstance().getInfo(4258, 1);
 					if (skill.isMagic())
 					{
 						if (npc.isMuted())
@@ -417,20 +402,20 @@ public class Baium extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		cancelQuestTimer("baium_despawn", npc, null);
 		npc.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
 		// spawn the "Teleportation Cubic" for 15 minutes (to allow players to exit the lair)
-		addSpawn(29055,115203,16620,10078,0,false,900000); ////should we teleport everyone out if the cubic despawns??
-		// "lock" baium for 5 days and 1 to 8 hours [i.e. 432,000,000 +  1*3,600,000 + random-less-than(8*3,600,000) millisecs]
-		long respawnTime = (long)Config.Interval_Of_Baium_Spawn + Rnd.get(Config.Random_Of_Baium_Spawn);
-		GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM,DEAD);
+		addSpawn(29055, 115203, 16620, 10078, 0, false, 900000); // //should we teleport everyone out if the cubic despawns??
+		// "lock" baium for 5 days and 1 to 8 hours [i.e. 432,000,000 + 1*3,600,000 + random-less-than(8*3,600,000) millisecs]
+		long respawnTime = (long) Config.Interval_Of_Baium_Spawn + Rnd.get(Config.Random_Of_Baium_Spawn);
+		GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, DEAD);
 		startQuestTimer("baium_unlock", respawnTime, null, null);
 		// also save the respawn time so that the info is maintained past reboots
 		StatsSet info = GrandBossManager.getInstance().getStatsSet(LIVE_BAIUM);
-		info.set("respawn_time",(System.currentTimeMillis()) + respawnTime);
-		GrandBossManager.getInstance().setStatsSet(LIVE_BAIUM,info);
+		info.set("respawn_time", (System.currentTimeMillis()) + respawnTime);
+		GrandBossManager.getInstance().setStatsSet(LIVE_BAIUM, info);
 		for (L2Npc minion : _Minions)
 			if (minion != null)
 			{
@@ -440,7 +425,7 @@ public class Baium extends L2AttackableAIScript
 		_Minions.clear();
 		if (getQuestTimer("skill_range", npc, null) != null)
 			getQuestTimer("skill_range", npc, null).cancel();
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	public L2Character getRandomTarget(L2Npc npc)
@@ -458,8 +443,7 @@ public class Baium extends L2AttackableAIScript
 							continue;
 					}
 					
-					if (((L2Character) obj).getZ() < ( npc.getZ() - 100 ) && ((L2Character) obj).getZ() > ( npc.getZ() + 100 )
-							|| !(GeoData.getInstance().canSeeTarget(((L2Character) obj).getX(), ((L2Character) obj).getY(), ((L2Character) obj).getZ(), npc.getX(), npc.getY(), npc.getZ())))
+					if (((L2Character) obj).getZ() < (npc.getZ() - 100) && ((L2Character) obj).getZ() > (npc.getZ() + 100) || !(GeoData.getInstance().canSeeTarget(((L2Character) obj).getX(), ((L2Character) obj).getY(), ((L2Character) obj).getZ(), npc.getX(), npc.getY(), npc.getZ())))
 						continue;
 				}
 				if (obj instanceof L2Playable || obj instanceof L2DecoyInstance)
@@ -502,13 +486,13 @@ public class Baium extends L2AttackableAIScript
 		{
 			_target = getRandomTarget(npc);
 			if (_target != null)
-				_skill = SkillTable.getInstance().getInfo(getRandomSkill(npc),1);
+				_skill = SkillTable.getInstance().getInfo(getRandomSkill(npc), 1);
 		}
 		
 		L2Character target = _target;
 		L2Skill skill = _skill;
 		if (skill == null)
-			skill = SkillTable.getInstance().getInfo(getRandomSkill(npc),1);
+			skill = SkillTable.getInstance().getInfo(getRandomSkill(npc), 1);
 		
 		if (skill.isMagic())
 		{
@@ -535,7 +519,7 @@ public class Baium extends L2AttackableAIScript
 			_target = null;
 			_skill = null;
 			if (getDist(skill.getCastRange()) > 0)
-				npc.broadcastPacket(new MoveToPawn(npc,target,getDist(skill.getCastRange())));
+				npc.broadcastPacket(new MoveToPawn(npc, target, getDist(skill.getCastRange())));
 			try
 			{
 				Thread.sleep(1000);
@@ -543,7 +527,9 @@ public class Baium extends L2AttackableAIScript
 				npc.doCast(skill);
 			}
 			catch (Exception e)
-			{e.printStackTrace();}
+			{
+				e.printStackTrace();
+			}
 		}
 		else
 		{
@@ -555,46 +541,46 @@ public class Baium extends L2AttackableAIScript
 	public int getRandomSkill(L2Npc npc)
 	{
 		int skill;
-		if( npc.getCurrentHp() > ( ( npc.getMaxHp() * 3 ) / 4.0 ) )
+		if (npc.getCurrentHp() > ((npc.getMaxHp() * 3) / 4.0))
 		{
-			if( Rnd.get(100) < 10 )
+			if (Rnd.get(100) < 10)
 				skill = 4128;
-			else if( Rnd.get(100) < 10 )
+			else if (Rnd.get(100) < 10)
 				skill = 4129;
 			else
 				skill = 4127;
 		}
-		else if( npc.getCurrentHp() > ( ( npc.getMaxHp() * 2 ) / 4.0) )
+		else if (npc.getCurrentHp() > ((npc.getMaxHp() * 2) / 4.0))
 		{
-			if( Rnd.get(100) < 10 )
+			if (Rnd.get(100) < 10)
 				skill = 4131;
-			else if( Rnd.get(100) < 10 )
+			else if (Rnd.get(100) < 10)
 				skill = 4128;
-			else if( Rnd.get(100) < 10 )
+			else if (Rnd.get(100) < 10)
 				skill = 4129;
 			else
 				skill = 4127;
 		}
-		else if( npc.getCurrentHp() > ( ( npc.getMaxHp() * 1 ) / 4.0 ) )
+		else if (npc.getCurrentHp() > ((npc.getMaxHp() * 1) / 4.0))
 		{
-			if( Rnd.get(100) < 10 )
+			if (Rnd.get(100) < 10)
 				skill = 4130;
-			else if( Rnd.get(100) < 10 )
+			else if (Rnd.get(100) < 10)
 				skill = 4131;
-			else if( Rnd.get(100) < 10 )
+			else if (Rnd.get(100) < 10)
 				skill = 4128;
-			else if( Rnd.get(100) < 10 )
+			else if (Rnd.get(100) < 10)
 				skill = 4129;
 			else
 				skill = 4127;
 		}
-		else if( Rnd.get(100) < 10 )
+		else if (Rnd.get(100) < 10)
 			skill = 4130;
-		else if( Rnd.get(100) < 10 )
+		else if (Rnd.get(100) < 10)
 			skill = 4131;
-		else if( Rnd.get(100) < 10 )
+		else if (Rnd.get(100) < 10)
 			skill = 4128;
-		else if( Rnd.get(100) < 10 )
+		else if (Rnd.get(100) < 10)
 			skill = 4129;
 		else
 			skill = 4127;
@@ -602,7 +588,7 @@ public class Baium extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onSkillSee (L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
 	{
 		if (npc.isInvul())
 		{
@@ -616,7 +602,7 @@ public class Baium extends L2AttackableAIScript
 	public int getDist(int range)
 	{
 		int dist = 0;
-		switch(range)
+		switch (range)
 		{
 			case -1:
 				break;
@@ -624,7 +610,7 @@ public class Baium extends L2AttackableAIScript
 				dist = 85;
 				break;
 			default:
-				dist = range-85;
+				dist = range - 85;
 				break;
 		}
 		return dist;
@@ -635,4 +621,4 @@ public class Baium extends L2AttackableAIScript
 		// Quest class and state definition
 		new Baium(-1, "baium", "ai");
 	}
-}
+}

+ 31 - 114
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java

@@ -31,6 +31,7 @@ import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -108,7 +109,7 @@ public class Beleth extends L2AttackableAIScript
 		DoorTable.getInstance().getDoor(20240001).openMe();
 	}
 	
-	private static L2Npc spawn(int npcId, int[] loc, int instanceId)
+	private static L2Npc spawn(int npcId, Location loc)
 	{
 		try
 		{
@@ -116,11 +117,8 @@ public class Beleth extends L2AttackableAIScript
 			if (template != null)
 			{
 				L2Spawn spawn = new L2Spawn(template);
-				spawn.setInstanceId(instanceId);
-				spawn.setHeading(loc[3]);
-				spawn.setLocx(loc[0]);
-				spawn.setLocy(loc[1]);
-				spawn.setLocz(loc[2] + 20);
+				spawn.setInstanceId(loc.getInstanceId());
+				spawn.setLocation(loc);
 				spawn.setAmount(spawn.getAmount() + 1);
 				return spawn.doSpawn();
 			}
@@ -194,22 +192,10 @@ public class Beleth extends L2AttackableAIScript
 								npc.deleteMe();
 							}
 						}
-						camera = spawn(29120, new int[]
-						{
-							16323, 213142, -9357, 0
-						}, instanceId);
-						camera2 = spawn(29121, new int[]
-						{
-							16323, 210741, -9357, 0
-						}, instanceId);
-						camera3 = spawn(29122, new int[]
-						{
-							16323, 213170, -9357, 0
-						}, instanceId);
-						camera4 = spawn(29123, new int[]
-						{
-							16323, 214917, -9356, 0
-						}, instanceId);
+						camera = spawn(29120, new Location(16323, 213142, -9357, 0, instanceId));
+						camera2 = spawn(29121, new Location(16323, 210741, -9357, 0, instanceId));
+						camera3 = spawn(29122, new Location(16323, 213170, -9357, 0, instanceId));
+						camera4 = spawn(29123, new Location(16323, 214917, -9356, 0, instanceId));
 						_zone.broadcastPacket(new SpecialCamera(camera.getObjectId(), 400, 75, -25, 0, 2500, 0, 0, 1, 0));
 						_zone.broadcastPacket(new SpecialCamera(camera.getObjectId(), 400, 75, -25, 0, 2500, 0, 0, 1, 0));
 						ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(2), 300);
@@ -243,10 +229,7 @@ public class Beleth extends L2AttackableAIScript
 						ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(8), 6000);
 						break;
 					case 8:
-						spawn(29125, new int[]
-						{
-							16323, 214917, -9356, 0
-						}, instanceId);
+						spawn(29125, new Location(16323, 214917, -9356, 0, instanceId));
 						_zone.broadcastPacket(new SpecialCamera(camera4.getObjectId(), 900, 255, 0, 0, 1500, 0, 10, 1, 0));
 						ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(9), 1000);
 						break;
@@ -255,10 +238,7 @@ public class Beleth extends L2AttackableAIScript
 						ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(10), 3000);
 						break;
 					case 10:
-						beleth = spawn(29118, new int[]
-						{
-							16321, 214211, -9352, 49369
-						}, instanceId);
+						beleth = spawn(29118, new Location(16321, 214211, -9352, 49369, instanceId));
 						ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(11), 200);
 						break;
 					case 11:
@@ -267,10 +247,7 @@ public class Beleth extends L2AttackableAIScript
 						{
 							int x = (int) ((150 * Math.cos(i * 1.046666667)) + 16323);
 							int y = (int) ((150 * Math.sin(i * 1.046666667)) + 213059);
-							L2Npc minion = spawn(29119, new int[]
-							{
-								x, y, -9357, 49152
-							}, beleth.getInstanceId());
+							L2Npc minion = spawn(29119, new Location(x, y, -9357, 49152, beleth.getInstanceId()));
 							minion.setShowSummonAnimation(true);
 							minion.decayMe();
 							minions.add(minion);
@@ -357,10 +334,7 @@ public class Beleth extends L2AttackableAIScript
 						break;
 					case 27:
 						beleth.doDie(null);
-						camera = spawn(29122, new int[]
-						{
-							16323, 213170, -9357, 0
-						}, instanceId);
+						camera = spawn(29122, new Location(16323, 213170, -9357, 0, instanceId));
 						_zone.broadcastPacket(new SpecialCamera(camera.getObjectId(), 400, 290, 25, 0, 10000, 0, 0, 1, 0));
 						_zone.broadcastPacket(new SpecialCamera(camera.getObjectId(), 400, 290, 25, 0, 10000, 0, 0, 1, 0));
 						_zone.broadcastPacket(new SpecialCamera(camera.getObjectId(), 400, 110, 25, 4000, 10000, 0, 0, 1, 0));
@@ -383,10 +357,7 @@ public class Beleth extends L2AttackableAIScript
 					case 31:
 						priest.spawnMe();
 						beleth.deleteMe();
-						camera2 = spawn(29121, new int[]
-						{
-							14056, 213170, -9357, 0
-						}, instanceId);
+						camera2 = spawn(29121, new Location(14056, 213170, -9357, 0, instanceId));
 						ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(32), 3500);
 						break;
 					case 32:
@@ -405,10 +376,7 @@ public class Beleth extends L2AttackableAIScript
 						movie = false;
 						break;
 					case 333:
-						beleth = spawn(29118, new int[]
-						{
-							16323, 213170, -9357, 49152
-						}, 0);
+						beleth = spawn(29118, new Location(16323, 213170, -9357, 49152));
 						break;
 				
 				}
@@ -463,23 +431,14 @@ public class Beleth extends L2AttackableAIScript
 				npc.deleteMe();
 			}
 			movie = true;
-			beleth = spawn(29118, new int[]
-			{
-				16323, 213170, -9357, 49152
-			}, 0);
+			beleth = spawn(29118, new Location(16323, 213170, -9357, 49152));
 			beleth.setIsInvul(true);
 			beleth.setIsImmobilized(true);
 			beleth.disableAllSkills();
-			priest = spawn(29128, new int[]
-			{
-				beleth.getX(), beleth.getY(), beleth.getZ(), beleth.getHeading()
-			}, 0);
+			priest = spawn(29128, new Location(beleth));
 			priest.setShowSummonAnimation(true);
 			priest.decayMe();
-			spawn(32470, new int[]
-			{
-				12470, 215607, -9381, 49152
-			}, 0);
+			spawn(32470, new Location(12470, 215607, -9381, 49152));
 			ThreadPoolManager.getInstance().scheduleGeneral(new Spawn(27), 1000);
 		}
 		else if (npc.getNpcId() == 29119)
@@ -705,10 +664,7 @@ public class Beleth extends L2AttackableAIScript
 			a++;
 			int x = (int) ((650 * Math.cos(i * 0.39)) + 16323);
 			int y = (int) ((650 * Math.sin(i * 0.39)) + 213170);
-			npc = spawn(29119, new int[]
-			{
-				x, y, -9357, 49152
-			}, 0);
+			npc = spawn(29119, new Location(x, y, -9357, 49152));
 			minions.add(npc);
 			if (a >= 2)
 			{
@@ -722,93 +678,54 @@ public class Beleth extends L2AttackableAIScript
 		{
 			xm[i] = (int) ((1700 * Math.cos((i * 1.57) + 0.78)) + 16323);
 			ym[i] = (int) ((1700 * Math.sin((i * 1.57) + 0.78)) + 213170);
-			npc = spawn(29119, new int[]
-			{
-				xm[i], ym[i], -9357, 49152
-			}, 0);
+			npc = spawn(29119, new Location(xm[i], ym[i], -9357, 49152));
 			npc.setIsOverloaded(true);
 			minions.add(npc);
 		}
 		xm[4] = (xm[0] + xm[1]) / 2;
 		ym[4] = (ym[0] + ym[1]) / 2;
-		npc = spawn(29119, new int[]
-		{
-			xm[4], ym[4], -9357, 49152
-		}, 0);
+		npc = spawn(29119, new Location(xm[4], ym[4], -9357, 49152));
 		npc.setIsOverloaded(true);
 		minions.add(npc);
 		xm[5] = (xm[1] + xm[2]) / 2;
 		ym[5] = (ym[1] + ym[2]) / 2;
-		npc = spawn(29119, new int[]
-		{
-			xm[5], ym[5], -9357, 49152
-		}, 0);
+		npc = spawn(29119, new Location(xm[5], ym[5], -9357, 49152));
 		npc.setIsOverloaded(true);
 		minions.add(npc);
 		xm[6] = (xm[2] + xm[3]) / 2;
 		ym[6] = (ym[2] + ym[3]) / 2;
-		npc = spawn(29119, new int[]
-		{
-			xm[6], ym[6], -9357, 49152
-		}, 0);
+		npc = spawn(29119, new Location(xm[6], ym[6], -9357, 49152));
 		npc.setIsOverloaded(true);
 		minions.add(npc);
 		xm[7] = (xm[3] + xm[0]) / 2;
 		ym[7] = (ym[3] + ym[0]) / 2;
-		npc = spawn(29119, new int[]
-		{
-			xm[7], ym[7], -9357, 49152
-		}, 0);
+		npc = spawn(29119, new Location(xm[7], ym[7], -9357, 49152));
 		npc.setIsOverloaded(true);
 		minions.add(npc);
 		xm[8] = (xm[0] + xm[4]) / 2;
 		ym[8] = (ym[0] + ym[4]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[8], ym[8], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[8], ym[8], -9357, 49152)));
 		xm[9] = (xm[4] + xm[1]) / 2;
 		ym[9] = (ym[4] + ym[1]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[9], ym[9], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[9], ym[9], -9357, 49152)));
 		xm[10] = (xm[1] + xm[5]) / 2;
 		ym[10] = (ym[1] + ym[5]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[10], ym[10], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[10], ym[10], -9357, 49152)));
 		xm[11] = (xm[5] + xm[2]) / 2;
 		ym[11] = (ym[5] + ym[2]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[11], ym[11], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[11], ym[11], -9357, 49152)));
 		xm[12] = (xm[2] + xm[6]) / 2;
 		ym[12] = (ym[2] + ym[6]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[12], ym[12], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[12], ym[12], -9357, 49152)));
 		xm[13] = (xm[6] + xm[3]) / 2;
 		ym[13] = (ym[6] + ym[3]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[13], ym[13], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[13], ym[13], -9357, 49152)));
 		xm[14] = (xm[3] + xm[7]) / 2;
 		ym[14] = (ym[3] + ym[7]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[14], ym[14], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[14], ym[14], -9357, 49152)));
 		xm[15] = (xm[7] + xm[0]) / 2;
 		ym[15] = (ym[7] + ym[0]) / 2;
-		minions.add(spawn(29119, new int[]
-		{
-			xm[15], ym[15], -9357, 49152
-		}, 0));
+		minions.add(spawn(29119, new Location(xm[15], ym[15], -9357, 49152)));
 		allowObjectId = minions.get(Rnd.get(minions.size())).getObjectId();
 		attacked = false;
 	}

+ 16 - 17
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Core.java

@@ -33,7 +33,6 @@ import com.l2jserver.util.Rnd;
 
 /**
  * Core AI
- * 
  * @author DrLecter Revised By Emperorc
  */
 public class Core extends L2AttackableAIScript
@@ -41,15 +40,15 @@ public class Core extends L2AttackableAIScript
 	private static final int CORE = 29006;
 	private static final int DEATH_KNIGHT = 29007;
 	private static final int DOOM_WRAITH = 29008;
-	//private static final int DICOR = 29009;
-	//private static final int VALIDUS = 29010;
+	// private static final int DICOR = 29009;
+	// private static final int VALIDUS = 29010;
 	private static final int SUSCEPTOR = 29011;
-	//private static final int PERUM = 29012;
-	//private static final int PREMO = 29013;
+	// private static final int PERUM = 29012;
+	// private static final int PREMO = 29013;
 	
-	//CORE Status Tracking :
-	private static final byte ALIVE = 0; //Core is spawned.
-	private static final byte DEAD = 1; //Core has been killed.
+	// CORE Status Tracking :
+	private static final byte ALIVE = 0; // Core is spawned.
+	private static final byte DEAD = 1; // Core has been killed.
 	
 	private static boolean _FirstAttacked;
 	
@@ -61,7 +60,7 @@ public class Core extends L2AttackableAIScript
 		
 		int[] mobs =
 		{
-				CORE, DEATH_KNIGHT, DOOM_WRAITH, SUSCEPTOR
+			CORE, DEATH_KNIGHT, DOOM_WRAITH, SUSCEPTOR
 		};
 		registerMobs(mobs);
 		
@@ -112,26 +111,26 @@ public class Core extends L2AttackableAIScript
 	{
 		GrandBossManager.getInstance().addBoss(npc);
 		npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
-		//Spawn minions
+		// Spawn minions
 		L2Attackable mob;
 		for (int i = 0; i < 5; i++)
 		{
 			int x = 16800 + i * 360;
-			mob = (L2Attackable)addSpawn(DEATH_KNIGHT, x, 110000, npc.getZ(), 280 + Rnd.get(40), false, 0);
+			mob = (L2Attackable) addSpawn(DEATH_KNIGHT, x, 110000, npc.getZ(), 280 + Rnd.get(40), false, 0);
 			mob.setIsRaidMinion(true);
 			Minions.add(mob);
-			mob = (L2Attackable)addSpawn(DEATH_KNIGHT, x, 109000, npc.getZ(), 280 + Rnd.get(40), false, 0);
+			mob = (L2Attackable) addSpawn(DEATH_KNIGHT, x, 109000, npc.getZ(), 280 + Rnd.get(40), false, 0);
 			mob.setIsRaidMinion(true);
 			Minions.add(mob);
 			int x2 = 16800 + i * 600;
-			mob = (L2Attackable)addSpawn(DOOM_WRAITH, x2, 109300, npc.getZ(), 280 + Rnd.get(40), false, 0);
+			mob = (L2Attackable) addSpawn(DOOM_WRAITH, x2, 109300, npc.getZ(), 280 + Rnd.get(40), false, 0);
 			mob.setIsRaidMinion(true);
 			Minions.add(mob);
 		}
 		for (int i = 0; i < 4; i++)
 		{
 			int x = 16800 + i * 450;
-			mob = (L2Attackable)addSpawn(SUSCEPTOR, x, 110300, npc.getZ(), 280 + Rnd.get(40), false, 0);
+			mob = (L2Attackable) addSpawn(SUSCEPTOR, x, 110300, npc.getZ(), 280 + Rnd.get(40), false, 0);
 			mob.setIsRaidMinion(true);
 			Minions.add(mob);
 		}
@@ -148,7 +147,7 @@ public class Core extends L2AttackableAIScript
 		}
 		else if (event.equalsIgnoreCase("spawn_minion"))
 		{
-			L2Attackable mob = (L2Attackable)addSpawn(npc.getNpcId(), npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0);
+			L2Attackable mob = (L2Attackable) addSpawn(npc.getNpcId(), npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0);
 			mob.setIsRaidMinion(true);
 			Minions.add(mob);
 		}
@@ -200,7 +199,7 @@ public class Core extends L2AttackableAIScript
 			addSpawn(31842, 16502, 110165, -6394, 0, false, 900000);
 			addSpawn(31842, 18948, 110166, -6397, 0, false, 900000);
 			GrandBossManager.getInstance().setBossStatus(CORE, DEAD);
-			//time is 60hour	+/- 23hour
+			// time is 60hour +/- 23hour
 			long respawnTime = (long) Config.Interval_Of_Core_Spawn + Rnd.get(Config.Random_Of_Core_Spawn);
 			startQuestTimer("core_unlock", respawnTime, null, null);
 			// also save the respawn time so that the info is maintained past reboots
@@ -223,4 +222,4 @@ public class Core extends L2AttackableAIScript
 		// now call the constructor (starts up the ai)
 		new Core(-1, "core", "ai");
 	}
-}
+}

+ 83 - 80
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/DarkWaterDragon.java

@@ -14,7 +14,6 @@
  */
 package ai.individual;
 
-
 import javolution.util.FastMap;
 import javolution.util.FastSet;
 import ai.group_template.L2AttackableAIScript;
@@ -34,104 +33,108 @@ public class DarkWaterDragon extends L2AttackableAIScript
 	private static final int FAFURION = 18482;
 	private static final int DETRACTOR1 = 22270;
 	private static final int DETRACTOR2 = 22271;
-	private static FastSet<Integer> secondSpawn = new FastSet<Integer>(); //Used to track if second Shades were already spawned
-	private static FastSet<Integer> myTrackingSet = new FastSet<Integer>(); //Used to track instances of npcs
-	private static FastMap<Integer, L2PcInstance> _idmap = new FastMap<Integer, L2PcInstance>().shared(); //Used to track instances of npcs
+	private static FastSet<Integer> secondSpawn = new FastSet<Integer>(); // Used to track if second Shades were already spawned
+	private static FastSet<Integer> myTrackingSet = new FastSet<Integer>(); // Used to track instances of npcs
+	private static FastMap<Integer, L2PcInstance> _idmap = new FastMap<Integer, L2PcInstance>().shared(); // Used to track instances of npcs
 	
 	public DarkWaterDragon(int id, String name, String descr)
 	{
-		super(id,name,descr);
-		int[] mobs = {DRAGON, SHADE1, SHADE2, FAFURION, DETRACTOR1, DETRACTOR2};
-		this.registerMobs(mobs, QuestEventType.ON_KILL, QuestEventType.ON_SPAWN, QuestEventType.ON_ATTACK);
+		super(id, name, descr);
+		int[] mobs =
+		{
+			DRAGON, SHADE1, SHADE2, FAFURION, DETRACTOR1, DETRACTOR2
+		};
+		registerMobs(mobs, QuestEventType.ON_KILL, QuestEventType.ON_SPAWN, QuestEventType.ON_ATTACK);
 		myTrackingSet.clear();
 		secondSpawn.clear();
 	}
+	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		if (npc != null)
 		{
-			if (event.equalsIgnoreCase("first_spawn")) //timer to start timer "1"
+			if (event.equalsIgnoreCase("first_spawn")) // timer to start timer "1"
 			{
-				this.startQuestTimer("1",40000, npc, null, true); //spawns detractor every 40 seconds
+				startQuestTimer("1", 40000, npc, null, true); // spawns detractor every 40 seconds
 			}
-			else if (event.equalsIgnoreCase("second_spawn")) //timer to start timer "2"
+			else if (event.equalsIgnoreCase("second_spawn")) // timer to start timer "2"
 			{
-				this.startQuestTimer("2",40000, npc, null, true); //spawns detractor every 40 seconds
+				startQuestTimer("2", 40000, npc, null, true); // spawns detractor every 40 seconds
 			}
-			else if (event.equalsIgnoreCase("third_spawn")) //timer to start timer "3"
+			else if (event.equalsIgnoreCase("third_spawn")) // timer to start timer "3"
 			{
-				this.startQuestTimer("3",40000, npc, null, true); //spawns detractor every 40 seconds
+				startQuestTimer("3", 40000, npc, null, true); // spawns detractor every 40 seconds
 			}
-			else if (event.equalsIgnoreCase("fourth_spawn")) //timer to start timer "4"
+			else if (event.equalsIgnoreCase("fourth_spawn")) // timer to start timer "4"
 			{
-				this.startQuestTimer("4",40000, npc, null, true); //spawns detractor every 40 seconds
+				startQuestTimer("4", 40000, npc, null, true); // spawns detractor every 40 seconds
 			}
-			else if (event.equalsIgnoreCase("1")) //spawns a detractor
+			else if (event.equalsIgnoreCase("1")) // spawns a detractor
 			{
-				this.addSpawn(DETRACTOR1,(npc.getX()+100),(npc.getY()+100),npc.getZ(),0,false,40000);
+				addSpawn(DETRACTOR1, (npc.getX() + 100), (npc.getY() + 100), npc.getZ(), 0, false, 40000);
 			}
-			else if (event.equalsIgnoreCase("2")) //spawns a detractor
+			else if (event.equalsIgnoreCase("2")) // spawns a detractor
 			{
-				this.addSpawn(DETRACTOR2,(npc.getX()+100),(npc.getY()-100),npc.getZ(),0,false,40000);
+				addSpawn(DETRACTOR2, (npc.getX() + 100), (npc.getY() - 100), npc.getZ(), 0, false, 40000);
 			}
-			else if (event.equalsIgnoreCase("3")) //spawns a detractor
+			else if (event.equalsIgnoreCase("3")) // spawns a detractor
 			{
-				this.addSpawn(DETRACTOR1,(npc.getX()-100),(npc.getY()+100),npc.getZ(),0,false,40000);
+				addSpawn(DETRACTOR1, (npc.getX() - 100), (npc.getY() + 100), npc.getZ(), 0, false, 40000);
 			}
-			else if (event.equalsIgnoreCase("4")) //spawns a detractor
+			else if (event.equalsIgnoreCase("4")) // spawns a detractor
 			{
-				this.addSpawn(DETRACTOR2,(npc.getX()-100),(npc.getY()-100),npc.getZ(),0,false,40000);
+				addSpawn(DETRACTOR2, (npc.getX() - 100), (npc.getY() - 100), npc.getZ(), 0, false, 40000);
 			}
-			else if (event.equalsIgnoreCase("fafurion_despawn"))    //Fafurion Kindred disappears and drops reward
+			else if (event.equalsIgnoreCase("fafurion_despawn")) // Fafurion Kindred disappears and drops reward
 			{
-				this.cancelQuestTimer("fafurion_poison", npc, null);
-				this.cancelQuestTimer("1", npc, null);
-				this.cancelQuestTimer("2", npc, null);
-				this.cancelQuestTimer("3", npc, null);
-				this.cancelQuestTimer("4", npc, null);
+				cancelQuestTimer("fafurion_poison", npc, null);
+				cancelQuestTimer("1", npc, null);
+				cancelQuestTimer("2", npc, null);
+				cancelQuestTimer("3", npc, null);
+				cancelQuestTimer("4", npc, null);
 				
 				myTrackingSet.remove(npc.getObjectId());
 				player = _idmap.remove(npc.getObjectId());
-				if(player != null) //You never know ...
-					((L2Attackable)npc).doItemDrop(NpcTable.getInstance().getTemplate(18485), player);
+				if (player != null) // You never know ...
+					((L2Attackable) npc).doItemDrop(NpcTable.getInstance().getTemplate(18485), player);
 				
 				npc.deleteMe();
 			}
-			else if (event.equalsIgnoreCase("fafurion_poison"))    //Reduces Fafurions hp like it is poisoned
+			else if (event.equalsIgnoreCase("fafurion_poison")) // Reduces Fafurions hp like it is poisoned
 			{
 				if (npc.getCurrentHp() <= 500)
 				{
-					this.cancelQuestTimer("fafurion_despawn", npc, null);
-					this.cancelQuestTimer("first_spawn", npc, null);
-					this.cancelQuestTimer("second_spawn", npc, null);
-					this.cancelQuestTimer("third_spawn", npc, null);
-					this.cancelQuestTimer("fourth_spawn", npc, null);
-					this.cancelQuestTimer("1", npc, null);
-					this.cancelQuestTimer("2", npc, null);
-					this.cancelQuestTimer("3", npc, null);
-					this.cancelQuestTimer("4", npc, null);
+					cancelQuestTimer("fafurion_despawn", npc, null);
+					cancelQuestTimer("first_spawn", npc, null);
+					cancelQuestTimer("second_spawn", npc, null);
+					cancelQuestTimer("third_spawn", npc, null);
+					cancelQuestTimer("fourth_spawn", npc, null);
+					cancelQuestTimer("1", npc, null);
+					cancelQuestTimer("2", npc, null);
+					cancelQuestTimer("3", npc, null);
+					cancelQuestTimer("4", npc, null);
 					myTrackingSet.remove(npc.getObjectId());
 					_idmap.remove(npc.getObjectId());
 				}
-				npc.reduceCurrentHp(500, npc, null); //poison kills Fafurion if he is not healed
+				npc.reduceCurrentHp(500, npc, null); // poison kills Fafurion if he is not healed
 			}
 		}
-		return super.onAdvEvent(event,npc,player);
+		return super.onAdvEvent(event, npc, player);
 	}
 	
 	@Override
-	public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
 	{
 		int npcId = npc.getNpcId();
 		int npcObjId = npc.getObjectId();
 		if (npcId == DRAGON)
 		{
-			if (!myTrackingSet.contains(npcObjId)) //this allows to handle multiple instances of npc
+			if (!myTrackingSet.contains(npcObjId)) // this allows to handle multiple instances of npc
 			{
 				myTrackingSet.add(npcObjId);
-				//Spawn first 5 shades on first attack on Dark Water Dragon
-				L2Character originalAttacker = isPet? attacker.getPet(): attacker;
+				// Spawn first 5 shades on first attack on Dark Water Dragon
+				L2Character originalAttacker = isPet ? attacker.getPet() : attacker;
 				spawnShade(originalAttacker, SHADE1, npc.getX() + 100, npc.getY() + 100, npc.getZ());
 				spawnShade(originalAttacker, SHADE2, npc.getX() + 100, npc.getY() - 100, npc.getZ());
 				spawnShade(originalAttacker, SHADE1, npc.getX() - 100, npc.getY() + 100, npc.getZ());
@@ -141,8 +144,8 @@ public class DarkWaterDragon extends L2AttackableAIScript
 			else if (npc.getCurrentHp() < (npc.getMaxHp() / 2.0) && !(secondSpawn.contains(npcObjId)))
 			{
 				secondSpawn.add(npcObjId);
-				//Spawn second 5 shades on half hp of on Dark Water Dragon
-				L2Character originalAttacker = isPet? attacker.getPet(): attacker;
+				// Spawn second 5 shades on half hp of on Dark Water Dragon
+				L2Character originalAttacker = isPet ? attacker.getPet() : attacker;
 				spawnShade(originalAttacker, SHADE2, npc.getX() + 100, npc.getY() + 100, npc.getZ());
 				spawnShade(originalAttacker, SHADE1, npc.getX() + 100, npc.getY() - 100, npc.getZ());
 				spawnShade(originalAttacker, SHADE2, npc.getX() - 100, npc.getY() + 100, npc.getZ());
@@ -154,7 +157,7 @@ public class DarkWaterDragon extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		int npcId = npc.getNpcId();
 		int npcObjId = npc.getObjectId();
@@ -162,29 +165,29 @@ public class DarkWaterDragon extends L2AttackableAIScript
 		{
 			myTrackingSet.remove(npcObjId);
 			secondSpawn.remove(npcObjId);
-			L2Attackable faf = (L2Attackable) this.addSpawn(FAFURION,npc.getX(),npc.getY(),npc.getZ(),0,false,0); //spawns Fafurion Kindred when Dard Water Dragon is dead
-			_idmap.put(faf.getObjectId(),killer);
+			L2Attackable faf = (L2Attackable) addSpawn(FAFURION, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0); // spawns Fafurion Kindred when Dard Water Dragon is dead
+			_idmap.put(faf.getObjectId(), killer);
 		}
 		else if (npcId == FAFURION)
 		{
-			this.cancelQuestTimer("fafurion_poison", npc, null);
-			this.cancelQuestTimer("fafurion_despawn", npc, null);
-			this.cancelQuestTimer("first_spawn", npc, null);
-			this.cancelQuestTimer("second_spawn", npc, null);
-			this.cancelQuestTimer("third_spawn", npc, null);
-			this.cancelQuestTimer("fourth_spawn", npc, null);
-			this.cancelQuestTimer("1", npc, null);
-			this.cancelQuestTimer("2", npc, null);
-			this.cancelQuestTimer("3", npc, null);
-			this.cancelQuestTimer("4", npc, null);
+			cancelQuestTimer("fafurion_poison", npc, null);
+			cancelQuestTimer("fafurion_despawn", npc, null);
+			cancelQuestTimer("first_spawn", npc, null);
+			cancelQuestTimer("second_spawn", npc, null);
+			cancelQuestTimer("third_spawn", npc, null);
+			cancelQuestTimer("fourth_spawn", npc, null);
+			cancelQuestTimer("1", npc, null);
+			cancelQuestTimer("2", npc, null);
+			cancelQuestTimer("3", npc, null);
+			cancelQuestTimer("4", npc, null);
 			myTrackingSet.remove(npcObjId);
 			_idmap.remove(npcObjId);
 		}
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	@Override
-	public String onSpawn (L2Npc npc)
+	public String onSpawn(L2Npc npc)
 	{
 		int npcId = npc.getNpcId();
 		int npcObjId = npc.getObjectId();
@@ -193,19 +196,19 @@ public class DarkWaterDragon extends L2AttackableAIScript
 			if (!myTrackingSet.contains(npcObjId))
 			{
 				myTrackingSet.add(npcObjId);
-				//Spawn 4 Detractors on spawn of Fafurion
+				// Spawn 4 Detractors on spawn of Fafurion
 				int x = npc.getX();
 				int y = npc.getY();
-				this.addSpawn(DETRACTOR2,x+100,y+100,npc.getZ(),0,false,40000);
-				this.addSpawn(DETRACTOR1,x+100,y-100,npc.getZ(),0,false,40000);
-				this.addSpawn(DETRACTOR2,x-100,y+100,npc.getZ(),0,false,40000);
-				this.addSpawn(DETRACTOR1,x-100,y-100,npc.getZ(),0,false,40000);
-				this.startQuestTimer("first_spawn",2000, npc, null); //timer to delay timer "1"
-				this.startQuestTimer("second_spawn",4000, npc, null); //timer to delay timer "2"
-				this.startQuestTimer("third_spawn",8000, npc, null); //timer to delay timer "3"
-				this.startQuestTimer("fourth_spawn",10000, npc, null); //timer to delay timer "4"
-				this.startQuestTimer("fafurion_poison",3000, npc, null, true); //Every three seconds reduces Fafurions hp like it is poisoned
-				this.startQuestTimer("fafurion_despawn",120000, npc, null); //Fafurion Kindred disappears after two minutes
+				addSpawn(DETRACTOR2, x + 100, y + 100, npc.getZ(), 0, false, 40000);
+				addSpawn(DETRACTOR1, x + 100, y - 100, npc.getZ(), 0, false, 40000);
+				addSpawn(DETRACTOR2, x - 100, y + 100, npc.getZ(), 0, false, 40000);
+				addSpawn(DETRACTOR1, x - 100, y - 100, npc.getZ(), 0, false, 40000);
+				startQuestTimer("first_spawn", 2000, npc, null); // timer to delay timer "1"
+				startQuestTimer("second_spawn", 4000, npc, null); // timer to delay timer "2"
+				startQuestTimer("third_spawn", 8000, npc, null); // timer to delay timer "3"
+				startQuestTimer("fourth_spawn", 10000, npc, null); // timer to delay timer "4"
+				startQuestTimer("fafurion_poison", 3000, npc, null, true); // Every three seconds reduces Fafurions hp like it is poisoned
+				startQuestTimer("fafurion_despawn", 120000, npc, null); // Fafurion Kindred disappears after two minutes
 			}
 		}
 		return super.onSpawn(npc);
@@ -213,15 +216,15 @@ public class DarkWaterDragon extends L2AttackableAIScript
 	
 	public void spawnShade(L2Character attacker, int npcId, int x, int y, int z)
 	{
-		final L2Npc shade = addSpawn(npcId,x,y,z,0,false,0);
+		final L2Npc shade = addSpawn(npcId, x, y, z, 0, false, 0);
 		shade.setRunning();
-		((L2Attackable)shade).addDamageHate(attacker,0,999);
+		((L2Attackable) shade).addDamageHate(attacker, 0, 999);
 		shade.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, attacker);
 	}
 	
 	public static void main(String[] args)
 	{
 		// Quest class and state definition
-		new DarkWaterDragon(-1,"DarkWaterDragon","ai");
+		new DarkWaterDragon(-1, "DarkWaterDragon", "ai");
 	}
-}
+}

+ 21 - 23
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/DrChaos.java

@@ -24,11 +24,9 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
 
-
 /**
  * DrChaos AI
  * @author Kerberos
- *
  */
 public class DrChaos extends Quest
 {
@@ -48,7 +46,7 @@ public class DrChaos extends Quest
 	
 	public L2Npc findTemplate(int npcId)
 	{
-		for(L2Spawn spawn : SpawnTable.getInstance().getSpawnTable())
+		for (L2Spawn spawn : SpawnTable.getInstance().getSpawnTable())
 		{
 			if (spawn != null && spawn.getNpcid() == npcId)
 			{
@@ -59,7 +57,7 @@ public class DrChaos extends Quest
 	}
 	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		if (event.equalsIgnoreCase("1"))
 		{
@@ -67,55 +65,55 @@ public class DrChaos extends Quest
 			if (machine_instance != null)
 			{
 				npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, machine_instance);
-				machine_instance.broadcastPacket(new SpecialCamera(machine_instance.getObjectId(),1,-200,15,10000,20000,0,0,1,0));
+				machine_instance.broadcastPacket(new SpecialCamera(machine_instance.getObjectId(), 1, -200, 15, 10000, 20000, 0, 0, 1, 0));
 			}
 			else
-				//print "Dr Chaos AI: problem finding Strange Machine (npcid = "+STRANGE_MACHINE+"). Error: not spawned!"
-				startQuestTimer("2",2000,npc,player);
-			startQuestTimer("3",10000,npc,player);
+				// print "Dr Chaos AI: problem finding Strange Machine (npcid = "+STRANGE_MACHINE+"). Error: not spawned!"
+				startQuestTimer("2", 2000, npc, player);
+			startQuestTimer("3", 10000, npc, player);
 		}
 		else if (event.equalsIgnoreCase("2"))
 			npc.broadcastSocialAction(3);
 		else if (event.equalsIgnoreCase("3"))
 		{
-			npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1,-150,10,3000,20000,0,0,1,0));
-			startQuestTimer("4",2500,npc,player);
+			npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1, -150, 10, 3000, 20000, 0, 0, 1, 0));
+			startQuestTimer("4", 2500, npc, player);
 		}
 		else if (event.equalsIgnoreCase("4"))
 		{
-			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(96055,-110759,-3312,0));
-			startQuestTimer("5",2000,npc,player);
+			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(96055, -110759, -3312, 0));
+			startQuestTimer("5", 2000, npc, player);
 		}
 		else if (event.equalsIgnoreCase("5"))
 		{
-			player.teleToLocation(94832,-112624,-3304);
-			npc.teleToLocation(-113091,-243942,-15536);
+			player.teleToLocation(94832, -112624, -3304);
+			npc.teleToLocation(-113091, -243942, -15536);
 			if (!_IsGolemSpawned)
 			{
-				L2Npc golem = addSpawn(CHAOS_GOLEM,94640,-112496,-3336,0,false,0);
+				L2Npc golem = addSpawn(CHAOS_GOLEM, 94640, -112496, -3336, 0, false, 0);
 				_IsGolemSpawned = true;
-				startQuestTimer("6",1000,golem,player);
-				player.sendPacket(new PlaySound(1,"Rm03_A",0,0,0,0,0));
+				startQuestTimer("6", 1000, golem, player);
+				player.sendPacket(new PlaySound(1, "Rm03_A", 0, 0, 0, 0, 0));
 			}
 		}
 		else if (event.equalsIgnoreCase("6"))
-			npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),30,-200,20,6000,8000,0,0,1,0));
+			npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 30, -200, 20, 6000, 8000, 0, 0, 1, 0));
 		return super.onAdvEvent(event, npc, player);
 	}
 	
 	@Override
-	public String onFirstTalk (L2Npc npc, L2PcInstance player)
+	public String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
 		if (npc.getNpcId() == DOCTER_CHAOS)
 		{
-			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(96323,-110914,-3328,0));
-			this.startQuestTimer("1",3000,npc,player);
+			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(96323, -110914, -3328, 0));
+			this.startQuestTimer("1", 3000, npc, player);
 		}
 		return "";
 	}
 	
 	public static void main(String[] args)
 	{
-		new DrChaos(-1,"Doctor Chaos","ai");
+		new DrChaos(-1, "Doctor Chaos", "ai");
 	}
-}
+}

+ 6 - 3
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/FleeNpc.java

@@ -24,7 +24,10 @@ import com.l2jserver.util.Rnd;
 
 public class FleeNpc extends L2AttackableAIScript
 {
-	private final int[] _npcId = { 20432, 22228 ,18150,18151,18152,18153,18154,18155,18156,18157};
+	private final int[] _npcId =
+	{
+		20432, 22228, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157
+	};
 	
 	public FleeNpc(int questId, String name, String descr)
 	{
@@ -38,14 +41,14 @@ public class FleeNpc extends L2AttackableAIScript
 	{
 		if (npc.getNpcId() >= 18150 && npc.getNpcId() <= 18157)
 		{
-			npc.getAI().setIntention( CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition((npc.getX() + Rnd.get(-40, 40)), (npc.getY()+ Rnd.get(-40, 40)), npc.getZ(), npc.getHeading()));
+			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition((npc.getX() + Rnd.get(-40, 40)), (npc.getY() + Rnd.get(-40, 40)), npc.getZ(), npc.getHeading()));
 			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null, null);
 			return null;
 		}
 		else if (npc.getNpcId() == 20432 || npc.getNpcId() == 22228)
 		{
 			if (Rnd.get(3) == 2)
-				npc.getAI().setIntention( CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition((npc.getX() + Rnd.get(-200, 200)), (npc.getY()+ Rnd.get(-200, 200)), npc.getZ(), npc.getHeading()));
+				npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition((npc.getX() + Rnd.get(-200, 200)), (npc.getY() + Rnd.get(-200, 200)), npc.getZ(), npc.getHeading()));
 			npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null, null);
 			return null;
 		}

+ 8 - 9
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/GeneralDilios.java

@@ -30,7 +30,6 @@ import com.l2jserver.util.Rnd;
 /**
  * Dilios AI
  * @author JIV, Sephiroth, Apocalipce
- *
  */
 public class GeneralDilios extends L2AttackableAIScript
 {
@@ -43,13 +42,13 @@ public class GeneralDilios extends L2AttackableAIScript
 	private static final NpcStringId[] diliosText =
 	{
 		NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_WERE_GATHERING_BRAVE_ADVENTURERS_TO_ATTACK_TIATS_MOUNTED_TROOP_THATS_ROOTED_IN_THE_SEED_OF_DESTRUCTION,
-	    //NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_SEED_OF_DESTRUCTION_IS_CURRENTLY_SECURED_UNDER_THE_FLAG_OF_THE_KEUCEREUS_ALLIANCE,
-	    //NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_TIATS_MOUNTED_TROOP_IS_CURRENTLY_TRYING_TO_RETAKE_SEED_OF_DESTRUCTION_COMMIT_ALL_THE_AVAILABLE_REINFORCEMENTS_INTO_SEED_OF_DESTRUCTION,
+		// NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_SEED_OF_DESTRUCTION_IS_CURRENTLY_SECURED_UNDER_THE_FLAG_OF_THE_KEUCEREUS_ALLIANCE,
+		// NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_TIATS_MOUNTED_TROOP_IS_CURRENTLY_TRYING_TO_RETAKE_SEED_OF_DESTRUCTION_COMMIT_ALL_THE_AVAILABLE_REINFORCEMENTS_INTO_SEED_OF_DESTRUCTION,
 		NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_BRAVE_ADVENTURERS_WHO_HAVE_CHALLENGED_THE_SEED_OF_INFINITY_ARE_CURRENTLY_INFILTRATING_THE_HALL_OF_EROSION_THROUGH_THE_DEFENSIVELY_WEAK_HALL_OF_SUFFERING,
-		//NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_SWEEPING_THE_SEED_OF_INFINITY_IS_CURRENTLY_COMPLETE_TO_THE_HEART_OF_THE_SEED_EKIMUS_IS_BEING_DIRECTLY_ATTACKED_AND_THE_UNDEAD_REMAINING_IN_THE_HALL_OF_SUFFERING_ARE_BEING_ERADICATED,
+		// NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_SWEEPING_THE_SEED_OF_INFINITY_IS_CURRENTLY_COMPLETE_TO_THE_HEART_OF_THE_SEED_EKIMUS_IS_BEING_DIRECTLY_ATTACKED_AND_THE_UNDEAD_REMAINING_IN_THE_HALL_OF_SUFFERING_ARE_BEING_ERADICATED,
 		NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_SEED_OF_INFINITY_IS_CURRENTLY_SECURED_UNDER_THE_FLAG_OF_THE_KEUCEREUS_ALLIANCE
-		//NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_RESURRECTED_UNDEAD_IN_THE_SEED_OF_INFINITY_ARE_POURING_INTO_THE_HALL_OF_SUFFERING_AND_THE_HALL_OF_EROSION 
-		//NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_EKIMUS_IS_ABOUT_TO_BE_REVIVED_BY_THE_RESURRECTED_UNDEAD_IN_SEED_OF_INFINITY_SEND_ALL_REINFORCEMENTS_TO_THE_HEART_AND_THE_HALL_OF_SUFFERING
+	// NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_RESURRECTED_UNDEAD_IN_THE_SEED_OF_INFINITY_ARE_POURING_INTO_THE_HALL_OF_SUFFERING_AND_THE_HALL_OF_EROSION
+	// NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_EKIMUS_IS_ABOUT_TO_BE_REVIVED_BY_THE_RESURRECTED_UNDEAD_IN_SEED_OF_INFINITY_SEND_ALL_REINFORCEMENTS_TO_THE_HEART_AND_THE_HALL_OF_SUFFERING
 	};
 	
 	public GeneralDilios(int questId, String name, String descr)
@@ -87,7 +86,7 @@ public class GeneralDilios extends L2AttackableAIScript
 				value = -1;
 				_general.broadcastPacket(new NpcSay(_general.getObjectId(), 1, generalId, diliosText[Rnd.get(diliosText.length)]));
 			}
-			startQuestTimer("command_"+(value+1), 60000, null, null);
+			startQuestTimer("command_" + (value + 1), 60000, null, null);
 		}
 		else if (event.startsWith("guard_animation_"))
 		{
@@ -97,7 +96,7 @@ public class GeneralDilios extends L2AttackableAIScript
 				guard.broadcastSocialAction(4);
 			}
 			if (value < 2)
-				startQuestTimer("guard_animation_"+(value+1), 1500, null, null);
+				startQuestTimer("guard_animation_" + (value + 1), 1500, null, null);
 		}
 		return super.onAdvEvent(event, npc, player);
 	}
@@ -106,4 +105,4 @@ public class GeneralDilios extends L2AttackableAIScript
 	{
 		new GeneralDilios(-1, "GeneralDilios", "ai");
 	}
-}
+}

+ 82 - 49
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Gordon.java

@@ -29,7 +29,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 /**
  * Gordon AI
  * @author TOFIZ
- * @version $Revision: 1.1 $ $Date: 2008/08/21 $
  */
 public class Gordon extends L2AttackableAIScript
 {
@@ -38,37 +37,75 @@ public class Gordon extends L2AttackableAIScript
 	private static int _npcMoveY = 0;
 	private static int _isWalkTo = 0;
 	private static int _npcBlock = 0;
-	private static int X = 0;
-	private static int Y = 0;
-	private static int Z = 0;
-	private static final int[][] WALKS = {
-		{141569, -45908, -2387},{142494, -45456, -2397},{142922, -44561, -2395},
-		{143672, -44130, -2398},{144557, -43378, -2325},{145839, -43267, -2301},
-		{147044, -43601, -2307},{148140, -43206, -2303},{148815, -43434, -2328},
-		{149862, -44151, -2558},{151037, -44197, -2708},{152555, -42756, -2836},
-		{154808, -39546, -3236},{155333, -39962, -3272},{156531, -41240, -3470},
-		{156863, -43232, -3707},{156783, -44198, -3764},{158169, -45163, -3541},
-		{158952, -45479, -3473},{160039, -46514, -3634},{160244, -47429, -3656},
-		{159155, -48109, -3665},{159558, -51027, -3523},{159396, -53362, -3244},
-		{160872, -56556, -2789},{160857, -59072, -2613},{160410, -59888, -2647},
-		{158770, -60173, -2673},{156368, -59557, -2638},{155188, -59868, -2642},
-		{154118, -60591, -2731},{153571, -61567, -2821},{153457, -62819, -2886},
-		{152939, -63778, -3003},{151816, -64209, -3120},{147655, -64826, -3433},
-		{145422, -64576, -3369},{144097, -64320, -3404},{140780, -61618, -3096},
-		{139688, -61450, -3062},{138267, -61743, -3056},{138613, -58491, -3465},
-		{138139, -57252, -3517},{139555, -56044, -3310},{139107, -54537, -3240},
-		{139279, -53781, -3091},{139810, -52687, -2866},{139657, -52041, -2793},
-		{139215, -51355, -2698},{139334, -50514, -2594},{139817, -49715, -2449},
-		{139824, -48976, -2263},{140130, -47578, -2213},{140483, -46339, -2382},
-		{141569, -45908, -2387}};
+	private static final L2CharPosition[] WALKS = 
+	{
+		new L2CharPosition(141569, -45908, -2387, 0),
+		new L2CharPosition(142494, -45456, -2397, 0),
+		new L2CharPosition(142922, -44561, -2395, 0),
+		new L2CharPosition(143672, -44130, -2398, 0),
+		new L2CharPosition(144557, -43378, -2325, 0),
+		new L2CharPosition(145839, -43267, -2301, 0),
+		new L2CharPosition(147044, -43601, -2307, 0),
+		new L2CharPosition(148140, -43206, -2303, 0),
+		new L2CharPosition(148815, -43434, -2328, 0),
+		new L2CharPosition(149862, -44151, -2558, 0),
+		new L2CharPosition(151037, -44197, -2708, 0),
+		new L2CharPosition(152555, -42756, -2836, 0),
+		new L2CharPosition(154808, -39546, -3236, 0),
+		new L2CharPosition(155333, -39962, -3272, 0),
+		new L2CharPosition(156531, -41240, -3470, 0),
+		new L2CharPosition(156863, -43232, -3707, 0),
+		new L2CharPosition(156783, -44198, -3764, 0),
+		new L2CharPosition(158169, -45163, -3541, 0),
+		new L2CharPosition(158952, -45479, -3473, 0),
+		new L2CharPosition(160039, -46514, -3634, 0),
+		new L2CharPosition(160244, -47429, -3656, 0),
+		new L2CharPosition(159155, -48109, -3665, 0),
+		new L2CharPosition(159558, -51027, -3523, 0),
+		new L2CharPosition(159396, -53362, -3244, 0),
+		new L2CharPosition(160872, -56556, -2789, 0),
+		new L2CharPosition(160857, -59072, -2613, 0),
+		new L2CharPosition(160410, -59888, -2647, 0),
+		new L2CharPosition(158770, -60173, -2673, 0),
+		new L2CharPosition(156368, -59557, -2638, 0),
+		new L2CharPosition(155188, -59868, -2642, 0),
+		new L2CharPosition(154118, -60591, -2731, 0),
+		new L2CharPosition(153571, -61567, -2821, 0),
+		new L2CharPosition(153457, -62819, -2886, 0),
+		new L2CharPosition(152939, -63778, -3003, 0),
+		new L2CharPosition(151816, -64209, -3120, 0),
+		new L2CharPosition(147655, -64826, -3433, 0),
+		new L2CharPosition(145422, -64576, -3369, 0),
+		new L2CharPosition(144097, -64320, -3404, 0),
+		new L2CharPosition(140780, -61618, -3096, 0),
+		new L2CharPosition(139688, -61450, -3062, 0),
+		new L2CharPosition(138267, -61743, -3056, 0),
+		new L2CharPosition(138613, -58491, -3465, 0),
+		new L2CharPosition(138139, -57252, -3517, 0),
+		new L2CharPosition(139555, -56044, -3310, 0),
+		new L2CharPosition(139107, -54537, -3240, 0),
+		new L2CharPosition(139279, -53781, -3091, 0),
+		new L2CharPosition(139810, -52687, -2866, 0),
+		new L2CharPosition(139657, -52041, -2793, 0),
+		new L2CharPosition(139215, -51355, -2698, 0),
+		new L2CharPosition(139334, -50514, -2594, 0),
+		new L2CharPosition(139817, -49715, -2449, 0),
+		new L2CharPosition(139824, -48976, -2263, 0),
+		new L2CharPosition(140130, -47578, -2213, 0),
+		new L2CharPosition(140483, -46339, -2382, 0),
+		new L2CharPosition(141569, -45908, -2387, 0)
+	};
 	
 	private static boolean _isAttacked = false;
 	private static boolean _isSpawned = false;
 	
-	public Gordon (int id, String name, String descr)
+	public Gordon(int id, String name, String descr)
 	{
-		super(id,name,descr);
-		int[] mobs = {GORDON};
+		super(id, name, descr);
+		int[] mobs =
+		{
+			GORDON
+		};
 		registerMobs(mobs, QuestEventType.ON_ATTACK, QuestEventType.ON_KILL, QuestEventType.ON_SPAWN);
 		// wait 2 minutes after Start AI
 		startQuestTimer("check_ai", 120000, null, null, true);
@@ -96,18 +133,16 @@ public class Gordon extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		X = WALKS[_isWalkTo-1][0];
-		Y = WALKS[_isWalkTo-1][1];
-		Z = WALKS[_isWalkTo-1][2];
+		L2CharPosition loc = WALKS[_isWalkTo - 1];
 		if (event.equalsIgnoreCase("time_isAttacked"))
 		{
 			_isAttacked = false;
 			if (npc.getNpcId() == GORDON)
 			{
 				npc.setWalking();
-				npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(X, Y, Z, 0));
+				npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, loc);
 			}
 		}
 		else if (event.equalsIgnoreCase("check_ai"))
@@ -136,14 +171,14 @@ public class Gordon extends L2AttackableAIScript
 					{
 						for (L2PcInstance pc : chars)
 						{
-							if (pc.isCursedWeaponEquipped() && pc.isInsideRadius(npc,5000,false,false))
+							if (pc.isCursedWeaponEquipped() && pc.isInsideRadius(npc, 5000, false, false))
 							{
 								npc.setRunning();
-								((L2Attackable)npc).addDamageHate(pc,0,9999);
+								((L2Attackable) npc).addDamageHate(pc, 0, 9999);
 								npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, pc);
 								_isAttacked = true;
-								cancelQuestTimer("time_isAttacked",null, null);
-								startQuestTimer("time_isAttacked",180000, npc, null);
+								cancelQuestTimer("time_isAttacked", null, null);
+								startQuestTimer("time_isAttacked", 180000, npc, null);
 								return super.onAdvEvent(event, npc, player);
 							}
 						}
@@ -152,16 +187,14 @@ public class Gordon extends L2AttackableAIScript
 				// end check
 				if (_isAttacked == true)
 					return super.onAdvEvent(event, npc, player);
-				if (npc.getNpcId() == GORDON && (npc.getX()-50) <= X && (npc.getX()+50) >= X && (npc.getY()-50) <= Y && (npc.getY()+50) >= Y)
+				if (npc.getNpcId() == GORDON && (npc.getX() - 50) <= loc.x && (npc.getX() + 50) >= loc.y && (npc.getY() - 50) <= loc.y && (npc.getY() + 50) >= loc.y)
 				{
 					_isWalkTo++;
 					if (_isWalkTo > 55)
 						_isWalkTo = 1;
-					X = WALKS[_isWalkTo-1][0];
-					Y = WALKS[_isWalkTo-1][1];
-					Z = WALKS[_isWalkTo-1][2];
+					loc = WALKS[_isWalkTo - 1];
 					npc.setWalking();
-					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(X, Y, Z, 0));
+					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, loc);
 				}
 				
 				// Test for unblock Npc
@@ -176,11 +209,11 @@ public class Gordon extends L2AttackableAIScript
 					_npcBlock++;
 					if (_npcBlock > 2)
 					{
-						npc.teleToLocation(X, Y, Z);
+						npc.teleToLocation(loc.x, loc.y, loc.z);
 						return super.onAdvEvent(event, npc, player);
 					}
 					if (_npcBlock > 0)
-						npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(X, Y, Z, 0));
+						npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, loc);
 				}
 				// End Test unblock Npc
 			}
@@ -189,7 +222,7 @@ public class Gordon extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onSpawn (L2Npc npc)
+	public String onSpawn(L2Npc npc)
 	{
 		if (npc.getNpcId() == GORDON && _npcBlock == 0)
 		{
@@ -201,7 +234,7 @@ public class Gordon extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onAttack (L2Npc npc, L2PcInstance player, int damage, boolean isPet)
+	public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isPet)
 	{
 		if (npc.getNpcId() == GORDON)
 		{
@@ -211,7 +244,7 @@ public class Gordon extends L2AttackableAIScript
 			if (player != null)
 			{
 				npc.setRunning();
-				((L2Attackable)npc).addDamageHate(player, 0, 100);
+				((L2Attackable) npc).addDamageHate(player, 0, 100);
 				npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
 			}
 		}
@@ -219,7 +252,7 @@ public class Gordon extends L2AttackableAIScript
 	}
 	
 	@Override
-	public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		if (npc.getNpcId() == GORDON)
 		{
@@ -227,11 +260,11 @@ public class Gordon extends L2AttackableAIScript
 			cancelQuestTimer("time_isAttacked", null, null);
 			_isSpawned = false;
 		}
-		return super.onKill(npc,killer,isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	public static void main(String[] args)
 	{
-		new Gordon(-1,"gordon","ai");
+		new Gordon(-1, Gordon.class.getSimpleName(), "ai");
 	}
 }

+ 58 - 159
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Keltas.java

@@ -19,6 +19,7 @@ import java.util.List;
 import javolution.util.FastList;
 
 import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -41,181 +42,79 @@ public class Keltas extends Quest
 	
 	private final List<L2Spawn> spawnedMonsters;
 	
-	private static final int[][] ENFORCER_SPAWN_POINTS =
+	private static final Location[] ENFORCER_SPAWN_POINTS =
 	{
-		{
-			-24540, 251404, -3320
-		},
-		{
-			-24100, 252578, -3060
-		},
-		{
-			-24607, 252443, -3074
-		},
-		{
-			-23962, 252041, -3275
-		},
-		{
-			-24381, 252132, -3090
-		},
-		{
-			-23652, 251838, -3370
-		},
-		{
-			-23838, 252603, -3095
-		},
-		{
-			-23257, 251671, -3360
-		},
-		{
-			-27127, 251106, -3523
-		},
-		{
-			-27118, 251203, -3523
-		},
-		{
-			-27052, 251205, -3523
-		},
-		{
-			-26999, 250818, -3523
-		},
-		{
-			-29613, 252888, -3523
-		},
-		{
-			-29765, 253009, -3523
-		},
-		{
-			-29594, 252570, -3523
-		},
-		{
-			-29770, 252658, -3523
-		},
-		{
-			-27816, 252008, -3527
-		},
-		{
-			-27930, 252011, -3523
-		},
-		{
-			-28702, 251986, -3523
-		},
-		{
-			-27357, 251987, -3527
-		},
-		{
-			-28859, 251081, -3527
-		},
-		{
-			-28607, 250397, -3523
-		},
-		{
-			-28801, 250462, -3523
-		},
-		{
-			-29123, 250387, -3472
-		},
-		{
-			-25376, 252368, -3257
-		},
-		{
-			-25376, 252208, -3257
-		}
+		new Location(-24540, 251404, -3320),
+		new Location(-24100, 252578, -3060),
+		new Location(-24607, 252443, -3074),
+		new Location(-23962, 252041, -3275),
+		new Location(-24381, 252132, -3090),
+		new Location(-23652, 251838, -3370),
+		new Location(-23838, 252603, -3095),
+		new Location(-23257, 251671, -3360),
+		new Location(-27127, 251106, -3523),
+		new Location(-27118, 251203, -3523),
+		new Location(-27052, 251205, -3523),
+		new Location(-26999, 250818, -3523),
+		new Location(-29613, 252888, -3523),
+		new Location(-29765, 253009, -3523),
+		new Location(-29594, 252570, -3523),
+		new Location(-29770, 252658, -3523),
+		new Location(-27816, 252008, -3527),
+		new Location(-27930, 252011, -3523),
+		new Location(-28702, 251986, -3523),
+		new Location(-27357, 251987, -3527),
+		new Location(-28859, 251081, -3527),
+		new Location(-28607, 250397, -3523),
+		new Location(-28801, 250462, -3523),
+		new Location(-29123, 250387, -3472),
+		new Location(-25376, 252368, -3257),
+		new Location(-25376, 252208, -3257)
 	};
 	
-	private static final int[][] EXECUTIONER_SPAWN_POINTS =
+	private static final Location[] EXECUTIONER_SPAWN_POINTS =
 	{
-		{
-			-24419, 251395, -3340
-		},
-		{
-			-24912, 252160, -3310
-		},
-		{
-			-25027, 251941, -3300
-		},
-		{
-			-24127, 252657, -3058
-		},
-		{
-			-25120, 252372, -3270
-		},
-		{
-			-24456, 252651, -3060
-		},
-		{
-			-24844, 251614, -3295
-		},
-		{
-			-28675, 252008, -3523
-		},
-		{
-			-27943, 251238, -3523
-		},
-		{
-			-27827, 251984, -3523
-		},
-		{
-			-27276, 251995, -3523
-		},
-		{
-			-28769, 251955, -3523
-		},
-		{
-			-27969, 251073, -3523
-		},
-		{
-			-27233, 250938, -3523
-		},
-		{
-			-26835, 250914, -3523
-		},
-		{
-			-26802, 251276, -3523
-		},
-		{
-			-29671, 252781, -3527
-		},
-		{
-			-29536, 252831, -3523
-		},
-		{
-			-29419, 253214, -3523
-		},
-		{
-			-27923, 251965, -3523
-		},
-		{
-			-28499, 251882, -3527
-		},
-		{
-			-28194, 251915, -3523
-		},
-		{
-			-28358, 251078, -3527
-		},
-		{
-			-28580, 251071, -3527
-		},
-		{
-			-28492, 250704, -3523
-		}
+		new Location(-24419, 251395, -3340),
+		new Location(-24912, 252160, -3310),
+		new Location(-25027, 251941, -3300),
+		new Location(-24127, 252657, -3058),
+		new Location(-25120, 252372, -3270),
+		new Location(-24456, 252651, -3060),
+		new Location(-24844, 251614, -3295),
+		new Location(-28675, 252008, -3523),
+		new Location(-27943, 251238, -3523),
+		new Location(-27827, 251984, -3523),
+		new Location(-27276, 251995, -3523),
+		new Location(-28769, 251955, -3523),
+		new Location(-27969, 251073, -3523),
+		new Location(-27233, 250938, -3523),
+		new Location(-26835, 250914, -3523),
+		new Location(-26802, 251276, -3523),
+		new Location(-29671, 252781, -3527),
+		new Location(-29536, 252831, -3523),
+		new Location(-29419, 253214, -3523),
+		new Location(-27923, 251965, -3523),
+		new Location(-28499, 251882, -3527),
+		new Location(-28194, 251915, -3523),
+		new Location(-28358, 251078, -3527),
+		new Location(-28580, 251071, -3527),
+		new Location(-28492, 250704, -3523)
 	};
 	
 	private void spawnMinions()
 	{
-		for (int[] pos : ENFORCER_SPAWN_POINTS)
+		for (Location loc : ENFORCER_SPAWN_POINTS)
 		{
-			L2MonsterInstance minion = (L2MonsterInstance) addSpawn(ENFORCER, pos[0], pos[1], pos[2], 0, false, 0, false);
+			L2MonsterInstance minion = (L2MonsterInstance) addSpawn(ENFORCER, loc, false, 0, false);
 			minion.getSpawn().setRespawnDelay(60);
 			minion.getSpawn().setAmount(1);
 			minion.getSpawn().startRespawn();
 			spawnedMonsters.add(minion.getSpawn());
 		}
 		
-		for (int[] pos : EXECUTIONER_SPAWN_POINTS)
+		for (Location loc : EXECUTIONER_SPAWN_POINTS)
 		{
-			L2MonsterInstance minion = (L2MonsterInstance) addSpawn(EXECUTIONER, pos[0], pos[1], pos[2], 0, false, 0, false);
+			L2MonsterInstance minion = (L2MonsterInstance) addSpawn(EXECUTIONER, loc, false, 0, false);
 			minion.getSpawn().setRespawnDelay(80);
 			minion.getSpawn().setAmount(1);
 			minion.getSpawn().startRespawn();

+ 34 - 59
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Orfen.java

@@ -26,6 +26,7 @@ import com.l2jserver.gameserver.instancemanager.GrandBossManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -40,41 +41,33 @@ import com.l2jserver.util.Rnd;
 
 /**
  * Orfen AI
- * 
  * @author Emperorc
- * 
  */
 public class Orfen extends L2AttackableAIScript
 {
 	
-	private static final int[][] Pos =
+	//@formatter:off
+	private static final Location[] Pos =
 	{
-		{
-			43728, 17220, -4342
-		},
-		{
-			55024, 17368, -5412
-		},
-		{
-			53504, 21248, -5486
-		},
-		{
-			53248, 24576, -5262
-		}
+		new Location(43728, 17220, -4342), 
+		new Location(55024, 17368, -5412),
+		new Location(53504, 21248, -5486), 
+		new Location(53248, 24576, -5262)
 	};
 	
 	private static final NpcStringId[] Text =
 	{
 		NpcStringId.S1_STOP_KIDDING_YOURSELF_ABOUT_YOUR_OWN_POWERLESSNESS,
-		NpcStringId.S1_ILL_MAKE_YOU_FEEL_WHAT_TRUE_FEAR_IS,
-		NpcStringId.YOURE_REALLY_STUPID_TO_HAVE_CHALLENGED_ME_S1_GET_READY,
+		NpcStringId.S1_ILL_MAKE_YOU_FEEL_WHAT_TRUE_FEAR_IS, 
+		NpcStringId.YOURE_REALLY_STUPID_TO_HAVE_CHALLENGED_ME_S1_GET_READY, 
 		NpcStringId.S1_DO_YOU_THINK_THATS_GOING_TO_WORK
 	};
+	//@formatter:on
 	
 	private static final int ORFEN = 29014;
-	//private static final int RAIKEL = 29015;
+	// private static final int RAIKEL = 29015;
 	private static final int RAIKEL_LEOS = 29016;
-	//private static final int RIBA = 29017;
+	// private static final int RIBA = 29017;
 	private static final int RIBA_IREN = 29018;
 	
 	private static boolean _IsTeleported;
@@ -89,11 +82,11 @@ public class Orfen extends L2AttackableAIScript
 		super(id, name, descr);
 		int[] mobs =
 		{
-				ORFEN, RAIKEL_LEOS, RIBA_IREN
+			ORFEN, RAIKEL_LEOS, RIBA_IREN
 		};
 		registerMobs(mobs);
 		_IsTeleported = false;
-		_Zone = GrandBossManager.getInstance().getZone(Pos[0][0], Pos[0][1], Pos[0][2]);
+		_Zone = GrandBossManager.getInstance().getZone(Pos[0]);
 		StatsSet info = GrandBossManager.getInstance().getStatsSet(ORFEN);
 		int status = GrandBossManager.getInstance().getBossStatus(ORFEN);
 		if (status == DEAD)
@@ -108,28 +101,20 @@ public class Orfen extends L2AttackableAIScript
 			{
 				// the time has already expired while the server was offline. Immediately spawn Orfen.
 				int i = Rnd.get(10);
-				int x = 0;
-				int y = 0;
-				int z = 0;
+				Location loc;
 				if (i < 4)
 				{
-					x = Pos[1][0];
-					y = Pos[1][1];
-					z = Pos[1][2];
+					loc = Pos[1];
 				}
 				else if (i < 7)
 				{
-					x = Pos[2][0];
-					y = Pos[2][1];
-					z = Pos[2][2];
+					loc = Pos[2];
 				}
 				else
 				{
-					x = Pos[3][0];
-					y = Pos[3][1];
-					z = Pos[3][2];
+					loc = Pos[3];
 				}
-				L2GrandBossInstance orfen = (L2GrandBossInstance) addSpawn(ORFEN, x, y, z, 0, false, 0);
+				L2GrandBossInstance orfen = (L2GrandBossInstance) addSpawn(ORFEN, loc, false, 0);
 				GrandBossManager.getInstance().setBossStatus(ORFEN, ALIVE);
 				spawnBoss(orfen);
 			}
@@ -153,10 +138,8 @@ public class Orfen extends L2AttackableAIScript
 		((L2Attackable) npc).clearAggroList();
 		npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null, null);
 		L2Spawn spawn = npc.getSpawn();
-		spawn.setLocx(Pos[index][0]);
-		spawn.setLocy(Pos[index][1]);
-		spawn.setLocz(Pos[index][2]);
-		npc.teleToLocation(Pos[index][0], Pos[index][1], Pos[index][2]);
+		spawn.setLocation(Pos[index]);;
+		npc.teleToLocation(Pos[index], false);
 	}
 	
 	public void spawnBoss(L2GrandBossInstance npc)
@@ -164,20 +147,20 @@ public class Orfen extends L2AttackableAIScript
 		GrandBossManager.getInstance().addBoss(npc);
 		npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
 		startQuestTimer("check_orfen_pos", 10000, npc, null, true);
-		//Spawn minions
+		// Spawn minions
 		int x = npc.getX();
 		int y = npc.getY();
 		L2Attackable mob;
-		mob = (L2Attackable)addSpawn(RAIKEL_LEOS, x + 100, y + 100, npc.getZ(), 0, false, 0);
+		mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x + 100, y + 100, npc.getZ(), 0, false, 0);
 		mob.setIsRaidMinion(true);
 		_Minions.add(mob);
-		mob = (L2Attackable)addSpawn(RAIKEL_LEOS, x + 100, y - 100, npc.getZ(), 0, false, 0);
+		mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x + 100, y - 100, npc.getZ(), 0, false, 0);
 		mob.setIsRaidMinion(true);
 		_Minions.add(mob);
-		mob = (L2Attackable)addSpawn(RAIKEL_LEOS, x - 100, y + 100, npc.getZ(), 0, false, 0);
+		mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x - 100, y + 100, npc.getZ(), 0, false, 0);
 		mob.setIsRaidMinion(true);
 		_Minions.add(mob);
-		mob = (L2Attackable)addSpawn(RAIKEL_LEOS, x - 100, y - 100, npc.getZ(), 0, false, 0);
+		mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x - 100, y - 100, npc.getZ(), 0, false, 0);
 		mob.setIsRaidMinion(true);
 		_Minions.add(mob);
 		startQuestTimer("check_minion_loc", 10000, npc, null, true);
@@ -189,28 +172,20 @@ public class Orfen extends L2AttackableAIScript
 		if (event.equalsIgnoreCase("orfen_unlock"))
 		{
 			int i = Rnd.get(10);
-			int x = 0;
-			int y = 0;
-			int z = 0;
+			Location loc;
 			if (i < 4)
 			{
-				x = Pos[1][0];
-				y = Pos[1][1];
-				z = Pos[1][2];
+				loc = Pos[1];
 			}
 			else if (i < 7)
 			{
-				x = Pos[2][0];
-				y = Pos[2][1];
-				z = Pos[2][2];
+				loc = Pos[2];
 			}
 			else
 			{
-				x = Pos[3][0];
-				y = Pos[3][1];
-				z = Pos[3][2];
+				loc = Pos[3];
 			}
-			L2GrandBossInstance orfen = (L2GrandBossInstance) addSpawn(ORFEN, x, y, z, 0, false, 0);
+			L2GrandBossInstance orfen = (L2GrandBossInstance) addSpawn(ORFEN, loc, false, 0);
 			GrandBossManager.getInstance().setBossStatus(ORFEN, ALIVE);
 			spawnBoss(orfen);
 		}
@@ -249,7 +224,7 @@ public class Orfen extends L2AttackableAIScript
 		}
 		else if (event.equalsIgnoreCase("spawn_minion"))
 		{
-			L2Attackable mob = (L2Attackable)addSpawn(RAIKEL_LEOS, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0);
+			L2Attackable mob = (L2Attackable) addSpawn(RAIKEL_LEOS, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0);
 			mob.setIsRaidMinion(true);
 			_Minions.add(mob);
 		}
@@ -341,7 +316,7 @@ public class Orfen extends L2AttackableAIScript
 		{
 			npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
 			GrandBossManager.getInstance().setBossStatus(ORFEN, DEAD);
-			//time is 48hour	+/- 20hour
+			// time is 48hour +/- 20hour
 			long respawnTime = (long) Config.Interval_Of_Orfen_Spawn + Rnd.get(Config.Random_Of_Orfen_Spawn);
 			startQuestTimer("orfen_unlock", respawnTime, null, null);
 			// also save the respawn time so that the info is maintained past reboots
@@ -366,4 +341,4 @@ public class Orfen extends L2AttackableAIScript
 		// Quest class and state definition
 		new Orfen(-1, "orfen", "ai");
 	}
-}
+}

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/OutpostCaptain.java

@@ -49,7 +49,7 @@ public class OutpostCaptain extends Quest
 	{
 		if (HellboundManager.getInstance().getLevel() == 8)
 		{
-			addSpawn(DOORKEEPER, npc.getSpawn().getLocx(), npc.getSpawn().getLocy(), npc.getSpawn().getLocz(), 0, false, 0, false);
+			addSpawn(DOORKEEPER, npc.getSpawn().getSpawnLocation(), false, 0, false);
 		}
 		
 		return super.onKill(npc, killer, isPet);

+ 36 - 35
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/QueenAnt.java

@@ -39,9 +39,7 @@ import com.l2jserver.util.Rnd;
 
 /**
  * Queen Ant AI
- * 
  * @author Emperorc
- * 
  */
 public class QueenAnt extends L2AttackableAIScript
 {
@@ -52,32 +50,35 @@ public class QueenAnt extends L2AttackableAIScript
 	private static final int GUARD = 29004;
 	private static final int ROYAL = 29005;
 	
-	private static final int[] MOBS = { QUEEN, LARVA, NURSE, GUARD, ROYAL };
-
+	private static final int[] MOBS =
+	{
+		QUEEN, LARVA, NURSE, GUARD, ROYAL
+	};
+	
 	private static final int QUEEN_X = -21610;
 	private static final int QUEEN_Y = 181594;
 	private static final int QUEEN_Z = -5734;
-
-	//QUEEN Status Tracking :
-	private static final byte ALIVE = 0; //Queen Ant is spawned.
-	private static final byte DEAD = 1; //Queen Ant has been killed.
+	
+	// QUEEN Status Tracking :
+	private static final byte ALIVE = 0; // Queen Ant is spawned.
+	private static final byte DEAD = 1; // Queen Ant has been killed.
 	
 	private static L2BossZone _zone;
-
+	
 	private static SkillHolder HEAL1 = new SkillHolder(4020, 1);
 	private static SkillHolder HEAL2 = new SkillHolder(4024, 1);
-
+	
 	private L2MonsterInstance _queen = null;
 	private L2MonsterInstance _larva = null;
 	private final List<L2MonsterInstance> _nurses = new FastList<L2MonsterInstance>(5);
-
+	
 	public QueenAnt(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-
+		
 		registerMobs(MOBS, QuestEventType.ON_SPAWN, QuestEventType.ON_KILL, QuestEventType.ON_AGGRO_RANGE_ENTER);
 		addFactionCallId(NURSE);
-
+		
 		_zone = GrandBossManager.getInstance().getZone(QUEEN_X, QUEEN_Y, QUEEN_Z);
 		
 		StatsSet info = GrandBossManager.getInstance().getStatsSet(QUEEN);
@@ -132,7 +133,7 @@ public class QueenAnt extends L2AttackableAIScript
 		startQuestTimer("heal", 1000, null, null, true);
 		npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
 		_queen = npc;
-		_larva = (L2MonsterInstance)addSpawn(LARVA, -21600, 179482, -5846, Rnd.get(360), false, 0);
+		_larva = (L2MonsterInstance) addSpawn(LARVA, -21600, 179482, -5846, Rnd.get(360), false, 0);
 	}
 	
 	@Override
@@ -147,7 +148,7 @@ public class QueenAnt extends L2AttackableAIScript
 			{
 				if (nurse == null || nurse.isDead() || nurse.isCastingNow())
 					continue;
-
+				
 				notCasting = nurse.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST;
 				if (larvaNeedHeal)
 				{
@@ -162,11 +163,11 @@ public class QueenAnt extends L2AttackableAIScript
 				{
 					if (nurse.getLeader() == _larva) // skip larva's minions
 						continue;
-
+					
 					if (nurse.getTarget() != _queen || notCasting)
 					{
 						nurse.setTarget(_queen);
-						nurse.useMagic(HEAL1.getSkill());						
+						nurse.useMagic(HEAL1.getSkill());
 					}
 					continue;
 				}
@@ -197,11 +198,11 @@ public class QueenAnt extends L2AttackableAIScript
 		}
 		return super.onAdvEvent(event, npc, player);
 	}
-
+	
 	@Override
 	public String onSpawn(L2Npc npc)
 	{
-		final L2MonsterInstance mob = (L2MonsterInstance)npc;
+		final L2MonsterInstance mob = (L2MonsterInstance) npc;
 		switch (npc.getNpcId())
 		{
 			case LARVA:
@@ -219,33 +220,33 @@ public class QueenAnt extends L2AttackableAIScript
 				mob.setIsRaidMinion(true);
 				break;
 		}
-
+		
 		return super.onSpawn(npc);
 	}
-
+	
 	@Override
 	public String onFactionCall(L2Npc npc, L2Npc caller, L2PcInstance attacker, boolean isPet)
 	{
 		if (caller == null || npc == null)
 			return super.onFactionCall(npc, caller, attacker, isPet);
-
+		
 		if (!npc.isCastingNow() && npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST)
 		{
 			if (caller.getCurrentHp() < caller.getMaxHp())
 			{
 				npc.setTarget(caller);
-				((L2Attackable)npc).useMagic(HEAL1.getSkill());
+				((L2Attackable) npc).useMagic(HEAL1.getSkill());
 			}
 		}
 		return null;
 	}
-
+	
 	@Override
 	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isPet)
 	{
 		if (npc == null)
 			return null;
-
+		
 		final boolean isMage;
 		final L2Playable character;
 		if (isPet)
@@ -258,10 +259,10 @@ public class QueenAnt extends L2AttackableAIScript
 			isMage = player.isMageClass();
 			character = player;
 		}
-
+		
 		if (character == null)
 			return null;
-
+		
 		if (!Config.RAID_DISABLE_CURSE && character.getLevel() - npc.getLevel() > 8)
 		{
 			L2Skill curse = null;
@@ -275,20 +276,20 @@ public class QueenAnt extends L2AttackableAIScript
 				if (!character.isParalyzed() && Rnd.get(4) == 0)
 					curse = SkillTable.FrequentSkill.RAID_CURSE2.getSkill();
 			}
-
+			
 			if (curse != null)
 			{
 				npc.broadcastPacket(new MagicSkillUse(npc, character, curse.getId(), curse.getLevel(), 300, 0));
 				curse.getEffects(npc, character);
 			}
-
+			
 			((L2Attackable) npc).stopHating(character); // for calling again
 			return null;
 		}
-
+		
 		return super.onAggroRangeEnter(npc, player, isPet);
 	}
-
+	
 	@Override
 	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
@@ -297,7 +298,7 @@ public class QueenAnt extends L2AttackableAIScript
 		{
 			npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
 			GrandBossManager.getInstance().setBossStatus(QUEEN, DEAD);
-			//time is 36hour	+/- 17hour
+			// time is 36hour +/- 17hour
 			long respawnTime = (long) Config.Interval_Of_QueenAnt_Spawn + Rnd.get(Config.Random_Of_QueenAnt_Spawn);
 			startQuestTimer("queen_unlock", respawnTime, null, null);
 			cancelQuestTimer("action", npc, null);
@@ -315,13 +316,13 @@ public class QueenAnt extends L2AttackableAIScript
 		{
 			if (npcId == ROYAL)
 			{
-				L2MonsterInstance mob = (L2MonsterInstance)npc;
+				L2MonsterInstance mob = (L2MonsterInstance) npc;
 				if (mob.getLeader() != null)
 					mob.getLeader().getMinionList().onMinionDie(mob, (280 + Rnd.get(40)) * 1000);
 			}
 			else if (npcId == NURSE)
 			{
-				L2MonsterInstance mob = (L2MonsterInstance)npc;
+				L2MonsterInstance mob = (L2MonsterInstance) npc;
 				_nurses.remove(mob);
 				if (mob.getLeader() != null)
 					mob.getLeader().getMinionList().onMinionDie(mob, 10000);
@@ -335,4 +336,4 @@ public class QueenAnt extends L2AttackableAIScript
 		// now call the constructor (starts up the ai)
 		new QueenAnt(-1, "queen_ant", "ai");
 	}
-}
+}

+ 38 - 36
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Valakas.java

@@ -46,7 +46,6 @@ import com.l2jserver.util.Rnd;
 
 /**
  * Valakas AI
- * 
  * @author Kerberos
  */
 public class Valakas extends L2AttackableAIScript
@@ -67,12 +66,12 @@ public class Valakas extends L2AttackableAIScript
 	
 	private static final int VALAKAS = 29028;
 	
-	//Valakas Status Tracking :
-	private static final byte DORMANT = 0; //Valakas is spawned and no one has entered yet. Entry is unlocked
-	private static final byte WAITING = 1; //Valakas is spawend and someone has entered, triggering a 30 minute window for additional people to enter
-	//before he unleashes his attack. Entry is unlocked
-	private static final byte FIGHTING = 2; //Valakas is engaged in battle, annihilating his foes. Entry is locked
-	private static final byte DEAD = 3; //Valakas has been killed. Entry is locked
+	// Valakas Status Tracking :
+	private static final byte DORMANT = 0; // Valakas is spawned and no one has entered yet. Entry is unlocked
+	private static final byte WAITING = 1; // Valakas is spawend and someone has entered, triggering a 30 minute window for additional people to enter
+	// before he unleashes his attack. Entry is unlocked
+	private static final byte FIGHTING = 2; // Valakas is engaged in battle, annihilating his foes. Entry is locked
+	private static final byte DEAD = 3; // Valakas has been killed. Entry is locked
 	
 	private static L2BossZone _Zone;
 	
@@ -82,7 +81,7 @@ public class Valakas extends L2AttackableAIScript
 		super(id, name, descr);
 		int[] mob =
 		{
-				VALAKAS
+			VALAKAS
 		};
 		registerMobs(mob);
 		i_ai0 = 0;
@@ -100,7 +99,7 @@ public class Valakas extends L2AttackableAIScript
 			// load the unlock date and time for valakas from DB
 			long temp = (info.getLong("respawn_time") - System.currentTimeMillis());
 			// if valakas is locked until a certain time, mark it so and start the unlock timer
-			// the unlock time has not yet expired.  Mark valakas as currently locked.  Setup a timer
+			// the unlock time has not yet expired. Mark valakas as currently locked. Setup a timer
 			// to fire at the correct time (calculate the time between now and the unlock time,
 			// setup a timer to fire after that many msec)
 			if (temp > 0)
@@ -126,7 +125,8 @@ public class Valakas extends L2AttackableAIScript
 							_valakas.setRunning();
 						}
 						catch (Throwable e)
-						{}
+						{
+						}
 					}
 				}, 100L);
 				startQuestTimer("1003", 60000, valakas, null, true);
@@ -157,7 +157,8 @@ public class Valakas extends L2AttackableAIScript
 						_valakas.setRunning();
 					}
 					catch (Throwable e)
-					{}
+					{
+					}
 				}
 			}, 100L);
 			
@@ -197,7 +198,8 @@ public class Valakas extends L2AttackableAIScript
 							broadcastSpawn(_valakas);
 						}
 						catch (Throwable e)
-						{}
+						{
+						}
 					}
 				}, 1L);
 				startQuestTimer("1004", 2000, npc, null);
@@ -275,51 +277,51 @@ public class Valakas extends L2AttackableAIScript
 			else if (event.equalsIgnoreCase("1004"))
 			{
 				startQuestTimer("1102", 1500, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1300,180,-5,3000,15000,0,-5,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1300, 180, -5, 3000, 15000, 0, -5, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1102"))
 			{
 				startQuestTimer("1103", 3300, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),500,180,-8,600,15000,0,60,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 500, 180, -8, 600, 15000, 0, 60, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1103"))
 			{
 				startQuestTimer("1104", 2900, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),800,180,-8,2700,15000,0,30,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 800, 180, -8, 2700, 15000, 0, 30, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1104"))
 			{
 				startQuestTimer("1105", 2700, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),200,250,70,0,15000,30,80,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 200, 250, 70, 0, 15000, 30, 80, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1105"))
 			{
 				startQuestTimer("1106", 1, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,250,70,2500,15000,30,80,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1100, 250, 70, 2500, 15000, 30, 80, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1106"))
 			{
 				startQuestTimer("1107", 3200, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,150,30,0,15000,-10,60,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 700, 150, 30, 0, 15000, -10, 60, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1107"))
 			{
 				startQuestTimer("1108", 1400, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1200,150,20,2900,15000,-10,30,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1200, 150, 20, 2900, 15000, -10, 30, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1108"))
 			{
 				startQuestTimer("1109", 6700, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),750,170,15,3400,15000,10,-15,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 750, 170, 15, 3400, 15000, 10, -15, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1109"))
 			{
 				startQuestTimer("1110", 5700, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),750,170,-10,3400,15000,4000,-15,1,0));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 750, 170, -10, 3400, 15000, 4000, -15, 1, 0));
 			}
 			else if (event.equalsIgnoreCase("1110"))
 			{
-				GrandBossManager.getInstance().setBossStatus(VALAKAS,FIGHTING);
+				GrandBossManager.getInstance().setBossStatus(VALAKAS, FIGHTING);
 				startQuestTimer("1002", 60000, npc, null, true);
 				npc.setIsInvul(false);
 				getRandomSkill(npc);
@@ -327,41 +329,41 @@ public class Valakas extends L2AttackableAIScript
 			else if (event.equalsIgnoreCase("1111"))
 			{
 				startQuestTimer("1112", 3500, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,210,-5,3000,10000,-13,0,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1100, 210, -5, 3000, 10000, -13, 0, 1, 1));
 			}
 			else if (event.equalsIgnoreCase("1112"))
 			{
 				startQuestTimer("1113", 4500, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1300,200,-8,3000,10000,0,15,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1300, 200, -8, 3000, 10000, 0, 15, 1, 1));
 			}
 			else if (event.equalsIgnoreCase("1113"))
 			{
 				startQuestTimer("1114", 500, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1000,190,0,3000,10000,0,10,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1000, 190, 0, 3000, 10000, 0, 10, 1, 1));
 			}
 			else if (event.equalsIgnoreCase("1114"))
 			{
 				startQuestTimer("1115", 4600, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,120,0,2500,10000,12,40,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1700, 120, 0, 2500, 10000, 12, 40, 1, 1));
 			}
 			else if (event.equalsIgnoreCase("1115"))
 			{
 				startQuestTimer("1116", 750, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,20,0,3000,10000,10,10,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1700, 20, 0, 3000, 10000, 10, 10, 1, 1));
 			}
 			else if (event.equalsIgnoreCase("1116"))
 			{
 				startQuestTimer("1117", 2500, npc, null);
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,10,0,3000,10000,20,70,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1700, 10, 0, 3000, 10000, 20, 70, 1, 1));
 			}
 			else if (event.equalsIgnoreCase("1117"))
 			{
-				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,10,0,3000,250,20,-20,1,1));
+				npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1700, 10, 0, 3000, 250, 20, -20, 1, 1));
 				addSpawn(31759, 212852, -114842, -1632, 0, false, 900000);
 				int radius = 1500;
 				for (int i = 0; i < 20; i++)
 				{
-					int x = (int) (radius * Math.cos(i * .331)); //.331~2pi/19
+					int x = (int) (radius * Math.cos(i * .331)); // .331~2pi/19
 					int y = (int) (radius * Math.sin(i * .331));
 					addSpawn(31759, 212852 + x, -114842 + y, -1632, 0, false, 900000);
 				}
@@ -384,14 +386,14 @@ public class Valakas extends L2AttackableAIScript
 		}
 		return super.onAdvEvent(event, npc, player);
 	}
-
+	
 	@Override
 	public String onSpawn(L2Npc npc)
 	{
 		npc.disableCoreAI(true);
 		return super.onSpawn(npc);
 	}
-
+	
 	@Override
 	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet, L2Skill skill)
 	{
@@ -974,9 +976,9 @@ public class Valakas extends L2AttackableAIScript
 	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
 		startQuestTimer("1111", 500, npc, null);
-		npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,2000,130,-1,0,10000,-20,1,1));
+		npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1700, 2000, 130, -1, 0, 10000, -20, 1, 1));
 		npc.broadcastPacket(new PlaySound(1, "B03_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
-		GrandBossManager.getInstance().setBossStatus(VALAKAS,DEAD);
+		GrandBossManager.getInstance().setBossStatus(VALAKAS, DEAD);
 		long respawnTime = (long) Config.Interval_Of_Valakas_Spawn + Rnd.get(Config.Random_Of_Valakas_Spawn);
 		startQuestTimer("valakas_unlock", respawnTime, null, null);
 		// also save the respawn time so that the info is maintained past reboots
@@ -1312,7 +1314,7 @@ public class Valakas extends L2AttackableAIScript
 				{
 					player.sendPacket(new PlaySound(1, "B03_A", 1, npc.getObjectId(), 212852, -114842, -1632));
 					player.sendPacket(new SocialAction(npc.getObjectId(), 3));
-				}	
+				}
 			}
 		}
 		return;
@@ -1890,4 +1892,4 @@ public class Valakas extends L2AttackableAIScript
 		// now call the constructor (starts up the ai)
 		new Valakas(-1, "valakas", "ai");
 	}
-}
+}

+ 111 - 110
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Zaken.java

@@ -40,7 +40,6 @@ import com.l2jserver.util.Rnd;
 
 /**
  * Zaken AI
- * 
  */
 public class Zaken extends L2AttackableAIScript
 {
@@ -78,9 +77,9 @@ public class Zaken extends L2AttackableAIScript
 		-3488, -3488, -3488, -3488, -3488, -3216, -3216, -3216, -3216, -3216, -2944, -2944, -2944, -2944, -2944
 	};
 	
-	//ZAKEN Status Tracking :
-	private static final byte ALIVE = 0; //Zaken is spawned.
-	private static final byte DEAD = 1; //Zaken has been killed.
+	// ZAKEN Status Tracking :
+	private static final byte ALIVE = 0; // Zaken is spawned.
+	private static final byte DEAD = 1; // Zaken has been killed.
 	
 	private static L2BossZone _Zone;
 	
@@ -91,6 +90,7 @@ public class Zaken extends L2AttackableAIScript
 		// Zaken doors handling
 		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
 		{
+			@Override
 			public void run()
 			{
 				try
@@ -100,6 +100,7 @@ public class Zaken extends L2AttackableAIScript
 						DoorTable.getInstance().getDoor(21240006).openMe();
 						ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
 						{
+							@Override
 							public void run()
 							{
 								try
@@ -123,7 +124,7 @@ public class Zaken extends L2AttackableAIScript
 		
 		int[] mobs =
 		{
-				ZAKEN, doll_blader_b, vale_master_b, pirates_zombie_captain_b, pirates_zombie_b
+			ZAKEN, doll_blader_b, vale_master_b, pirates_zombie_captain_b, pirates_zombie_b
 		};
 		registerMobs(mobs);
 		_Zone = GrandBossManager.getInstance().getZone(55312, 219168, -3223);
@@ -188,7 +189,7 @@ public class Zaken extends L2AttackableAIScript
 			startQuestTimer("1003", 1700, null, null, true);
 		}
 		_1001 = 1;
-		startQuestTimer("1001", 1000, npc, null, true); //buffs,random teleports
+		startQuestTimer("1001", 1000, npc, null, true); // buffs,random teleports
 	}
 	
 	@Override
@@ -224,7 +225,7 @@ public class Zaken extends L2AttackableAIScript
 			}
 			if (getTimeHour() < 5)
 			{
-				if (sk_4223 == 1) //use night face if zaken have day face
+				if (sk_4223 == 1) // use night face if zaken have day face
 				{
 					npc.setTarget(npc);
 					npc.doCast(SkillTable.getInstance().getInfo(4224, 1));
@@ -232,7 +233,7 @@ public class Zaken extends L2AttackableAIScript
 					_ai2 = npc.getY();
 					_ai3 = npc.getZ();
 				}
-				if (sk_4227 == 0) //use zaken regeneration
+				if (sk_4227 == 0) // use zaken regeneration
 				{
 					npc.setTarget(npc);
 					npc.doCast(SkillTable.getInstance().getInfo(4227, 1));
@@ -243,8 +244,7 @@ public class Zaken extends L2AttackableAIScript
 					int i1 = 1;
 					if (((L2Attackable) npc).getMostHated() != null)
 					{
-						if ((((((L2Attackable) npc).getMostHated().getX() - _ai1) * (((L2Attackable) npc).getMostHated().getX() - _ai1)) + ((((L2Attackable) npc).getMostHated().getY() - _ai2) * (((L2Attackable) npc)
-								.getMostHated().getY() - _ai2))) > (1500 * 1500))
+						if ((((((L2Attackable) npc).getMostHated().getX() - _ai1) * (((L2Attackable) npc).getMostHated().getX() - _ai1)) + ((((L2Attackable) npc).getMostHated().getY() - _ai2) * (((L2Attackable) npc).getMostHated().getY() - _ai2))) > (1500 * 1500))
 							i0 = 1;
 						else
 							i0 = 0;
@@ -360,7 +360,7 @@ public class Zaken extends L2AttackableAIScript
 					_quest1 = 0;
 				}
 			}
-			else if (sk_4223 == 0) //use day face if not night time
+			else if (sk_4223 == 0) // use day face if not night time
 			{
 				npc.setTarget(npc);
 				npc.doCast(SkillTable.getInstance().getInfo(4223, 1));
@@ -393,125 +393,125 @@ public class Zaken extends L2AttackableAIScript
 			if (_ai4 == 1)
 			{
 				int rr = Rnd.get(15);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, Xcoords[rr] + Rnd.get(650), Ycoords[rr] + Rnd.get(650), Zcoords[rr], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, Xcoords[rr] + Rnd.get(650), Ycoords[rr] + Rnd.get(650), Zcoords[rr], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 2;
 			}
 			else if (_ai4 == 2)
 			{
 				int rr = Rnd.get(15);
-				((L2Attackable)addSpawn(doll_blader_b, Xcoords[rr] + Rnd.get(650), Ycoords[rr] + Rnd.get(650), Zcoords[rr], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, Xcoords[rr] + Rnd.get(650), Ycoords[rr] + Rnd.get(650), Zcoords[rr], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 3;
 			}
 			else if (_ai4 == 3)
 			{
-				((L2Attackable)addSpawn(vale_master_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 4;
 			}
 			else if (_ai4 == 4)
 			{
-				((L2Attackable)addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, Xcoords[Rnd.get(15)] + Rnd.get(650), Ycoords[Rnd.get(15)] + Rnd.get(650), Zcoords[Rnd.get(15)], Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 5;
 			}
 			else if (_ai4 == 5)
 			{
-				((L2Attackable)addSpawn(doll_blader_b, 52675, 219371, -3290, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 52687, 219596, -3368, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 52672, 219740, -3418, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 52857, 219992, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 52959, 219997, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 53381, 220151, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 54236, 220948, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54885, 220144, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55264, 219860, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 55399, 220263, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55679, 220129, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 56276, 220783, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 57173, 220234, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 56267, 218826, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56294, 219482, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 56094, 219113, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56364, 218967, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 57113, 218079, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56186, 217153, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55440, 218081, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 55202, 217940, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55225, 218236, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54973, 218075, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 53412, 218077, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54226, 218797, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54394, 219067, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54139, 219253, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 54262, 219480, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 52675, 219371, -3290, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 52687, 219596, -3368, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 52672, 219740, -3418, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 52857, 219992, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 52959, 219997, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 53381, 220151, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 54236, 220948, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54885, 220144, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55264, 219860, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 55399, 220263, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55679, 220129, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 56276, 220783, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 57173, 220234, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 56267, 218826, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56294, 219482, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 56094, 219113, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56364, 218967, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 57113, 218079, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56186, 217153, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55440, 218081, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 55202, 217940, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55225, 218236, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54973, 218075, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 53412, 218077, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54226, 218797, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54394, 219067, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54139, 219253, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 54262, 219480, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 6;
 			}
 			else if (_ai4 == 6)
 			{
-				((L2Attackable)addSpawn(pirates_zombie_b, 53412, 218077, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54413, 217132, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 54841, 217132, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 55372, 217128, -3343, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 55893, 217122, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 56282, 217237, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 56963, 218080, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 56267, 218826, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56294, 219482, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 56094, 219113, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56364, 218967, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 56276, 220783, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 57173, 220234, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54885, 220144, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55264, 219860, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 55399, 220263, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55679, 220129, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 54236, 220948, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 54464, 219095, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54226, 218797, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54394, 219067, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54139, 219253, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 54262, 219480, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 53412, 218077, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55440, 218081, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 55202, 217940, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55225, 218236, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54973, 218075, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 53412, 218077, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54413, 217132, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 54841, 217132, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 55372, 217128, -3343, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 55893, 217122, -3488, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 56282, 217237, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 56963, 218080, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 56267, 218826, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56294, 219482, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 56094, 219113, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56364, 218967, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 56276, 220783, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 57173, 220234, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54885, 220144, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55264, 219860, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 55399, 220263, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55679, 220129, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 54236, 220948, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 54464, 219095, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54226, 218797, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54394, 219067, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54139, 219253, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 54262, 219480, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 53412, 218077, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55440, 218081, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 55202, 217940, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55225, 218236, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54973, 218075, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 7;
 			}
 			else if (_ai4 == 7)
 			{
-				((L2Attackable)addSpawn(pirates_zombie_b, 54228, 217504, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54181, 217168, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 54714, 217123, -3168, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 55298, 217127, -3073, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 55787, 217130, -2993, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 56284, 217216, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 56963, 218080, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 56267, 218826, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56294, 219482, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 56094, 219113, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 56364, 218967, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 56276, 220783, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 57173, 220234, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54885, 220144, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55264, 219860, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 55399, 220263, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55679, 220129, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 54236, 220948, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 54464, 219095, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54226, 218797, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(vale_master_b, 54394, 219067, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54139, 219253, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(doll_blader_b, 54262, 219480, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 53412, 218077, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 54280, 217200, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55440, 218081, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_captain_b, 55202, 217940, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 55225, 218236, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
-				((L2Attackable)addSpawn(pirates_zombie_b, 54973, 218075, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54228, 217504, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54181, 217168, -3216, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 54714, 217123, -3168, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 55298, 217127, -3073, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 55787, 217130, -2993, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 56284, 217216, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 56963, 218080, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 56267, 218826, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56294, 219482, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 56094, 219113, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 56364, 218967, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 56276, 220783, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 57173, 220234, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54885, 220144, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55264, 219860, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 55399, 220263, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55679, 220129, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 54236, 220948, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 54464, 219095, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54226, 218797, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(vale_master_b, 54394, 219067, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54139, 219253, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(doll_blader_b, 54262, 219480, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 53412, 218077, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 54280, 217200, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55440, 218081, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_captain_b, 55202, 217940, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 55225, 218236, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
+				((L2Attackable) addSpawn(pirates_zombie_b, 54973, 218075, -2944, Rnd.get(65536), false, 0)).setIsRaidMinion(true);
 				_ai4 = 8;
 				cancelQuestTimer("1003", null, null);
 			}
@@ -525,7 +525,7 @@ public class Zaken extends L2AttackableAIScript
 		}
 		else if (event.equalsIgnoreCase("CreateOnePrivateEx"))
 		{
-			((L2Attackable)addSpawn(npc.getNpcId(), npc.getX(), npc.getY(), npc.getZ(), 0, false, 0)).setIsRaidMinion(true);
+			((L2Attackable) addSpawn(npc.getNpcId(), npc.getX(), npc.getY(), npc.getZ(), 0, false, 0)).setIsRaidMinion(true);
 		}
 		return super.onAdvEvent(event, npc, player);
 	}
@@ -541,7 +541,7 @@ public class Zaken extends L2AttackableAIScript
 		if (getTimeHour() < 5 && callerId != ZAKEN && npcId == ZAKEN)
 		{
 			int damage = 0; // well damage required :x
-			if (npc.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE && _ai0 == 0 && damage < 10 && Rnd.get((30 * 15)) < 1)//todo - damage missing
+			if (npc.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE && _ai0 == 0 && damage < 10 && Rnd.get((30 * 15)) < 1)// todo - damage missing
 			{
 				_ai0 = 1;
 				_ai1 = caller.getX();
@@ -749,7 +749,8 @@ public class Zaken extends L2AttackableAIScript
 				}
 			}
 			if (getTimeHour() < 5)
-			{}
+			{
+			}
 			else if (npc.getCurrentHp() < ((npc.getMaxHp() * _quest2) / 4.0))
 			{
 				_quest2 = (_quest2 - 1);
@@ -772,7 +773,7 @@ public class Zaken extends L2AttackableAIScript
 		{
 			npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
 			GrandBossManager.getInstance().setBossStatus(ZAKEN, DEAD);
-			//time is 36hour	+/- 17hour
+			// time is 36hour +/- 17hour
 			long respawnTime = (long) Config.Interval_Of_Zaken_Spawn + Rnd.get(Config.Random_Of_Zaken_Spawn);
 			startQuestTimer("zaken_unlock", respawnTime, null, null);
 			cancelQuestTimer("1001", npc, null);
@@ -948,4 +949,4 @@ public class Zaken extends L2AttackableAIScript
 		// now call the constructor (starts up the ai)
 		new Zaken(-1, "zaken", "ai");
 	}
-}
+}

+ 11 - 9
L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/BanditStronghold/BanditStronghold.java

@@ -14,8 +14,11 @@
  */
 package conquerablehalls.flagwar.BanditStronghold;
 
+import java.util.Collection;
+
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2CharPosition;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.zone.type.L2ResidenceHallTeleportZone;
 
 import conquerablehalls.flagwar.FlagWar;
@@ -52,16 +55,15 @@ public final class BanditStronghold extends FlagWar
 		INNER_DOORS_TO_OPEN[0] = 22170003;
 		INNER_DOORS_TO_OPEN[1] = 22170004;
 
-		FLAG_COORDS[0] = new int[]{83699,-17468,-1774,19048};
-		FLAG_COORDS[1] = new int[]{82053,-17060,-1784,5432};
-		FLAG_COORDS[2] = new int[]{82142,-15528,-1799,58792};
-		FLAG_COORDS[3] = new int[]{83544,-15266,-1770,44976};
-		FLAG_COORDS[4] = new int[]{84609,-16041,-1769,35816};
-		FLAG_COORDS[5] = new int[]{81981,-15708,-1858,60392};
-		FLAG_COORDS[6] = new int[]{84375,-17060,-1860,27712};
+		FLAG_COORDS[0] = new Location(83699,-17468,-1774,19048);
+		FLAG_COORDS[1] = new Location(82053,-17060,-1784,5432);
+		FLAG_COORDS[2] = new Location(82142,-15528,-1799,58792);
+		FLAG_COORDS[3] = new Location(83544,-15266,-1770,44976);
+		FLAG_COORDS[4] = new Location(84609,-16041,-1769,35816);
+		FLAG_COORDS[5] = new Location(81981,-15708,-1858,60392);
+		FLAG_COORDS[6] = new Location(84375,-17060,-1860,27712);
 
-		java.util.Collection<L2ResidenceHallTeleportZone> zoneList 
-		= ZoneManager.getInstance().getAllZones(L2ResidenceHallTeleportZone.class);
+		Collection<L2ResidenceHallTeleportZone> zoneList = ZoneManager.getInstance().getAllZones(L2ResidenceHallTeleportZone.class);
 		
 		for(L2ResidenceHallTeleportZone teleZone : zoneList)
 		{

+ 5 - 11
L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java

@@ -82,7 +82,7 @@ public abstract class FlagWar extends ClanHallSiegeEngine
 	
 	protected static int[] OUTTER_DOORS_TO_OPEN = new int[2];
 	protected static int[] INNER_DOORS_TO_OPEN = new int[2];
-	protected static int[][] FLAG_COORDS = new int[7][4];
+	protected static Location[] FLAG_COORDS = new Location[7];
 	
 	protected static L2ResidenceHallTeleportZone[] TELE_ZONES = new L2ResidenceHallTeleportZone[6];
 	
@@ -289,7 +289,7 @@ public abstract class FlagWar extends ClanHallSiegeEngine
 					if(attacker == null)
 						continue;
 					html.replaceAll("%clan"+i+"%", clan.getName());
-					html.replaceAll("%clanMem"+i+"%", String.valueOf(((ClanData)_data.values()[i]).players.size()));
+					html.replaceAll("%clanMem"+i+"%", String.valueOf(_data.values()[i].players.size()));
 				}
 				if(_data.size() < 5)
 				{
@@ -552,22 +552,16 @@ public abstract class FlagWar extends ClanHallSiegeEngine
 				index = data.flag - FLAG_RED;
 			else
 				index = clanId == _hall.getOwnerId()? 5 : 6;
-			int[] coords = FLAG_COORDS[index];		
+			Location loc = FLAG_COORDS[index];		
 			
 			data.flagInstance = new L2Spawn(flagTemplate);			
-			data.flagInstance.setLocx(coords[0]);
-			data.flagInstance.setLocy(coords[1]);
-			data.flagInstance.setLocz(coords[2]);
-			data.flagInstance.setHeading(coords[3]);
+			data.flagInstance.setLocation(loc);
 			data.flagInstance.setRespawnDelay(10000);
 			data.flagInstance.setAmount(1);
 			data.flagInstance.init();
 			
 			data.warrior = new L2Spawn(mahumTemplate);
-			data.warrior.setLocx(coords[0] + 25);
-			data.warrior.setLocy(coords[1] + 25);
-			data.warrior.setLocz(coords[2]);
-			data.warrior.setHeading(coords[3]);
+			data.warrior.setLocation(loc);
 			data.warrior.setRespawnDelay(10000);
 			data.warrior.setAmount(1);
 			data.warrior.init();

+ 16 - 14
L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/WildBeastReserve/WildBeastReserve.java

@@ -14,8 +14,11 @@
  */
 package conquerablehalls.flagwar.WildBeastReserve;
 
+import java.util.Collection;
+
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2CharPosition;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.zone.type.L2ResidenceHallTeleportZone;
 
 import conquerablehalls.flagwar.FlagWar;
@@ -46,22 +49,21 @@ public final class WildBeastReserve extends FlagWar
 		
 		MESSENGER 					= 35627;
 		
-		FLAG_COORDS[0] = new int[]{56963,-92211,-1303,60611};
-		FLAG_COORDS[1] = new int[]{58090,-91641,-1303,47274};
-		FLAG_COORDS[2] = new int[]{58908,-92556,-1303,34450};
-		FLAG_COORDS[3] = new int[]{58336,-93600,-1303,21100};
-		FLAG_COORDS[4] = new int[]{57152,-93360,-1303,8400};
-		FLAG_COORDS[5] = new int[]{59116,-93251,-1302,31000};
-		FLAG_COORDS[6] = new int[]{56432,-92864,-1303,64000};
+		FLAG_COORDS[0] 				= new Location(56963,-92211,-1303,60611);
+		FLAG_COORDS[1] 				= new Location(58090,-91641,-1303,47274);
+		FLAG_COORDS[2] 				= new Location(58908,-92556,-1303,34450);
+		FLAG_COORDS[3] 				= new Location(58336,-93600,-1303,21100);
+		FLAG_COORDS[4] 				= new Location(57152,-93360,-1303,8400);
+		FLAG_COORDS[5] 				= new Location(59116,-93251,-1302,31000);
+		FLAG_COORDS[6] 				= new Location(56432,-92864,-1303,64000);
 		
-		OUTTER_DOORS_TO_OPEN[0] = 21150003;
-		OUTTER_DOORS_TO_OPEN[1] = 21150004;
+		OUTTER_DOORS_TO_OPEN[0] 	= 21150003;
+		OUTTER_DOORS_TO_OPEN[1] 	= 21150004;
 		
-		INNER_DOORS_TO_OPEN[0] = 21150001;
-		INNER_DOORS_TO_OPEN[1] = 21150002;
+		INNER_DOORS_TO_OPEN[0]		= 21150001;
+		INNER_DOORS_TO_OPEN[1]		= 21150002;
 		 
-		java.util.Collection<L2ResidenceHallTeleportZone> zoneList 
-		= ZoneManager.getInstance().getAllZones(L2ResidenceHallTeleportZone.class);
+		Collection<L2ResidenceHallTeleportZone> zoneList = ZoneManager.getInstance().getAllZones(L2ResidenceHallTeleportZone.class);
 		
 		for(L2ResidenceHallTeleportZone teleZone : zoneList)
 		{
@@ -70,7 +72,7 @@ public final class WildBeastReserve extends FlagWar
 			
 			int id = teleZone.getResidenceZoneId();
 			
-			if(id < 0 || id >= 6)						// Shouldnt happen
+			if(id < 0 || id >= 6) // Shouldn't happen
 				continue;
 			
 			TELE_ZONES[id] = teleZone;

+ 35 - 33
L2J_DataPack_BETA/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java

@@ -17,6 +17,7 @@ package events.FreyaCelebration;
 import com.l2jserver.gameserver.instancemanager.QuestManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -53,37 +54,38 @@ public class FreyaCelebration extends Quest
 		NpcStringId.I_AM_ICE_QUEEN_FREYA_THIS_FEELING_AND_EMOTION_ARE_NOTHING_BUT_A_PART_OF_MELISSAA_MEMORIES
 	};
 	
-	private static final int[][] _spawns = {
-		{ -119494, 44882, 360, 24576 },
-		{ -117239, 46842, 360, 49151 },
-		{ -84023, 243051, -3728, 4096 },
-		{ -84411, 244813, -3728, 57343 },
-		{ 46908, 50856, -2992, 8192 },
-		{ 45538, 48357, -3056, 18000 },
-		{ -45372, -114104, -240, 16384 },
-		{ -45278, -112766, -240, 0 },
-		{ 9929, 16324, -4568, 62999 },
-		{ 11546, 17599, -4584, 46900 },
-		{ 115096, -178370, -880, 0 },
-		{ -13727, 122117, -2984, 16384 },
-		{ -14129, 123869, -3112, 40959 },
-		{ -83156, 150994, -3120, 0 },
-		{ -81031, 150038, -3040, 0 },
-		{ 16111, 142850, -2696, 16000 },
-		{ 17275, 145000, -3032, 25000 },
-		{ 111004, 218928, -3536, 16384 },
-		{ 81755, 146487, -3528, 32768 },
-		{ 82145, 148609, -3464, 0 },
-		{ 83037, 149324, -3464, 44000 },
-		{ 81987, 53723, -1488, 0 },
-		{ 147200, 25614, -2008, 16384 },
-		{ 148557, 26806, -2200, 32768 },
-		{ 147421, -55435, -2728, 49151 },
-		{ 148206, -55786, -2776, 61439 },
-		{ 85584, -142490, -1336, 0 },
-		{ 86865, -142915, -1336, 26000 },
-		{ 43966, -47709, -792, 49999 },
-		{ 43165, -48461, -792, 17000 }
+	private static final Location[] _spawns = 
+	{
+		new Location(-119494, 44882, 360, 24576),
+		new Location(-117239, 46842, 360, 49151),
+		new Location(-84023, 243051, -3728, 4096),
+		new Location(-84411, 244813, -3728, 57343),
+		new Location(46908, 50856, -2992, 8192),
+		new Location(45538, 48357, -3056, 18000),
+		new Location(-45372, -114104, -240, 16384),
+		new Location(-45278, -112766, -240, 0),
+		new Location(9929, 16324, -4568, 62999),
+		new Location(11546, 17599, -4584, 46900),
+		new Location(115096, -178370, -880, 0),
+		new Location(-13727, 122117, -2984, 16384),
+		new Location(-14129, 123869, -3112, 40959),
+		new Location(-83156, 150994, -3120, 0),
+		new Location(-81031, 150038, -3040, 0),
+		new Location(16111, 142850, -2696, 16000),
+		new Location(17275, 145000, -3032, 25000),
+		new Location(111004, 218928, -3536, 16384),
+		new Location(81755, 146487, -3528, 32768),
+		new Location(82145, 148609, -3464, 0),
+		new Location(83037, 149324, -3464, 44000),
+		new Location(81987, 53723, -1488, 0),
+		new Location(147200, 25614, -2008, 16384),
+		new Location(148557, 26806, -2200, 32768),
+		new Location(147421, -55435, -2728, 49151),
+		new Location(148206, -55786, -2776, 61439),
+		new Location(85584, -142490, -1336, 0),
+		new Location(86865, -142915, -1336, 26000),
+		new Location(43966, -47709, -792, 49999),
+		new Location(43165, -48461, -792, 17000)
 	};
 	
 	@Override
@@ -180,9 +182,9 @@ public class FreyaCelebration extends Quest
 		addFirstTalkId(_freya);
 		addTalkId(_freya);
 		addSkillSeeId(_freya);
-		for (int[] _spawn : _spawns)
+		for (Location loc : _spawns)
 		{
-			addSpawn(_freya, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
+			addSpawn(_freya, loc, false, 0);
 		}
 	}
 	

+ 20 - 19
L2J_DataPack_BETA/dist/game/data/scripts/events/GiftOfVitality/GiftOfVitality.java

@@ -16,6 +16,7 @@ package events.GiftOfVitality;
 
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.instancemanager.QuestManager;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2SummonInstance;
@@ -37,24 +38,24 @@ public class GiftOfVitality extends Quest
 	
 	private static final int _jack = 4306;
 	
-	private static final int[][] _spawns =
+	private static final Location[] _spawns =
 	{
-		{  82766,  149438, -3464, 33865 },
-		{  82286,   53291, -1488, 15250 },
-		{ 147060,   25943, -2008, 18774 },
-		{ 148096,  -55466, -2728, 40541 },
-		{  87116, -141332, -1336, 52193 },
-		{  43521,  -47542,  -792, 31655 },
-		{  17203,  144949, -3024, 18166 },
-		{ 111164,  221062, -3544,  2714 },
-		{ -13869,  122063, -2984, 18270 },
-		{ -83161,  150915, -3120, 17311 },
-		{  45402,   48355, -3056, 49153 },
-		{ 115616, -177941,  -896, 30708 },
-		{ -44928, -113608,  -192, 30212 },
-		{ -84037,  243194, -3728,  8992 },
-		{-119690,   44583,   360, 29289 },
-		{  12084,   16576, -4584, 57345 }
+		new Location(82766, 149438, -3464, 33865),
+		new Location(82286, 53291, -1488, 15250),
+		new Location(147060, 25943, -2008, 18774),
+		new Location(148096, -55466, -2728, 40541),
+		new Location(87116, -141332, -1336, 52193),
+		new Location(43521, -47542, -792, 31655),
+		new Location(17203, 144949, -3024, 18166),
+		new Location(111164, 221062, -3544, 2714),
+		new Location(-13869, 122063, -2984, 18270),
+		new Location(-83161, 150915, -3120, 17311),
+		new Location(45402, 48355, -3056, 49153),
+		new Location(115616, -177941, -896, 30708),
+		new Location(-44928, -113608, -192, 30212),
+		new Location(-84037, 243194, -3728, 8992),
+		new Location(-119690, 44583, 360, 29289),
+		new Location(12084, 16576, -4584, 57345)
 	};
 	
 	public GiftOfVitality(int questId, String name, String descr)
@@ -63,8 +64,8 @@ public class GiftOfVitality extends Quest
 		addStartNpc(_jack);
 		addFirstTalkId(_jack);
 		addTalkId(_jack);
-		for(int[] _spawn : _spawns)
-			addSpawn(_jack, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
+		for(Location loc : _spawns)
+			addSpawn(_jack, loc, false, 0);
 	}
 	
 	@Override

+ 107 - 102
L2J_DataPack_BETA/dist/game/data/scripts/events/HeavyMedal/HeavyMedal.java

@@ -15,6 +15,7 @@
 package events.HeavyMedal;
 
 import com.l2jserver.gameserver.instancemanager.QuestManager;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -22,105 +23,109 @@ import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.util.Rnd;
 
 /**
- ** @author Gnacik
- **
- ** Retail Event : 'Heavy Medals'
+ ** @author Gnacik Retail Event : 'Heavy Medals'
  */
 public class HeavyMedal extends Quest
 {
-	private final static int	CAT_ROY = 31228;
-	private final static int	CAT_WINNIE = 31229;
-	private final static int	GLITTERING_MEDAL = 6393;
+	private final static int CAT_ROY = 31228;
+	private final static int CAT_WINNIE = 31229;
+	private final static int GLITTERING_MEDAL = 6393;
 	
-	private final static int	WIN_CHANCE = 50;
+	private final static int WIN_CHANCE = 50;
 	
-	private final static int[] MEDALS = { 5,10,20,40 };
-	private final static int[] BADGES = { 6399,6400,6401,6402 };
+	private final static int[] MEDALS =
+	{
+		5, 10, 20, 40
+	};
+	private final static int[] BADGES =
+	{
+		6399, 6400, 6401, 6402
+	};
 	
-	private static final int[][] _spawns_winnie =
+	private static final Location[] _spawns_winnie =
 	{
-		{-44342,-113726,-240,0},
-		{-44671,-115437,-240,22500},
-		{-13073,122841,-3117,0},
-		{-13972,121893,-2988,32768},
-		{-14843,123710,-3117,8192},
-		{11327,15682,-4584,25000},
-		{11243,17712,-4574,57344},
-		{18154,145192,-3054,7400},
-		{19214,144327,-3097,32768},
-		{19459,145775,-3086,48000},
-		{17418,170217,-3507,36000},
-		{47146,49382,-3059,32000},
-		{44157,50827,-3059,57344},
-		{79798,55629,-1560,0},
-		{83328,55769,-1525,32768},
-		{80986,54452,-1525,32768},
-		{83329,149095,-3405,49152},
-		{82277,148564,-3467,0},
-		{81620,148689,-3464,32768},
-		{81691,145610,-3467,32768},
-		{114719,-178742,-821,0},
-		{115708,-182422,-1449,0},
-		{-80731,151152,-3043,28672},
-		{-84097,150171,-3129,4096},
-		{-82678,151666,-3129,49152},
-		{117459,76664,-2695,38000},
-		{115936,76488,-2711,59000},
-		{119576,76940,-2275,40960},
-		{-84516,243015,-3730,34000},
-		{-86031,243153,-3730,60000},
-		{147124,27401,-2192,40960},
-		{147985,25664,-2000,16384},
-		{111724,221111,-3543,16384},
-		{107899,218149,-3675,0},
-		{114920,220080,-3632,32768},
-		{147924,-58052,-2979,49000},
-		{147285,-56461,-2776,33000},
-		{44176,-48688,-800,33000},
-		{44294,-47642,-792,50000}
+		new Location(-44342, -113726, -240, 0),
+		new Location(-44671, -115437, -240, 22500),
+		new Location(-13073, 122841, -3117, 0),
+		new Location(-13972, 121893, -2988, 32768),
+		new Location(-14843, 123710, -3117, 8192),
+		new Location(11327, 15682, -4584, 25000),
+		new Location(11243, 17712, -4574, 57344),
+		new Location(18154, 145192, -3054, 7400),
+		new Location(19214, 144327, -3097, 32768),
+		new Location(19459, 145775, -3086, 48000),
+		new Location(17418, 170217, -3507, 36000),
+		new Location(47146, 49382, -3059, 32000),
+		new Location(44157, 50827, -3059, 57344),
+		new Location(79798, 55629, -1560, 0),
+		new Location(83328, 55769, -1525, 32768),
+		new Location(80986, 54452, -1525, 32768),
+		new Location(83329, 149095, -3405, 49152),
+		new Location(82277, 148564, -3467, 0),
+		new Location(81620, 148689, -3464, 32768),
+		new Location(81691, 145610, -3467, 32768),
+		new Location(114719, -178742, -821, 0),
+		new Location(115708, -182422, -1449, 0),
+		new Location(-80731, 151152, -3043, 28672),
+		new Location(-84097, 150171, -3129, 4096),
+		new Location(-82678, 151666, -3129, 49152),
+		new Location(117459, 76664, -2695, 38000),
+		new Location(115936, 76488, -2711, 59000),
+		new Location(119576, 76940, -2275, 40960),
+		new Location(-84516, 243015, -3730, 34000),
+		new Location(-86031, 243153, -3730, 60000),
+		new Location(147124, 27401, -2192, 40960),
+		new Location(147985, 25664, -2000, 16384),
+		new Location(111724, 221111, -3543, 16384),
+		new Location(107899, 218149, -3675, 0),
+		new Location(114920, 220080, -3632, 32768),
+		new Location(147924, -58052, -2979, 49000),
+		new Location(147285, -56461, -2776, 33000),
+		new Location(44176, -48688, -800, 33000),
+		new Location(44294, -47642, -792, 50000)
 	};
 	
-	private static final int[][] _spawns_roy =
+	private static final Location[] _spawns_roy =
 	{
-		{-44337,-113669,-224,0},
-		{-44628,-115409,-240,22500},
-		{-13073,122801,-3117,0},
-		{-13949,121934,-2988,32768},
-		{-14786,123686,-3117,8192},
-		{11281,15652,-4584,25000},
-		{11303,17732,-4574,57344},
-		{18178,145149,-3054,7400},
-		{19208,144380,-3097,32768},
-		{19508,145775,-3086,48000},
-		{17396,170259,-3507,36000},
-		{47151,49436,-3059,32000},
-		{44122,50784,-3059,57344},
-		{79806,55570,-1560,0},
-		{83328,55824,-1525,32768},
-		{80986,54504,-1525,32768},
-		{83332,149160,-3405,49152},
-		{82277,148598,-3467,0},
-		{81621,148725,-3467,32768},
-		{81680,145656,-3467,32768},
-		{114733,-178691,-821,0},
-		{115708,-182362,-1449,0},
-		{-80789,151073,-3043,28672},
-		{-84049,150176,-3129,4096},
-		{-82623,151666,-3129,49152},
-		{117498,76630,-2695,38000},
-		{115914,76449,-2711,59000},
-		{119536,76988,-2275,40960},
-		{-84516,242971,-3730,34000},
-		{-86003,243205,-3730,60000},
-		{147184,27405,-2192,17000},
-		{147920,25664,-2000,16384},
-		{111776,221104,-3543,16384},
-		{107904,218096,-3675,0},
-		{114920,220020,-3632,32768},
-		{147888,-58048,-2979,49000},
-		{147262,-56450,-2776,33000},
-		{44176,-48732,-800,33000},
-		{44319,-47640,-792,50000}
+		new Location(-44337, -113669, -224, 0),
+		new Location(-44628, -115409, -240, 22500),
+		new Location(-13073, 122801, -3117, 0),
+		new Location(-13949, 121934, -2988, 32768),
+		new Location(-14786, 123686, -3117, 8192),
+		new Location(11281, 15652, -4584, 25000),
+		new Location(11303, 17732, -4574, 57344),
+		new Location(18178, 145149, -3054, 7400),
+		new Location(19208, 144380, -3097, 32768),
+		new Location(19508, 145775, -3086, 48000),
+		new Location(17396, 170259, -3507, 36000),
+		new Location(47151, 49436, -3059, 32000),
+		new Location(44122, 50784, -3059, 57344),
+		new Location(79806, 55570, -1560, 0),
+		new Location(83328, 55824, -1525, 32768),
+		new Location(80986, 54504, -1525, 32768),
+		new Location(83332, 149160, -3405, 49152),
+		new Location(82277, 148598, -3467, 0),
+		new Location(81621, 148725, -3467, 32768),
+		new Location(81680, 145656, -3467, 32768),
+		new Location(114733, -178691, -821, 0),
+		new Location(115708, -182362, -1449, 0),
+		new Location(-80789, 151073, -3043, 28672),
+		new Location(-84049, 150176, -3129, 4096),
+		new Location(-82623, 151666, -3129, 49152),
+		new Location(117498, 76630, -2695, 38000),
+		new Location(115914, 76449, -2711, 59000),
+		new Location(119536, 76988, -2275, 40960),
+		new Location(-84516, 242971, -3730, 34000),
+		new Location(-86003, 243205, -3730, 60000),
+		new Location(147184, 27405, -2192, 17000),
+		new Location(147920, 25664, -2000, 16384),
+		new Location(111776, 221104, -3543, 16384),
+		new Location(107904, 218096, -3675, 0),
+		new Location(114920, 220020, -3632, 32768),
+		new Location(147888, -58048, -2979, 49000),
+		new Location(147262, -56450, -2776, 33000),
+		new Location(44176, -48732, -800, 33000),
+		new Location(44319, -47640, -792, 50000)
 	};
 	
 	public HeavyMedal(int questId, String name, String descr)
@@ -132,10 +137,10 @@ public class HeavyMedal extends Quest
 		addTalkId(CAT_WINNIE);
 		addFirstTalkId(CAT_ROY);
 		addFirstTalkId(CAT_WINNIE);
-		for(int[] _spawn : _spawns_roy)
-			addSpawn(CAT_ROY, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
-		for(int[] _spawn : _spawns_winnie)
-			addSpawn(CAT_WINNIE, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
+		for (Location loc : _spawns_roy)
+			addSpawn(CAT_ROY, loc, false, 0);
+		for (Location loc : _spawns_winnie)
+			addSpawn(CAT_WINNIE, loc, false, 0);
 	}
 	
 	@Override
@@ -157,27 +162,27 @@ public class HeavyMedal extends Quest
 		else if (event.equalsIgnoreCase("heads") || event.equalsIgnoreCase("tails"))
 		{
 			if (st.getQuestItemsCount(GLITTERING_MEDAL) < MEDALS[level])
-				return "31229-"+event.toLowerCase()+"-10.htm";
+				return "31229-" + event.toLowerCase() + "-10.htm";
 			
 			st.takeItems(GLITTERING_MEDAL, MEDALS[level]);
 			
-			if(Rnd.get(100) > WIN_CHANCE)
+			if (Rnd.get(100) > WIN_CHANCE)
 			{
 				level = 0;
 			}
 			else
 			{
-				if (level>0)
-					st.takeItems(BADGES[level-1], -1);
+				if (level > 0)
+					st.takeItems(BADGES[level - 1], -1);
 				st.giveItems(BADGES[level], 1);
 				st.playSound("Itemsound.quest_itemget");
 				level++;
 			}
-			return "31229-"+event.toLowerCase()+"-"+String.valueOf(level)+".htm";
+			return "31229-" + event.toLowerCase() + "-" + String.valueOf(level) + ".htm";
 		}
 		else if (event.equalsIgnoreCase("talk"))
 		{
-			return String.valueOf(npc.getNpcId())+ "-lvl-"+String.valueOf(level)+".htm";
+			return String.valueOf(npc.getNpcId()) + "-lvl-" + String.valueOf(level) + ".htm";
 		}
 		return htmltext;
 	}
@@ -191,13 +196,13 @@ public class HeavyMedal extends Quest
 			Quest q = QuestManager.getInstance().getQuest(getName());
 			st = q.newQuestState(player);
 		}
-		return npc.getNpcId()+".htm";
+		return npc.getNpcId() + ".htm";
 	}
 	
 	public int checkLevel(QuestState st)
 	{
 		int _lev = 0;
-		if(st == null)
+		if (st == null)
 			return 0;
 		else if (st.getQuestItemsCount(6402) > 0)
 			_lev = 4;
@@ -215,4 +220,4 @@ public class HeavyMedal extends Quest
 	{
 		new HeavyMedal(-1, "HeavyMedal", "events");
 	}
-}
+}

+ 104 - 95
L2J_DataPack_BETA/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java

@@ -17,6 +17,7 @@ package events.MasterOfEnchanting;
 import java.util.Date;
 
 import com.l2jserver.gameserver.instancemanager.QuestManager;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
@@ -27,87 +28,95 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.util.Rnd;
 
 /**
- * Event Code for "Master of Enchanting"
- * http://www.lineage2.com/archive/2009/06/master_of_encha.html
- * @author  Gnacik
+ * Event Code for "Master of Enchanting" http://www.lineage2.com/archive/2009/06/master_of_encha.html
+ * @author Gnacik
  */
 public class MasterOfEnchanting extends Quest
 {
-	private static final int _master_yogi 			= 32599;
-	private static final int _master_yogi_staff		= 13539;
-	private static final int _master_yogi_scroll	= 13540;
-
-	private static final int _adena					= 57;
-	private static final int _staff_price			= 1000000;
-	private static final int _scroll_24_price		= 5000000;
-	private static final int _scroll_24_time		= 6;
-
-	private static final int _scroll_1_price		= 500000;
-	private static final int _scroll_10_price		= 5000000;
-
-	private static final int[] _hat_shadow_reward	= { 13074, 13075, 13076 };
-	private static final int[] _hat_event_reward	= { 13518, 13519, 13522 };
-	private static final int[] _crystal_reward 		= { 9570, 9571, 9572 };
+	private static final int _master_yogi = 32599;
+	private static final int _master_yogi_staff = 13539;
+	private static final int _master_yogi_scroll = 13540;
+	
+	private static final int _adena = 57;
+	private static final int _staff_price = 1000000;
+	private static final int _scroll_24_price = 5000000;
+	private static final int _scroll_24_time = 6;
+	
+	private static final int _scroll_1_price = 500000;
+	private static final int _scroll_10_price = 5000000;
+	
+	private static final int[] _hat_shadow_reward =
+	{
+		13074, 13075, 13076
+	};
+	private static final int[] _hat_event_reward =
+	{
+		13518, 13519, 13522
+	};
+	private static final int[] _crystal_reward =
+	{
+		9570, 9571, 9572
+	};
 	
 	@SuppressWarnings("deprecation")
-	private static final Date _eventStart = new Date(2009, 7, 1); 
+	private static final Date _eventStart = new Date(2011, 7, 1);
 	
-	private static final int[][] _spawns =
+	private static final Location[] _spawns =
 	{
-		{16111,142850,-2707,16000},
-		{17275,145000,-3037,25000},
-		{83037,149324,-3470,44000},
-		{82145,148609,-3468,0},
-		{81755,146487,-3534,32768},
-		{-81031,150038,-3045,0},
-		{-83156,150994,-3130,0},
-		{-13727,122117,-2990,16384},
-		{-14129,123869,-3118,40959},
-		{-84411,244813,-3730,57343},
-		{-84023,243051,-3730,4096},
-		{46908,50856,-2997,8192},
-		{45538,48357,-3061,18000},
-		{9929,16324,-4576,62999},
-		{11546,17599,-4586,46900},
-		{81987,53723,-1497,0},
-		{81083,56118,-1562,32768},
-		{147200,25614,-2014,16384},
-		{148557,26806,-2206,32768},
-		{117356,76708,-2695,49151},
-		{115887,76382,-2714,0},
-		{-117239,46842,367,49151},
-		{-119494,44882,367,24576},
-		{111004,218928,-3544,16384},
-		{108426,221876,-3600,49151},
-		{-45278,-112766,-241,0},
-		{-45372,-114104,-241,16384},
-		{115096,-178370,-891,0},
-		{116199,-182694,-1506,0},
-		{86865,-142915,-1341,26000},
-		{85584,-142490,-1343,0},
-		{147421,-55435,-2736,49151},
-		{148206,-55786,-2782,61439},
-		{43165,-48461,-797,17000},
-		{43966,-47709,-798,49999}
+		new Location(16111, 142850, -2707, 16000),
+		new Location(17275, 145000, -3037, 25000),
+		new Location(83037, 149324, -3470, 44000),
+		new Location(82145, 148609, -3468, 0),
+		new Location(81755, 146487, -3534, 32768),
+		new Location(-81031, 150038, -3045, 0),
+		new Location(-83156, 150994, -3130, 0),
+		new Location(-13727, 122117, -2990, 16384),
+		new Location(-14129, 123869, -3118, 40959),
+		new Location(-84411, 244813, -3730, 57343),
+		new Location(-84023, 243051, -3730, 4096),
+		new Location(46908, 50856, -2997, 8192),
+		new Location(45538, 48357, -3061, 18000),
+		new Location(9929, 16324, -4576, 62999),
+		new Location(11546, 17599, -4586, 46900),
+		new Location(81987, 53723, -1497, 0),
+		new Location(81083, 56118, -1562, 32768),
+		new Location(147200, 25614, -2014, 16384),
+		new Location(148557, 26806, -2206, 32768),
+		new Location(117356, 76708, -2695, 49151),
+		new Location(115887, 76382, -2714, 0),
+		new Location(-117239, 46842, 367, 49151),
+		new Location(-119494, 44882, 367, 24576),
+		new Location(111004, 218928, -3544, 16384),
+		new Location(108426, 221876, -3600, 49151),
+		new Location(-45278, -112766, -241, 0),
+		new Location(-45372, -114104, -241, 16384),
+		new Location(115096, -178370, -891, 0),
+		new Location(116199, -182694, -1506, 0),
+		new Location(86865, -142915, -1341, 26000),
+		new Location(85584, -142490, -1343, 0),
+		new Location(147421, -55435, -2736, 49151),
+		new Location(148206, -55786, -2782, 61439),
+		new Location(43165, -48461, -797, 17000),
+		new Location(43966, -47709, -798, 49999)
 	};
-
+	
 	public MasterOfEnchanting(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
 		addStartNpc(_master_yogi);
 		addFirstTalkId(_master_yogi);
 		addTalkId(_master_yogi);
-		for(int[] _spawn : _spawns)
-			addSpawn(_master_yogi, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
+		for (Location loc : _spawns)
+			addSpawn(_master_yogi, loc, false, 0);
 	}
-
+	
 	@Override
 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = "";
 		QuestState st = player.getQuestState(getName());
 		Quest q = QuestManager.getInstance().getQuest(getName());
-
+		
 		htmltext = event;
 		if (event.equalsIgnoreCase("buy_staff"))
 		{
@@ -125,7 +134,7 @@ public class MasterOfEnchanting extends Quest
 			long _curr_time = System.currentTimeMillis();
 			String value = q.loadGlobalQuestVar(player.getAccountName());
 			long _reuse_time = value == "" ? 0 : Long.parseLong(value);
-			if(player.getCreateDate().after(_eventStart))
+			if (player.getCreateDate().after(_eventStart))
 				return "32599-bidth.htm";
 			
 			if (_curr_time > _reuse_time)
@@ -182,7 +191,7 @@ public class MasterOfEnchanting extends Quest
 			{
 				st.takeItems(_adena, _scroll_1_price);
 				st.giveItems(_master_yogi_scroll, 1);
-				htmltext = "32599-scroll-ok.htm";				
+				htmltext = "32599-scroll-ok.htm";
 			}
 			else
 				htmltext = "32599-s1-no.htm";
@@ -193,7 +202,7 @@ public class MasterOfEnchanting extends Quest
 			{
 				st.takeItems(_adena, _scroll_10_price);
 				st.giveItems(_master_yogi_scroll, 10);
-				htmltext = "32599-scroll-ok.htm";				
+				htmltext = "32599-scroll-ok.htm";
 			}
 			else
 				htmltext = "32599-s10-no.htm";
@@ -202,76 +211,76 @@ public class MasterOfEnchanting extends Quest
 		{
 			if (st.getItemEquipped(Inventory.PAPERDOLL_RHAND) == _master_yogi_staff && st.getEnchantLevel(_master_yogi_staff) > 3)
 			{
-				switch(st.getEnchantLevel(_master_yogi_staff))
+				switch (st.getEnchantLevel(_master_yogi_staff))
 				{
 					case 4:
-						st.giveItems(6406, 1);	// Firework
+						st.giveItems(6406, 1); // Firework
 						break;
 					case 5:
-						st.giveItems(6406, 2);	// Firework
-						st.giveItems(6407, 1);	// Large Firework
+						st.giveItems(6406, 2); // Firework
+						st.giveItems(6407, 1); // Large Firework
 						break;
 					case 6:
-						st.giveItems(6406, 3);	// Firework
-						st.giveItems(6407, 2);	// Large Firework
+						st.giveItems(6406, 3); // Firework
+						st.giveItems(6407, 2); // Large Firework
 						break;
 					case 7:
 						st.giveItems(_hat_shadow_reward[Rnd.get(3)], 1);
 						break;
 					case 8:
-						st.giveItems(955, 1);	// Scroll: Enchant Weapon (D)
+						st.giveItems(955, 1); // Scroll: Enchant Weapon (D)
 						break;
 					case 9:
-						st.giveItems(955, 1);	// Scroll: Enchant Weapon (D)
-						st.giveItems(956, 1);	// Scroll: Enchant Armor (D)
+						st.giveItems(955, 1); // Scroll: Enchant Weapon (D)
+						st.giveItems(956, 1); // Scroll: Enchant Armor (D)
 						break;
 					case 10:
-						st.giveItems(951, 1);	// Scroll: Enchant Weapon (C)
+						st.giveItems(951, 1); // Scroll: Enchant Weapon (C)
 						break;
 					case 11:
-						st.giveItems(951, 1);	// Scroll: Enchant Weapon (C)
-						st.giveItems(952, 1);	// Scroll: Enchant Armor (C)
+						st.giveItems(951, 1); // Scroll: Enchant Weapon (C)
+						st.giveItems(952, 1); // Scroll: Enchant Armor (C)
 						break;
 					case 12:
-						st.giveItems(948, 1);	// Scroll: Enchant Armor (B)
+						st.giveItems(948, 1); // Scroll: Enchant Armor (B)
 						break;
 					case 13:
-						st.giveItems(729, 1);	// Scroll: Enchant Weapon (A)
+						st.giveItems(729, 1); // Scroll: Enchant Weapon (A)
 						break;
 					case 14:
 						st.giveItems(_hat_event_reward[Rnd.get(3)], 1);
 						break;
 					case 15:
-						st.giveItems(13992, 1);	// Grade S Accessory Chest (Event)
+						st.giveItems(13992, 1); // Grade S Accessory Chest (Event)
 						break;
 					case 16:
-						st.giveItems(8762, 1);	// Top-Grade Life Stone: level 76
+						st.giveItems(8762, 1); // Top-Grade Life Stone: level 76
 						break;
 					case 17:
-						st.giveItems(959, 1);	// Scroll: Enchant Weapon (S)
+						st.giveItems(959, 1); // Scroll: Enchant Weapon (S)
 						break;
 					case 18:
-						st.giveItems(13991, 1);	// Grade S Armor Chest (Event)
+						st.giveItems(13991, 1); // Grade S Armor Chest (Event)
 						break;
 					case 19:
-						st.giveItems(13990, 1);	// Grade S Weapon Chest (Event)
+						st.giveItems(13990, 1); // Grade S Weapon Chest (Event)
 						break;
-					case 20:						
-						st.giveItems(_crystal_reward[Rnd.get(3)], 1);	// Red/Blue/Green Soul Crystal - Stage 14
+					case 20:
+						st.giveItems(_crystal_reward[Rnd.get(3)], 1); // Red/Blue/Green Soul Crystal - Stage 14
 						break;
 					case 21:
-						st.giveItems(8762, 1);	// Top-Grade Life Stone: level 76
-						st.giveItems(8752, 1);	// High-Grade Life Stone: level 76
-						st.giveItems(_crystal_reward[Rnd.get(3)], 1);	// Red/Blue/Green Soul Crystal - Stage 14
+						st.giveItems(8762, 1); // Top-Grade Life Stone: level 76
+						st.giveItems(8752, 1); // High-Grade Life Stone: level 76
+						st.giveItems(_crystal_reward[Rnd.get(3)], 1); // Red/Blue/Green Soul Crystal - Stage 14
 						break;
 					case 22:
-						st.giveItems(13989, 1);	// S80 Grade Armor Chest (Event)
+						st.giveItems(13989, 1); // S80 Grade Armor Chest (Event)
 						break;
 					case 23:
-						st.giveItems(13988, 1);	// S80 Grade Weapon Chest (Event)
+						st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event)
 					default:
-						if(st.getEnchantLevel(_master_yogi_staff) > 23)
-							st.giveItems(13988, 1);	// S80 Grade Weapon Chest (Event)
+						if (st.getEnchantLevel(_master_yogi_staff) > 23)
+							st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event)
 						break;
 				}
 				st.takeItems(_master_yogi_staff, 1);
@@ -280,10 +289,10 @@ public class MasterOfEnchanting extends Quest
 			else
 				htmltext = "32599-rewardnostaff.htm";
 		}
-
+		
 		return htmltext;
 	}
-
+	
 	@Override
 	public String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
@@ -297,9 +306,9 @@ public class MasterOfEnchanting extends Quest
 		htmltext = npc.getNpcId() + ".htm";
 		return htmltext;
 	}
-
+	
 	public static void main(String[] args)
 	{
 		new MasterOfEnchanting(-1, "MasterOfEnchanting", "events");
 	}
-}
+}

+ 52 - 53
L2J_DataPack_BETA/dist/game/data/scripts/events/TheValentineEvent/TheValentineEvent.java

@@ -15,66 +15,65 @@
 package events.TheValentineEvent;
 
 import com.l2jserver.gameserver.instancemanager.QuestManager;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
 
-
 /**
- * Event Code for "The Valentine Event"
- * http://www.lineage2.com/archive/2009/01/the_valentine_e.html
- * @author  Gnat
+ * Event Code for "The Valentine Event" http://www.lineage2.com/archive/2009/01/the_valentine_e.html
+ * @author Gnacik
  */
 public class TheValentineEvent extends Quest
 {
-	private static final int _npc		= 4301;
-	private static final int _recipe	= 20191;
+	private static final int _npc = 4301;
+	private static final int _recipe = 20191;
 	
-	private static final int[][] _spawns =
+	private static final Location[] _spawns =
 	{
-		{87792,-142240,-1343,44000},
-		{87616,-140688,-1542,16500},
-		{114733,-178691,-821,0},
-		{115708,-182362,-1449,0},
-		{-44337,-113669,-224,0},
-		{-44628,-115409,-240,22500},
-		{-13073,122801,-3117,0},
-		{-13949,121934,-2988,32768},
-		{-14822,123708,-3117,8192},
-		{-80762,151118,-3043,28672},
-		{-84049,150176,-3129,4096},
-		{-82623,151666,-3129,49152},
-		{-84516,242971,-3730,34000},
-		{-86003,243205,-3730,60000},
-		{11281,15652,-4584,25000},
-		{11303,17732,-4574,57344},
-		{47151,49436,-3059,32000},
-		{79806,55570,-1560,0},
-		{83328,55824,-1525,32768},
-		{80986,54504,-1525,32768},
-		{18178,145149,-3054,7400},
-		{19208,144380,-3097,32768},
-		{19508,145775,-3086,48000},
-		{17396,170259,-3507,30000},
-		{83332,149160,-3405,49152},
-		{82277,148598,-3467,0},
-		{81621,148725,-3467,32768},
-		{81680,145656,-3533,32768},
-		{117498,76630,-2695,38000},
-		{115914,76449,-2711,59000},
-		{119536,76988,-2275,40960},
-		{147120,27312,-2192,40960},
-		{147920,25664,-2000,16384},
-		{111776,221104,-3543,16384},
-		{107904,218096,-3675,0},
-		{114920,220020,-3632,32768},
-		{147888,-58048,-2979,49000},
-		{147285,-56461,-2776,11500},
-		{44176,-48732,-800,33000},
-		{44294,-47642,-792,50000},
-		{-116677,46824,360,34828}
+		new Location(87792, -142240, -1343, 44000),
+		new Location(87616, -140688, -1542, 16500),
+		new Location(114733, -178691, -821, 0),
+		new Location(115708, -182362, -1449, 0),
+		new Location(-44337, -113669, -224, 0),
+		new Location(-44628, -115409, -240, 22500),
+		new Location(-13073, 122801, -3117, 0),
+		new Location(-13949, 121934, -2988, 32768),
+		new Location(-14822, 123708, -3117, 8192),
+		new Location(-80762, 151118, -3043, 28672),
+		new Location(-84049, 150176, -3129, 4096),
+		new Location(-82623, 151666, -3129, 49152),
+		new Location(-84516, 242971, -3730, 34000),
+		new Location(-86003, 243205, -3730, 60000),
+		new Location(11281, 15652, -4584, 25000),
+		new Location(11303, 17732, -4574, 57344),
+		new Location(47151, 49436, -3059, 32000),
+		new Location(79806, 55570, -1560, 0),
+		new Location(83328, 55824, -1525, 32768),
+		new Location(80986, 54504, -1525, 32768),
+		new Location(18178, 145149, -3054, 7400),
+		new Location(19208, 144380, -3097, 32768),
+		new Location(19508, 145775, -3086, 48000),
+		new Location(17396, 170259, -3507, 30000),
+		new Location(83332, 149160, -3405, 49152),
+		new Location(82277, 148598, -3467, 0),
+		new Location(81621, 148725, -3467, 32768),
+		new Location(81680, 145656, -3533, 32768),
+		new Location(117498, 76630, -2695, 38000),
+		new Location(115914, 76449, -2711, 59000),
+		new Location(119536, 76988, -2275, 40960),
+		new Location(147120, 27312, -2192, 40960),
+		new Location(147920, 25664, -2000, 16384),
+		new Location(111776, 221104, -3543, 16384),
+		new Location(107904, 218096, -3675, 0),
+		new Location(114920, 220020, -3632, 32768),
+		new Location(147888, -58048, -2979, 49000),
+		new Location(147285, -56461, -2776, 11500),
+		new Location(44176, -48732, -800, 33000),
+		new Location(44294, -47642, -792, 50000),
+		new Location(-116677, 46824, 360, 34828)
 	};
 	
 	public TheValentineEvent(int questId, String name, String descr)
@@ -83,8 +82,8 @@ public class TheValentineEvent extends Quest
 		addStartNpc(_npc);
 		addFirstTalkId(_npc);
 		addTalkId(_npc);
-		for(int[] _spawn : _spawns)
-			addSpawn(_npc, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
+		for (Location loc : _spawns)
+			addSpawn(_npc, loc, false, 0);
 	}
 	
 	@Override
@@ -94,9 +93,9 @@ public class TheValentineEvent extends Quest
 		QuestState st = player.getQuestState(getName());
 		
 		htmltext = event;
-		if(event.equalsIgnoreCase("4301-3.htm"))
+		if (event.equalsIgnoreCase("4301-3.htm"))
 		{
-			if(st.getState() == State.COMPLETED)
+			if (st.getState() == State.COMPLETED)
 			{
 				htmltext = "4301-4.htm";
 			}
@@ -128,4 +127,4 @@ public class TheValentineEvent extends Quest
 	{
 		new TheValentineEvent(-1, "TheValentineEvent", "events");
 	}
-}
+}

+ 12 - 13
L2J_DataPack_BETA/dist/game/data/scripts/teleports/MithrilMines/MithrilMines.java

@@ -14,6 +14,7 @@
  */
 package teleports.MithrilMines;
 
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -21,14 +22,14 @@ import com.l2jserver.gameserver.model.quest.QuestState;
 
 public class MithrilMines extends Quest
 {
-	private static final int[][] data =
+	private static final Location[] _locs =
 	{
-		{171946, -173352, 3440},
-		{175499, -181586, -904},
-		{173462, -174011, 3480},
-		{179299, -182831, -224},
-		{178591, -184615, 360},
-		{175499, -181586, -904}
+		new Location(171946, -173352, 3440),
+		new Location(175499, -181586, -904),
+		new Location(173462, -174011, 3480),
+		new Location(179299, -182831, -224),
+		new Location(178591, -184615, 360),
+		new Location(175499, -181586, -904)
 	};
 	
 	private final static int npcId = 32652;
@@ -47,14 +48,12 @@ public class MithrilMines extends Quest
 		String htmltext = "";
 		QuestState st = player.getQuestState(getName());
 		
-		int loc = Integer.parseInt(event) - 1;
-		if (data.length > loc)
+		int index = Integer.parseInt(event) - 1;
+		if (_locs.length > index)
 		{
-			int x = data[loc][0];
-			int y = data[loc][1];
-			int z = data[loc][2];
+			Location loc = _locs[index];
 			
-			player.teleToLocation(x, y, z);
+			player.teleToLocation(loc, false);
 			st.exitQuest(true);
 		}
 		

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/teleports/NewbieTravelToken/NewbieTravelToken.java

@@ -52,7 +52,7 @@ public class NewbieTravelToken extends Quest
 				if (st.hasQuestItems(TOKEN))
 				{
 					st.takeItems(TOKEN, 1);
-					st.getPlayer().teleToLocation(DATA.get(npcId), false);
+					player.teleToLocation(DATA.get(npcId), false);
 				}
 				else
 				{

+ 6 - 4
L2J_DataPack_BETA/dist/game/data/scripts/teleports/NoblesseTeleport/NoblesseTeleport.java

@@ -20,12 +20,14 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
- * @author Plim
- * Original python script by Ham Wong
+ * @author Plim Original python script by Ham Wong
  */
 public class NoblesseTeleport extends Quest
 {
-	private static final int[] NPCs = { 30006, 30059, 30080, 30134, 30146, 30177, 30233, 30256, 30320, 30540, 30576, 30836, 30848, 30878, 30899, 31275, 31320, 31964, 32163 };
+	private static final int[] NPCs =
+	{
+		30006, 30059, 30080, 30134, 30146, 30177, 30233, 30256, 30320, 30540, 30576, 30836, 30848, 30878, 30899, 31275, 31320, 31964, 32163
+	};
 	
 	@Override
 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
@@ -40,7 +42,7 @@ public class NoblesseTeleport extends Quest
 			if (st.hasQuestItems(13722))
 				npc.showChatWindow(player, 3);
 			else
-				return"noble-nopass.htm";
+				return "noble-nopass.htm";
 		}
 		
 		return null;

+ 147 - 44
L2J_DataPack_BETA/dist/game/data/scripts/teleports/OracleTeleport/OracleTeleport.java

@@ -14,65 +14,172 @@
  */
 package teleports.OracleTeleport;
 
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.util.Util;
 
 public class OracleTeleport extends Quest
 {
 	private final static int[] TOWN_DAWN =
 	{
-		31078,31079,31080,31081,31083,31084,31082,31692,31694,31997,31168
+		31078, 31079, 31080, 31081, 31083, 31084, 31082, 31692, 31694, 31997, 31168
 	};
 	
 	private final static int[] TOWN_DUSK =
 	{
-		31085,31086,31087,31088,31090,31091,31089,31693,31695,31998,31169
+		31085, 31086, 31087, 31088, 31090, 31091, 31089, 31693, 31695, 31998, 31169
 	};
 	
 	private final static int[] TEMPLE_PRIEST =
 	{
-		31127,31128,31129,31130,31131,31137,31138,31139,31140,31141
+		31127, 31128, 31129, 31130, 31131, 31137, 31138, 31139, 31140, 31141
 	};
 	
 	private final static int[] RIFT_POSTERS =
 	{
-		31488,31489,31490,31491,31492,31493
+		31488, 31489, 31490, 31491, 31492, 31493
 	};
 	
 	private final static int[] TELEPORTERS =
 	{
-		31078,31079,31080,31081,31082,31083,31084,31692,31694,31997,31168,
-		31085,31086,31087,31088,31089,31090,31091,31693,31695,31998,31169,
-		31494,31495,31496,31497,31498,31499,31500,31501,31502,31503,31504,
-		31505,31506,31507,31095,31096,31097,31098,31099,31100,31101,31102,
-		31103,31104,31105,31106,31107,31108,31109,31110,31114,31115,31116,
-		31117,31118,31119,31120,31121,31122,31123,31124,31125
+		31078,
+		31079,
+		31080,
+		31081,
+		31082,
+		31083,
+		31084,
+		31692,
+		31694,
+		31997,
+		31168,
+		31085,
+		31086,
+		31087,
+		31088,
+		31089,
+		31090,
+		31091,
+		31693,
+		31695,
+		31998,
+		31169,
+		31494,
+		31495,
+		31496,
+		31497,
+		31498,
+		31499,
+		31500,
+		31501,
+		31502,
+		31503,
+		31504,
+		31505,
+		31506,
+		31507,
+		31095,
+		31096,
+		31097,
+		31098,
+		31099,
+		31100,
+		31101,
+		31102,
+		31103,
+		31104,
+		31105,
+		31106,
+		31107,
+		31108,
+		31109,
+		31110,
+		31114,
+		31115,
+		31116,
+		31117,
+		31118,
+		31119,
+		31120,
+		31121,
+		31122,
+		31123,
+		31124,
+		31125
 	};
 	
-	private final static int[][] RETURN_LOCS =
+	private final static Location[] RETURN_LOCS =
 	{
-		{-80555,150337,-3040},{-13953,121404,-2984},{16354,142820,-2696},{83369,149253,-3400},
-		{111386,220858,-3544},{83106,53965,-1488},{146983,26595,-2200},{148256,-55454,-2779},
-		{45664,-50318,-800},{86795,-143078,-1341},{115136,74717,-2608},{-82368,151568,-3120},
-		{-14748,123995,-3112},{18482,144576,-3056},{81623,148556,-3464},{112486,220123,-3592},
-		{82819,54607,-1520},{147570,28877,-2264},{149888,-56574,-2979},{44528,-48370,-800},
-		{85129,-142103,-1542},{116642,77510,-2688},{-41572,209731,-5087},{-52872,-250283,-7908},
-		{45256,123906,-5411},{46192,170290,-4981},{111273,174015,-5437},{-20604,-250789,-8165},
-		{-21726, 77385,-5171},{140405, 79679,-5427},{-52366, 79097,-4741},{118311,132797,-4829},
-		{172185,-17602,-4901},{ 83000,209213,-5439},{-19500, 13508,-4901},{12525, -248496,-9580},
-		{-41561,209225,-5087},{45242,124466,-5413},{110711,174010,-5439},{-22341,77375,-5173},
-		{-52889,79098,-4741},{117760,132794,-4831},{171792,-17609,-4901},{82564,209207,-5439},
-		{-41565,210048,-5085},{45278,123608,-5411},{111510,174013,-5437},{-21489,77372,-5171},
-		{-52016,79103,-4739},{118557,132804,-4829},{172570,-17605,-4899},{83347,209215,-5437},
-		{42495,143944,-5381},{45666,170300,-4981},{77138,78389,-5125},{139903,79674,-5429},
-		{-20021,13499,-4901},{113418,84535,-6541},{-52940,-250272,-7907},{46499,170301,-4979},
-		{-20280,-250785,-8163},{140673,79680,-5437},{-19182,13503,-4899},{12837,-248483,-9579}
+		new Location(-80555, 150337, -3040),
+		new Location(-13953, 121404, -2984),
+		new Location(16354, 142820, -2696),
+		new Location(83369, 149253, -3400),
+		new Location(111386, 220858, -3544),
+		new Location(83106, 53965, -1488),
+		new Location(146983, 26595, -2200),
+		new Location(148256, -55454, -2779),
+		new Location(45664, -50318, -800),
+		new Location(86795, -143078, -1341),
+		new Location(115136, 74717, -2608),
+		new Location(-82368, 151568, -3120),
+		new Location(-14748, 123995, -3112),
+		new Location(18482, 144576, -3056),
+		new Location(81623, 148556, -3464),
+		new Location(112486, 220123, -3592),
+		new Location(82819, 54607, -1520),
+		new Location(147570, 28877, -2264),
+		new Location(149888, -56574, -2979),
+		new Location(44528, -48370, -800),
+		new Location(85129, -142103, -1542),
+		new Location(116642, 77510, -2688),
+		new Location(-41572, 209731, -5087),
+		new Location(-52872, -250283, -7908),
+		new Location(45256, 123906, -5411),
+		new Location(46192, 170290, -4981),
+		new Location(111273, 174015, -5437),
+		new Location(-20604, -250789, -8165),
+		new Location(-21726, 77385, -5171),
+		new Location(140405, 79679, -5427),
+		new Location(-52366, 79097, -4741),
+		new Location(118311, 132797, -4829),
+		new Location(172185, -17602, -4901),
+		new Location(83000, 209213, -5439),
+		new Location(-19500, 13508, -4901),
+		new Location(12525, -248496, -9580),
+		new Location(-41561, 209225, -5087),
+		new Location(45242, 124466, -5413),
+		new Location(110711, 174010, -5439),
+		new Location(-22341, 77375, -5173),
+		new Location(-52889, 79098, -4741),
+		new Location(117760, 132794, -4831),
+		new Location(171792, -17609, -4901),
+		new Location(82564, 209207, -5439),
+		new Location(-41565, 210048, -5085),
+		new Location(45278, 123608, -5411),
+		new Location(111510, 174013, -5437),
+		new Location(-21489, 77372, -5171),
+		new Location(-52016, 79103, -4739),
+		new Location(118557, 132804, -4829),
+		new Location(172570, -17605, -4899),
+		new Location(83347, 209215, -5437),
+		new Location(42495, 143944, -5381),
+		new Location(45666, 170300, -4981),
+		new Location(77138, 78389, -5125),
+		new Location(139903, 79674, -5429),
+		new Location(-20021, 13499, -4901),
+		new Location(113418, 84535, -6541),
+		new Location(-52940, -250272, -7907),
+		new Location(46499, 170301, -4979),
+		new Location(-20280, -250785, -8163),
+		new Location(140673, 79680, -5437),
+		new Location(-19182, 13503, -4899),
+		new Location(12837, -248483, -9579)
 	};
 	
 	public OracleTeleport(int questId, String name, String descr)
@@ -116,19 +223,15 @@ public class OracleTeleport extends Quest
 		{
 			if (Util.contains(TEMPLE_PRIEST, npcId) && st.getState() == State.STARTED)
 			{
-				int x = RETURN_LOCS[st.getInt("id")][0];
-				int y = RETURN_LOCS[st.getInt("id")][1];
-				int z = RETURN_LOCS[st.getInt("id")][2];
-				player.teleToLocation(x, y, z);
+				Location loc = RETURN_LOCS[st.getInt("id")];
+				player.teleToLocation(loc, false);
 				player.setIsIn7sDungeon(false);
 				st.exitQuest(true);
 			}
 			else if (Util.contains(RIFT_POSTERS, npcId) && st.getState() == State.STARTED)
 			{
-				int x = RETURN_LOCS[st.getInt("id")][0];
-				int y = RETURN_LOCS[st.getInt("id")][1];
-				int z = RETURN_LOCS[st.getInt("id")][2];
-				player.teleToLocation(x, y, z);
+				Location loc = RETURN_LOCS[st.getInt("id")];
+				player.teleToLocation(loc, false);
 				htmltext = "rift_back.htm";
 				st.exitQuest(true);
 			}
@@ -274,7 +377,7 @@ public class OracleTeleport extends Quest
 			}
 			else if (player.getAllActiveQuests().length > 40)
 			{
-				player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TOO_MANY_QUESTS));
+				player.sendPacket(SystemMessageId.TOO_MANY_QUESTS);
 				st.exitQuest(true);
 			}
 			else if (!st.hasQuestItems(7079))
@@ -282,32 +385,32 @@ public class OracleTeleport extends Quest
 				htmltext = "ziggurat_nofrag.htm";
 				st.exitQuest(true);
 			}
-			else if (playerLevel >= 20 && playerLevel < 30 && st.getQuestItemsCount(57) < 2000)
+			else if (playerLevel >= 20 && playerLevel < 30 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 2000)
 			{
 				htmltext = "ziggurat_noadena.htm";
 				st.exitQuest(true);
 			}
-			else if (playerLevel >= 30 && playerLevel < 40 && st.getQuestItemsCount(57) < 4500)
+			else if (playerLevel >= 30 && playerLevel < 40 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 4500)
 			{
 				htmltext = "ziggurat_noadena.htm";
 				st.exitQuest(true);
 			}
-			else if (playerLevel >= 40 && playerLevel < 50 && st.getQuestItemsCount(57) < 8000)
+			else if (playerLevel >= 40 && playerLevel < 50 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 8000)
 			{
 				htmltext = "ziggurat_noadena.htm";
 				st.exitQuest(true);
 			}
-			else if (playerLevel >= 50 && playerLevel < 60 && st.getQuestItemsCount(57) < 12500)
+			else if (playerLevel >= 50 && playerLevel < 60 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 12500)
 			{
 				htmltext = "ziggurat_noadena.htm";
 				st.exitQuest(true);
 			}
-			else if (playerLevel >= 60 && playerLevel < 70 && st.getQuestItemsCount(57) < 18000)
+			else if (playerLevel >= 60 && playerLevel < 70 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 18000)
 			{
 				htmltext = "ziggurat_noadena.htm";
 				st.exitQuest(true);
 			}
-			else if (playerLevel >= 70 && st.getQuestItemsCount(57) < 24500)
+			else if (playerLevel >= 70 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 24500)
 			{
 				htmltext = "ziggurat_noadena.htm";
 				st.exitQuest(true);
@@ -323,4 +426,4 @@ public class OracleTeleport extends Quest
 	{
 		new OracleTeleport(-1, "OracleTeleport", "teleports");
 	}
-}
+}

+ 5 - 3
L2J_DataPack_BETA/dist/game/data/scripts/teleports/PaganTeleporters/PaganTeleporters.java

@@ -21,12 +21,14 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
- * @author Plim
- * Original python script by BiTi
+ * @author Plim Original python script by BiTi
  */
 public class PaganTeleporters extends Quest
 {
-	private static final int[] NPCS = { 32034, 32035, 32036, 32037, 32039, 32040 };
+	private static final int[] NPCS =
+	{
+		32034, 32035, 32036, 32037, 32039, 32040
+	};
 	
 	@Override
 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)

+ 12 - 13
L2J_DataPack_BETA/dist/game/data/scripts/teleports/StakatoNest/StakatoNest.java

@@ -14,6 +14,7 @@
  */
 package teleports.StakatoNest;
 
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -22,13 +23,13 @@ import com.l2jserver.gameserver.model.quest.State;
 
 public class StakatoNest extends Quest
 {
-	private final static int[][] data =
+	private final static Location[] _locs =
 	{
-		{80456, -52322, -5640},
-		{88718, -46214, -4640},
-		{87464, -54221, -5120},
-		{80848, -49426, -5128},
-		{87682, -43291, -4128}
+		new Location(80456, -52322, -5640),
+		new Location(88718, -46214, -4640),
+		new Location(87464, -54221, -5120),
+		new Location(80848, -49426, -5128),
+		new Location(87682, -43291, -4128)
 	};
 	
 	private final static int npcId = 32640;
@@ -48,23 +49,21 @@ public class StakatoNest extends Quest
 		if (st == null)
 			st = newQuestState(player);
 		
-		int loc = Integer.parseInt(event) - 1;
+		int index = Integer.parseInt(event) - 1;
 		
-		if (data.length > loc)
+		if (_locs.length > index)
 		{
-			int x = data[loc][0];
-			int y = data[loc][1];
-			int z = data[loc][2];
+			Location loc = _locs[index];
 			
 			if (player.getParty() != null)
 			{
 				for (L2PcInstance partyMember : player.getParty().getPartyMembers())
 				{
 					if (partyMember.isInsideRadius(player, 1000, true, true))
-						partyMember.teleToLocation(x, y, z);
+						partyMember.teleToLocation(loc, true);
 				}
 			}
-			player.teleToLocation(x, y, z);
+			player.teleToLocation(loc, false);
 			st.exitQuest(true);
 		}
 		

+ 13 - 11
L2J_DataPack_BETA/dist/game/data/scripts/teleports/StrongholdsTeleports/StrongholdsTeleports.java

@@ -19,26 +19,28 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 
 /**
- * @author Plim
- * Original python script by Kerberos
+ * @author Plim Original python script by Kerberos
  */
 public class StrongholdsTeleports extends Quest
 {
-	private final static int[] NPCs = {32163,32181,32184,32186};
+	private final static int[] NPCs =
+	{
+		32163, 32181, 32184, 32186
+	};
 	
 	@Override
 	public String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = "";
-
-	    if (player.getLevel() < 20)
-	       htmltext = String.valueOf(npc.getNpcId()) + ".htm";
-	    else
-	       htmltext = String.valueOf(npc.getNpcId()) + "-no.htm";
-	    
-	    return htmltext;
+		
+		if (player.getLevel() < 20)
+			htmltext = String.valueOf(npc.getNpcId()) + ".htm";
+		else
+			htmltext = String.valueOf(npc.getNpcId()) + "-no.htm";
+		
+		return htmltext;
 	}
-
+	
 	public StrongholdsTeleports(int questId, String name, String descr)
 	{
 		super(questId, name, descr);

+ 5 - 6
L2J_DataPack_BETA/dist/game/data/scripts/teleports/Survivor/Survivor.java

@@ -20,8 +20,7 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
- * @author Plim
- * Original python script by Kerberos
+ * @author Plim Original python script by Kerberos
  */
 public class Survivor extends Quest
 {
@@ -40,14 +39,14 @@ public class Survivor extends Quest
 				event = "32632-3.htm";
 			else if (st.getQuestItemsCount(57) >= 150000)
 			{
-				st.takeItems(57,150000);
-		        player.teleToLocation(-149406, 255247, -80);
+				st.takeItems(57, 150000);
+				player.teleToLocation(-149406, 255247, -80);
 			}
 		}
 		
 		return event;
 	}
-
+	
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
@@ -58,7 +57,7 @@ public class Survivor extends Quest
 		
 		return "32632-1.htm";
 	}
-
+	
 	public Survivor(int questId, String name, String descr)
 	{
 		super(questId, name, descr);

+ 37 - 37
L2J_DataPack_BETA/dist/game/data/scripts/teleports/TeleportToFantasy/TeleportToFantasy.java

@@ -18,6 +18,7 @@ import java.util.Map;
 
 import javolution.util.FastMap;
 
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -27,36 +28,35 @@ import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 
 /**
- * @author Plim
- * Original python script by Kerberos
+ * @author Plim Original python script by Kerberos
  */
 public class TeleportToFantasy extends Quest
 {
 	private static final int PADDIES = 32378;
 	private static final Map<Integer, Integer> TELEPORTERS = new FastMap<Integer, Integer>();
 	
-	private static final int[][] RETURN_LOCS = 
+	private static final Location[] RETURN_LOCS =
 	{
-		{-80826,149775,-3043},
-		{-12672,122776,-3116},
-		{15670,142983,-2705},
-		{83400,147943,-3404},
-		{111409,219364,-3545},
-		{82956,53162,-1495},
-		{146331,25762,-2018},
-		{116819,76994,-2714},
-		{43835,-47749,-792},
-		{147930,-55281,-2728},
-		{87386,-143246,-1293},
-		{12882,181053,-3560}
+		new Location(-80826, 149775, -3043),
+		new Location(-12672, 122776, -3116),
+		new Location(15670, 142983, -2705),
+		new Location(83400, 147943, -3404),
+		new Location(111409, 219364, -3545),
+		new Location(82956, 53162, -1495),
+		new Location(146331, 25762, -2018),
+		new Location(116819, 76994, -2714),
+		new Location(43835, -47749, -792),
+		new Location(147930, -55281, -2728),
+		new Location(87386, -143246, -1293),
+		new Location(12882, 181053, -3560)
 	};
 	
-	private static final int[][] ISLE_LOCS = 
+	private static final Location[] ISLE_LOCS =
 	{
-		{-58752,-56898,-2032},
-		{-59716,-57868,-2032},
-		{-60691,-56893,-2032},
-		{-59720,-55921,-2032}
+		new Location(-58752, -56898, -2032),
+		new Location(-59716, -57868, -2032),
+		new Location(-60691, -56893, -2032),
+		new Location(-59720, -55921, -2032)
 	};
 	
 	@Override
@@ -72,7 +72,7 @@ public class TeleportToFantasy extends Quest
 		{
 			int random_id = st.getRandom(ISLE_LOCS.length);
 			
-			st.getPlayer().teleToLocation(ISLE_LOCS[random_id][0], ISLE_LOCS[random_id][1], ISLE_LOCS[random_id][2]);
+			player.teleToLocation(ISLE_LOCS[random_id], false);
 			st.setState(State.STARTED);
 			st.set("id", String.valueOf(TELEPORTERS.get(npc.getNpcId())));
 		}
@@ -82,14 +82,14 @@ public class TeleportToFantasy extends Quest
 			if (st.getState() == State.STARTED && st.getInt("id") > 0)
 			{
 				int return_id = st.getInt("id") - 1;
-		        st.getPlayer().teleToLocation(RETURN_LOCS[return_id][0],RETURN_LOCS[return_id][1],RETURN_LOCS[return_id][2]);
-		        st.unset("id");
+				player.teleToLocation(RETURN_LOCS[return_id], false);
+				st.unset("id");
 			}
 			
 			else
 			{
-				player.sendPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_ILL_BE_SENDING_YOU_BACK_TO_RUNE_TOWNSHIP_WHICH_IS_THE_NEAREST_TOWN));
-		        st.getPlayer().teleToLocation(43835,-47749,-792);
+				player.sendPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_ILL_BE_SENDING_YOU_BACK_TO_RUNE_TOWNSHIP_WHICH_IS_THE_NEAREST_TOWN));
+				player.teleToLocation(43835, -47749, -792);
 			}
 			
 			st.exitQuest(true);
@@ -101,18 +101,18 @@ public class TeleportToFantasy extends Quest
 	public TeleportToFantasy(int questId, String name, String descr)
 	{
 		super(questId, name, descr);
-
-		TELEPORTERS.put(30059, 3); //TRISHA
-		TELEPORTERS.put(30080, 4); //CLARISSA
-		TELEPORTERS.put(30177, 6); //VALENTIA
-		TELEPORTERS.put(30233, 8); //ESMERALDA
-		TELEPORTERS.put(30256, 2); //BELLA
-		TELEPORTERS.put(30320, 1); //RICHLIN
-		TELEPORTERS.put(30848, 7); //ELISA
-		TELEPORTERS.put(30899, 5); //FLAUEN
-		TELEPORTERS.put(31320, 9); //ILYANA
-		TELEPORTERS.put(31275, 10); //TATIANA
-		TELEPORTERS.put(31964, 11); //BILIA
+		
+		TELEPORTERS.put(30059, 3); // TRISHA
+		TELEPORTERS.put(30080, 4); // CLARISSA
+		TELEPORTERS.put(30177, 6); // VALENTIA
+		TELEPORTERS.put(30233, 8); // ESMERALDA
+		TELEPORTERS.put(30256, 2); // BELLA
+		TELEPORTERS.put(30320, 1); // RICHLIN
+		TELEPORTERS.put(30848, 7); // ELISA
+		TELEPORTERS.put(30899, 5); // FLAUEN
+		TELEPORTERS.put(31320, 9); // ILYANA
+		TELEPORTERS.put(31275, 10); // TATIANA
+		TELEPORTERS.put(31964, 11); // BILIA
 		
 		for (int npcId : TELEPORTERS.keySet())
 		{

+ 29 - 29
L2J_DataPack_BETA/dist/game/data/scripts/teleports/TeleportToRaceTrack/TeleportToRaceTrack.java

@@ -18,6 +18,7 @@ import java.util.Map;
 
 import javolution.util.FastMap;
 
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -26,8 +27,7 @@ import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 
 /**
- * @author Plim
- * Original python script by DraX & updated by DrLecter
+ * @author Plim Original python script by DraX & updated by DrLecter
  */
 public class TeleportToRaceTrack extends Quest
 {
@@ -35,20 +35,20 @@ public class TeleportToRaceTrack extends Quest
 	
 	private static final Map<Integer, Integer> TELEPORTERS = new FastMap<Integer, Integer>();
 	
-	private static final int[][] RETURN_LOCS = 
+	private static final Location[] RETURN_LOCS =
 	{
-		{-80826, 149775, -3043}, 
-		{-12672, 122776, -3116},
-		{15670, 142983, -2705}, 
-		{83400, 147943, -3404}, 
-		{111409, 219364, -3545}, 
-		{82956, 53162, -1495}, 
-		{146331, 25762, -2018}, 
-		{116819, 76994, -2714}, 
-		{43835, -47749, -792}, 
-		{147930, -55281, -2728}, 
-		{87386, -143246, -1293}, 
-		{12882, 181053, -3560}
+		new Location(-80826, 149775, -3043),
+		new Location(-12672, 122776, -3116),
+		new Location(15670, 142983, -2705),
+		new Location(83400, 147943, -3404),
+		new Location(111409, 219364, -3545),
+		new Location(82956, 53162, -1495),
+		new Location(146331, 25762, -2018),
+		new Location(116819, 76994, -2714),
+		new Location(43835, -47749, -792),
+		new Location(147930, -55281, -2728),
+		new Location(87386, -143246, -1293),
+		new Location(12882, 181053, -3560)
 	};
 	
 	@Override
@@ -74,7 +74,7 @@ public class TeleportToRaceTrack extends Quest
 				int return_id = st.getInt("id") - 1;
 				if (return_id < 13)
 				{
-					st.getPlayer().teleToLocation(RETURN_LOCS[return_id][0], RETURN_LOCS[return_id][1], RETURN_LOCS[return_id][2]);
+					st.getPlayer().teleToLocation(RETURN_LOCS[return_id], false);
 					st.unset("id");
 				}
 			}
@@ -95,18 +95,18 @@ public class TeleportToRaceTrack extends Quest
 	{
 		super(questId, name, descr);
 		
-		TELEPORTERS.put(30059, 3); //TRISHA
-		TELEPORTERS.put(30080, 4); //CLARISSA
-		TELEPORTERS.put(30177, 6); //VALENTIA
-		TELEPORTERS.put(30233, 8); //ESMERALDA
-		TELEPORTERS.put(30256, 2); //BELLA
-		TELEPORTERS.put(30320, 1); //RICHLIN
-		TELEPORTERS.put(30848, 7); //ELISA
-		TELEPORTERS.put(30899, 5); //FLAUEN
-		TELEPORTERS.put(31320, 9); //ILYANA
-		TELEPORTERS.put(31275, 10); //TATIANA
-		TELEPORTERS.put(31964, 11); //BILIA
-		TELEPORTERS.put(31210, 12); //RACE TRACK GK
+		TELEPORTERS.put(30059, 3); // TRISHA
+		TELEPORTERS.put(30080, 4); // CLARISSA
+		TELEPORTERS.put(30177, 6); // VALENTIA
+		TELEPORTERS.put(30233, 8); // ESMERALDA
+		TELEPORTERS.put(30256, 2); // BELLA
+		TELEPORTERS.put(30320, 1); // RICHLIN
+		TELEPORTERS.put(30848, 7); // ELISA
+		TELEPORTERS.put(30899, 5); // FLAUEN
+		TELEPORTERS.put(31320, 9); // ILYANA
+		TELEPORTERS.put(31275, 10); // TATIANA
+		TELEPORTERS.put(31964, 11); // BILIA
+		TELEPORTERS.put(31210, 12); // RACE TRACK GK
 		
 		for (int npcId : TELEPORTERS.keySet())
 		{
@@ -115,7 +115,7 @@ public class TeleportToRaceTrack extends Quest
 		}
 		
 		addStartNpc(RACE_MANAGER);
-        addTalkId(RACE_MANAGER);
+		addTalkId(RACE_MANAGER);
 	}
 	
 	public static void main(String[] args)

+ 12 - 9
L2J_DataPack_BETA/dist/game/data/scripts/teleports/TeleportWithCharm/TeleportWithCharm.java

@@ -20,16 +20,15 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
- * @author Plim
- * Original python script by DraX
+ * @author Plim Original python script by DraX
  */
 public class TeleportWithCharm extends Quest
 {
-	//NPCs
+	// NPCs
 	private final static int WHIRPY = 30540;
 	private final static int TAMIL = 30576;
 	
-	//ITEMS
+	// ITEMS
 	private final static int ORC_GATEKEEPER_CHARM = 1658;
 	private final static int DWARF_GATEKEEPER_TOKEN = 1659;
 	
@@ -45,10 +44,11 @@ public class TeleportWithCharm extends Quest
 		switch (npc.getNpcId())
 		{
 			case WHIRPY:
+			{
 				if (st.hasQuestItems(DWARF_GATEKEEPER_TOKEN))
 				{
-					st.takeItems(DWARF_GATEKEEPER_TOKEN,1);
-					st.getPlayer().teleToLocation(-80826,149775,-3043);
+					st.takeItems(DWARF_GATEKEEPER_TOKEN, 1);
+					st.getPlayer().teleToLocation(-80826, 149775, -3043);
 					st.exitQuest(true);
 				}
 				else
@@ -57,11 +57,13 @@ public class TeleportWithCharm extends Quest
 					htmltext = "30540-01.htm";
 				}
 				break;
+			}
 			case TAMIL:
+			{
 				if (st.hasQuestItems(ORC_GATEKEEPER_CHARM))
 				{
-					st.takeItems(ORC_GATEKEEPER_CHARM,1);
-					st.getPlayer().teleToLocation(-80826,149775,-3043);
+					st.takeItems(ORC_GATEKEEPER_CHARM, 1);
+					st.getPlayer().teleToLocation(-80826, 149775, -3043);
 					st.exitQuest(true);
 				}
 				else
@@ -70,11 +72,12 @@ public class TeleportWithCharm extends Quest
 					htmltext = "30576-01.htm";
 				}
 				break;
+			}
 		}
 		
 		return htmltext;
 	}
-
+	
 	public TeleportWithCharm(int questId, String name, String descr)
 	{
 		super(questId, name, descr);

+ 14 - 15
L2J_DataPack_BETA/dist/game/data/scripts/teleports/ToIVortex/ToIVortex.java

@@ -20,12 +20,11 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
- * @author Plim
- * update to H5 by pmq
+ * @author Plim update to H5 by pmq
  */
 public class ToIVortex extends Quest
 {
-	//NPCs
+	// NPCs
 	private static final int KEPLON = 30949;
 	private static final int EUCLIE = 30950;
 	private static final int PITHGON = 30951;
@@ -34,7 +33,7 @@ public class ToIVortex extends Quest
 	private static final int DIMENSION_VORTEX_3 = 30954;
 	private static final int TELEPORT_CUBIC = 29055;
 	
-	//ITEMS
+	// ITEMS
 	private static final int ADENA = 57;
 	private static final int BLUE_DIMENSION_STONE = 4402;
 	private static final int GREEN_DIMENSION_STONE = 4401;
@@ -47,7 +46,7 @@ public class ToIVortex extends Quest
 		QuestState st = player.getQuestState(getName());
 		
 		int npcId = npc.getNpcId();
-		//1st Floor
+		// 1st Floor
 		if (event.equalsIgnoreCase("1"))
 		{
 			if (st.hasQuestItems(GREEN_DIMENSION_STONE))
@@ -62,7 +61,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//2nd Floor
+		// 2nd Floor
 		else if (event.equalsIgnoreCase("2"))
 		{
 			if (st.hasQuestItems(GREEN_DIMENSION_STONE))
@@ -77,7 +76,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//3rd Floor
+		// 3rd Floor
 		else if (event.equalsIgnoreCase("3"))
 		{
 			if (st.hasQuestItems(GREEN_DIMENSION_STONE))
@@ -92,7 +91,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//4th Floor
+		// 4th Floor
 		else if (event.equalsIgnoreCase("4"))
 		{
 			if (st.hasQuestItems(BLUE_DIMENSION_STONE))
@@ -107,7 +106,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//5th Floor
+		// 5th Floor
 		else if (event.equalsIgnoreCase("5"))
 		{
 			if (st.hasQuestItems(BLUE_DIMENSION_STONE))
@@ -122,7 +121,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//6th Floor
+		// 6th Floor
 		else if (event.equalsIgnoreCase("6"))
 		{
 			if (st.hasQuestItems(BLUE_DIMENSION_STONE))
@@ -137,7 +136,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//7th Floor
+		// 7th Floor
 		else if (event.equalsIgnoreCase("7"))
 		{
 			if (st.hasQuestItems(RED_DIMENSION_STONE))
@@ -152,7 +151,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//8th Floor
+		// 8th Floor
 		else if (event.equalsIgnoreCase("8"))
 		{
 			if (st.hasQuestItems(RED_DIMENSION_STONE))
@@ -167,7 +166,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//9th Floor
+		// 9th Floor
 		else if (event.equalsIgnoreCase("9"))
 		{
 			if (st.hasQuestItems(RED_DIMENSION_STONE))
@@ -182,7 +181,7 @@ public class ToIVortex extends Quest
 				htmltext = "no-stones.htm";
 			}
 		}
-		//10 Floor
+		// 10 Floor
 		else if (event.equalsIgnoreCase("10"))
 		{
 			if (st.hasQuestItems(RED_DIMENSION_STONE))
@@ -251,7 +250,7 @@ public class ToIVortex extends Quest
 		if (st == null)
 			return null;
 		
-		//ToI Vortex exit
+		// ToI Vortex exit
 		if (npc.getNpcId() == TELEPORT_CUBIC)
 		{
 			int chance = st.getRandom(3);

+ 26 - 28
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java

@@ -30,13 +30,14 @@ import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 
 /**
- * 
  * @author DS
- *
  */
 public class AirShipGludioGracia extends Quest implements Runnable
 {
-	private static final int[] CONTROLLERS = {32607, 32609};
+	private static final int[] CONTROLLERS =
+	{
+		32607, 32609
+	};
 	
 	private static final int GLUDIO_DOCK_ID = 10;
 	private static final int GRACIA_DOCK_ID = 11;
@@ -48,7 +49,8 @@ public class AirShipGludioGracia extends Quest implements Runnable
 	{
 		new VehiclePathPoint(-151202, 252556, 231),
 		new VehiclePathPoint(-160403, 256144, 222),
-		new VehiclePathPoint(-167874, 256731, -509, 0, 41035) // teleport: x,y,z,speed=0,heading
+		new VehiclePathPoint(-167874, 256731, -509, 0, 41035)
+	// teleport: x,y,z,speed=0,heading
 	};
 	
 	private static final VehiclePathPoint[] WARPGATE_TO_GRACIA =
@@ -80,17 +82,13 @@ public class AirShipGludioGracia extends Quest implements Runnable
 		new VehiclePathPoint(-171822, 250061, 425),
 		new VehiclePathPoint(-169763, 254815, 282),
 		new VehiclePathPoint(-168067, 256626, 343),
-		new VehiclePathPoint(-157261, 255664, 221, 0, 64781) // teleport: x,y,z,speed=0,heading
+		new VehiclePathPoint(-157261, 255664, 221, 0, 64781)
+	// teleport: x,y,z,speed=0,heading
 	};
 	
 	private static final VehiclePathPoint[] WARPGATE_TO_GLUDIO =
 	{
-		new VehiclePathPoint(-153414, 255385, 221),
-		new VehiclePathPoint(-149548, 258172, 221),
-		new VehiclePathPoint(-146884, 257097, 221),
-		new VehiclePathPoint(-146672, 254239, 221),
-		new VehiclePathPoint(-147855, 252712, 206),
-		new VehiclePathPoint(-149378, 252552, 198)
+		new VehiclePathPoint(-153414, 255385, 221), new VehiclePathPoint(-149548, 258172, 221), new VehiclePathPoint(-146884, 257097, 221), new VehiclePathPoint(-146672, 254239, 221), new VehiclePathPoint(-147855, 252712, 206), new VehiclePathPoint(-149378, 252552, 198)
 	};
 	
 	private final L2AirShipInstance _ship;
@@ -109,58 +107,57 @@ public class AirShipGludioGracia extends Quest implements Runnable
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_TRANSFORMED);
 			return null;
 		}
-		if (player.isParalyzed())
+		else if (player.isParalyzed())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_PETRIFIED);
 			return null;
 		}
-		if (player.isDead() || player.isFakeDeath())
+		else if (player.isDead() || player.isFakeDeath())
 		{
-			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_DEAD);	
+			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_DEAD);
 			return null;
 		}
-		if (player.isFishing())
+		else if (player.isFishing())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_FISHING);
 			return null;
 		}
-		if (player.isInCombat())
+		else if (player.isInCombat())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_IN_BATTLE);
 			return null;
 		}
-		if (player.isInDuel())
+		else if (player.isInDuel())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_IN_A_DUEL);
 			return null;
 		}
-		if (player.isSitting())
+		else if (player.isSitting())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_SITTING);
 			return null;
 		}
-		if (player.isCastingNow())
+		else if (player.isCastingNow())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_CASTING);
 			return null;
 		}
-		if (player.isCursedWeaponEquipped())
+		else if (player.isCursedWeaponEquipped())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_A_CURSED_WEAPON_IS_EQUIPPED);
 			return null;
 		}
-		if (player.isCombatFlagEquipped())
+		else if (player.isCombatFlagEquipped())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_HOLDING_A_FLAG);
 			return null;
 		}
-		if (player.getPet() != null || player.isMounted())
+		else if (player.getPet() != null || player.isMounted())
 		{
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_A_PET_OR_A_SERVITOR_IS_SUMMONED);
 			return null;
 		}
-		
-		if (_ship.isInDock() && _ship.isInsideRadius(player, 600, true, false))
+		else if (_ship.isInDock() && _ship.isInsideRadius(player, 600, true, false))
 			_ship.addPassenger(player);
 		
 		return null;
@@ -190,6 +187,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 		_ship.runEngine(60000);
 	}
 	
+	@Override
 	public void run()
 	{
 		try
@@ -202,7 +200,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 					_ship.executePath(GLUDIO_TO_WARPGATE);
 					break;
 				case 1:
-					//_ship.teleToLocation(-167874, 256731, -509, 41035, false);
+					// _ship.teleToLocation(-167874, 256731, -509, 41035, false);
 					_ship.setOustLoc(OUST_GRACIA);
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 5000);
 					break;
@@ -221,7 +219,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 					_ship.executePath(GRACIA_TO_WARPGATE);
 					break;
 				case 5:
-					//					_ship.teleToLocation(-157261, 255664, 221, 64781, false);
+					// _ship.teleToLocation(-157261, 255664, 221, 64781, false);
 					_ship.setOustLoc(OUST_GLUDIO);
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 5000);
 					break;
@@ -276,8 +274,8 @@ public class AirShipGludioGracia extends Quest implements Runnable
 			{
 				for (int id : CONTROLLERS)
 				{
-					if (((L2Npc)obj).getNpcId() == id)
-						return (L2Npc)obj;
+					if (((L2Npc) obj).getNpcId() == id)
+						return (L2Npc) obj;
 				}
 			}
 		}

+ 3 - 4
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatGiranTalking.java

@@ -27,9 +27,7 @@ import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 
 /**
- * 
  * @author DS
- *
  */
 public class BoatGiranTalking implements Runnable
 {
@@ -56,7 +54,7 @@ public class BoatGiranTalking implements Runnable
 		new VehiclePathPoint(-83344, 261610, -3610, 200, 800),
 		new VehiclePathPoint(-88344, 261660, -3610, 180, 800),
 		new VehiclePathPoint(-92344, 261660, -3610, 180, 800),
-		new VehiclePathPoint(-94242, 261659, -3610 ,150, 800)
+		new VehiclePathPoint(-94242, 261659, -3610, 150, 800)
 	};
 	
 	private static final VehiclePathPoint[] TALKING_DOCK =
@@ -124,7 +122,7 @@ public class BoatGiranTalking implements Runnable
 	{
 		_boat = boat;
 		
-		ARRIVED_AT_GIRAN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_GIRAN );
+		ARRIVED_AT_GIRAN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_GIRAN);
 		ARRIVED_AT_GIRAN_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_AFTER_10_MINUTES);
 		LEAVE_GIRAN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_IN_5_MINUTES);
 		LEAVE_GIRAN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_IN_1_MINUTE);
@@ -152,6 +150,7 @@ public class BoatGiranTalking implements Runnable
 		TALKING_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), TALKING_DOCK[0].x, TALKING_DOCK[0].y, TALKING_DOCK[0].z);
 	}
 	
+	@Override
 	public void run()
 	{
 		try

+ 1 - 2
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatGludinRune.java

@@ -27,9 +27,7 @@ import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 
 /**
- * 
  * @author DS
- *
  */
 public class BoatGludinRune implements Runnable
 {
@@ -167,6 +165,7 @@ public class BoatGludinRune implements Runnable
 		RUNE_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), RUNE_DOCK[0].x, RUNE_DOCK[0].y, RUNE_DOCK[0].z);
 	}
 	
+	@Override
 	public void run()
 	{
 		try

+ 1 - 2
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatInnadrilTour.java

@@ -27,9 +27,7 @@ import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 
 /**
- * 
  * @author DS
- *
  */
 public class BoatInnadrilTour implements Runnable
 {
@@ -110,6 +108,7 @@ public class BoatInnadrilTour implements Runnable
 		INNADRIL_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), DOCK.x, DOCK.y, DOCK.z);
 	}
 	
+	@Override
 	public void run()
 	{
 		try

+ 2 - 3
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatRunePrimeval.java

@@ -27,9 +27,7 @@ import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 
 /**
- * 
  * @author DS
- *
  */
 public class BoatRunePrimeval implements Runnable
 {
@@ -103,6 +101,7 @@ public class BoatRunePrimeval implements Runnable
 		PRIMEVAL_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), PRIMEVAL_DOCK.x, PRIMEVAL_DOCK.y, PRIMEVAL_DOCK.z);
 	}
 	
+	@Override
 	public void run()
 	{
 		try
@@ -112,7 +111,7 @@ public class BoatRunePrimeval implements Runnable
 				case 0:
 					BoatManager.getInstance().dockShip(BoatManager.RUNE_HARBOR, false);
 					BoatManager.getInstance().broadcastPackets(RUNE_DOCK[0], PRIMEVAL_DOCK, LEAVING_RUNE, RUNE_SOUND);
-					_boat.payForRide(8925, 1,  34513, -38009, -3640);
+					_boat.payForRide(8925, 1, 34513, -38009, -3640);
 					_boat.executePath(RUNE_TO_PRIMEVAL);
 					break;
 				case 1:

+ 1 - 2
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/BoatTalkingGludin.java

@@ -27,9 +27,7 @@ import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 
 /**
- * 
  * @author DS
- *
  */
 public class BoatTalkingGludin implements Runnable
 {
@@ -136,6 +134,7 @@ public class BoatTalkingGludin implements Runnable
 		GLUDIN_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), GLUDIN_DOCK[0].x, GLUDIN_DOCK[0].y, GLUDIN_DOCK[0].z);
 	}
 	
+	@Override
 	public void run()
 	{
 		try

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/EngineerLekon/EngineerLekon.java

@@ -89,4 +89,4 @@ public class EngineerLekon extends Quest
 	{
 		new EngineerLekon(-1, EngineerLekon.class.getSimpleName(), "vehicles");
 	}
-}
+}

+ 5 - 5
L2J_DataPack_BETA/dist/game/data/scripts/vehicles/KeucereusNorthController/KeucereusNorthController.java

@@ -41,17 +41,17 @@ public class KeucereusNorthController extends AirShipController
 	{
 		{
 			new VehiclePathPoint(-183218, 239494, 1700, 280, 2000),
-			new VehiclePathPoint(-181974, 235358, 1700, 280, 2000),
+			new VehiclePathPoint(-181974, 235358, 1700, 280, 2000), 
 			new VehiclePathPoint(-186373, 234000, 2500, 0, 0)
 		},
 		{
-			new VehiclePathPoint(-183218, 239494, 1700, 280, 2000),
-			new VehiclePathPoint(-181974, 235358, 1700, 280, 2000),
+			new VehiclePathPoint(-183218, 239494, 1700, 280, 2000), 
+			new VehiclePathPoint(-181974, 235358, 1700, 280, 2000), 
 			new VehiclePathPoint(-206692, 220997, 3000, 0, 0)
 		},
 		{
 			new VehiclePathPoint(-183218, 239494, 1700, 280, 2000),
-			new VehiclePathPoint(-181974, 235358, 1700, 280, 2000),
+			new VehiclePathPoint(-181974, 235358, 1700, 280, 2000), 
 			new VehiclePathPoint(-235693, 248843, 5100, 0, 0)
 		}
 	};
@@ -93,4 +93,4 @@ public class KeucereusNorthController extends AirShipController
 	{
 		new KeucereusNorthController(-1, KeucereusNorthController.class.getSimpleName(), "vehicles");
 	}
-}
+}