From 4b2ba554dd0e21db247a3efee5dcb0d9fd124939 Mon Sep 17 00:00:00 2001
From: Rumen Nikiforov <unafraid89@gmail.com>
Date: Fri, 11 May 2012 03:46:30 +0000
Subject: [PATCH] BETA: DP-Part for [L5330]

---
 .../scripts/ai/group_template/DenOfEvil.java  |  7 +++----
 .../ai/group_template/EnergySeeds.java        | 18 ++++++++++++++---
 .../data/scripts/ai/individual/Antharas.java  |  9 +++++----
 .../data/scripts/ai/individual/Beleth.java    |  2 +-
 .../RainbowSpringsChateau.java                |  5 +++--
 .../admincommandhandlers/AdminSkill.java      | 20 +++++++++++++++----
 .../hellbound/TowerOfNaia/TowerOfNaia.java    | 15 +++++++-------
 7 files changed, 50 insertions(+), 26 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
index b67abf54d7..6e735fe1dc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java
@@ -20,7 +20,6 @@ import com.l2jserver.gameserver.instancemanager.ZoneManager;
 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;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.zone.type.L2EffectZone;
@@ -201,11 +200,11 @@ public class DenOfEvil extends L2AttackableAIScript
 		
 		private void destroyZone()
 		{
-			for (L2Character character : _zone.getCharactersInsideArray())
+			for (L2Character character : _zone.getCharactersInside())
 			{
 				if (character == null)
 					continue;
-				if (character instanceof L2Playable)
+				if (character.isPlayable())
 				{
 					L2Skill skill = SkillTable.getInstance().getInfo(6149, 1);
 					skill.getEffects(character, character); // apply effect
@@ -214,7 +213,7 @@ public class DenOfEvil extends L2AttackableAIScript
 				{
 					if (character.doDie(null)) // mobs die
 					{
-						if (character instanceof L2Npc)
+						if (character.isNpc())
 						{
 							// respawn eye
 							L2Npc npc = (L2Npc) character;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
index 34c8b56213..da2d92ef91 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java
@@ -209,7 +209,9 @@ public class EnergySeeds extends L2AttackableAIScript
 			{
 				L2DoorInstance doorInstance = DoorTable.getInstance().getDoor(doorId);
 				if (doorInstance != null)
+				{
 					doorInstance.openMe();
+				}
 			}
 			startAI(GraciaSeeds.DESTRUCTION);
 		}
@@ -219,19 +221,29 @@ public class EnergySeeds extends L2AttackableAIScript
 			{
 				L2DoorInstance doorInstance = DoorTable.getInstance().getDoor(doorId);
 				if (doorInstance != null)
+				{
 					doorInstance.closeMe();
+				}
+			}
+			for(L2PcInstance ch : ZoneManager.getInstance().getZoneById(SOD_ZONE).getPlayersInside())
+			{
+				if (ch != null)
+				{
+					ch.teleToLocation(SOD_EXIT_POINT[0], SOD_EXIT_POINT[1], SOD_EXIT_POINT[2]);
+				}
 			}
-			for(L2Character chars : ZoneManager.getInstance().getZoneById(SOD_ZONE).getCharactersInsideArray())
-				if (chars instanceof L2PcInstance)
-					chars.teleToLocation(SOD_EXIT_POINT[0], SOD_EXIT_POINT[1], SOD_EXIT_POINT[2]);
 			stopAI(GraciaSeeds.DESTRUCTION);
 		}
 		else if (event.equalsIgnoreCase("DeSpawnTask"))
 		{
 			if (npc.isInCombat())
+			{
 				startQuestTimer("DeSpawnTask", 30000, npc, null);
+			}
 			else
+			{
 				npc.deleteMe();
+			}
 		}
 		return null;
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java
index 92f6b288d5..fbfcd93bdb 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Antharas.java
@@ -16,6 +16,7 @@ package ai.individual;
 
 import gnu.trove.map.hash.TIntObjectHashMap;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.ScheduledFuture;
 
@@ -405,7 +406,7 @@ public class Antharas extends L2AttackableAIScript
 	private class AntharasSpawn implements Runnable
 	{
 		private int _taskId = 0;
-		private final L2Character[] _players = _Zone.getCharactersInsideArray();
+		private final Collection<L2Character> _players = _Zone.getCharactersInside();
 		
 		public AntharasSpawn(int taskId)
 		{
@@ -429,11 +430,11 @@ public class Antharas extends L2AttackableAIScript
 					{
 						npcId = 29019; // old
 					}
-					else if (_players.length <= FWA_LIMITOFWEAK)
+					else if (_players.size() <= FWA_LIMITOFWEAK)
 					{
 						npcId = 29066; // weak
 					}
-					else if (_players.length > FWA_LIMITOFNORMAL)
+					else if (_players.size() > FWA_LIMITOFNORMAL)
 					{
 						npcId = 29068; // strong
 					}
@@ -555,7 +556,7 @@ public class Antharas extends L2AttackableAIScript
 	{
 		if (_Zone != null)
 		{
-			for (L2Character characters : _Zone.getCharactersInsideArray())
+			for (L2Character characters : _Zone.getCharactersInside())
 			{
 				if (characters instanceof L2PcInstance)
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
index a159210090..f733de47a1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Beleth.java
@@ -184,7 +184,7 @@ public class Beleth extends L2AttackableAIScript
 				{
 					case 1:
 						movie = true;
-						for (L2Character npc : _zone.getCharactersInsideArray())
+						for (L2Character npc : _zone.getCharactersInside())
 						{
 							if (npc instanceof L2Npc)
 							{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
index e3ffa07da6..dec329cd77 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
@@ -21,6 +21,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -187,7 +188,7 @@ public class RainbowSpringsChateau extends Quest
 		{
 			for (int arenaId : ARENA_ZONES)
 			{
-				final L2Character[] chars = ZoneManager.getInstance().getZoneById(arenaId).getCharactersInsideArray();
+				final Collection<L2Character> chars = ZoneManager.getInstance().getZoneById(arenaId).getCharactersInside();
 				for (L2Character chr : chars)
 				{
 					if (chr != null)
@@ -804,7 +805,7 @@ public class RainbowSpringsChateau extends Quest
 				continue;
 			}
 			
-			final L2Character[] chars = ZoneManager.getInstance().getZoneById(id).getCharactersInsideArray();
+			final Collection<L2Character> chars = ZoneManager.getInstance().getZoneById(id).getCharactersInside();
 			for (L2Character chr : chars)
 			{
 				if (chr != null)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java
index 3dab122a83..4752653024 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminSkill.java
@@ -280,7 +280,7 @@ public class AdminSkill implements IAdminCommandHandler
 		}
 		
 		final L2PcInstance player = target.getActingPlayer();
-		final L2Skill[] skills = player.getAllSkills();
+		final L2Skill[] skills = player.getAllSkills().toArray(new L2Skill[player.getAllSkills().size()]);
 		
 		int maxSkillsPerPage = 10;
 		int maxPages = skills.length / maxSkillsPerPage;
@@ -404,12 +404,16 @@ public class AdminSkill implements IAdminCommandHandler
 		}
 		else
 		{
-			L2Skill[] skills = player.getAllSkills();
-			adminSkills = activeChar.getAllSkills();
+			L2Skill[] skills = player.getAllSkills().toArray(new L2Skill[player.getAllSkills().size()]);
+			adminSkills = activeChar.getAllSkills().toArray(new L2Skill[activeChar.getAllSkills().size()]);
 			for (L2Skill skill: adminSkills)
+			{
 				activeChar.removeSkill(skill);
+			}
 			for (L2Skill skill: skills)
+			{
 				activeChar.addSkill(skill, true);
+			}
 			activeChar.sendMessage("You now have all the skills of " + player.getName() + ".");
 			activeChar.sendSkillList();
 		}
@@ -434,15 +438,23 @@ public class AdminSkill implements IAdminCommandHandler
 		}
 		else
 		{
-			L2Skill[] skills = player.getAllSkills();
+			L2Skill[] skills = player.getAllSkills().toArray(new L2Skill[player.getAllSkills().size()]);
 			for (L2Skill skill: skills)
+			{
 				player.removeSkill(skill);
+			}
 			for (L2Skill skill: activeChar.getAllSkills())
+			{
 				player.addSkill(skill, true);
+			}
 			for (L2Skill skill: skills)
+			{
 				activeChar.removeSkill(skill);
+			}
 			for (L2Skill skill: adminSkills)
+			{
 				activeChar.addSkill(skill, true);
+			}
 			player.sendMessage("[GM]" + activeChar.getName() + " updated your skills.");
 			activeChar.sendMessage("You now have all your skills back.");
 			adminSkills = null;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java
index fd3728d6a6..62cc18bc34 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/TowerOfNaia/TowerOfNaia.java
@@ -31,7 +31,6 @@ import com.l2jserver.gameserver.instancemanager.GlobalVariablesManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.L2Party;
-import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -1051,14 +1050,14 @@ public class TowerOfNaia extends Quest
 		if ((party != null) && ZONES.containsKey(managerId) && (ZoneManager.getInstance().getZoneById(ZONES.get(managerId)) != null))
 		{
 			L2ZoneType zone = ZoneManager.getInstance().getZoneById(ZONES.get(managerId));
-			for (L2Character ch : zone.getCharactersInsideArray())
+			for (L2PcInstance player : zone.getPlayersInside())
 			{
-				if (ch instanceof L2PcInstance)
+				if (player != null)
 				{
-					L2Party charParty = ((L2PcInstance) ch).getParty();
+					L2Party charParty = player.getParty();
 					if ((charParty == null) || (charParty.getLeaderObjectId() != party.getLeaderObjectId()))
 					{
-						ch.teleToLocation(16110, 243841, 11616);
+						player.teleToLocation(16110, 243841, 11616);
 					}
 				}
 			}
@@ -1070,11 +1069,11 @@ public class TowerOfNaia extends Quest
 		if (ZONES.containsKey(managerId) && (ZoneManager.getInstance().getZoneById(ZONES.get(managerId)) != null))
 		{
 			L2ZoneType zone = ZoneManager.getInstance().getZoneById(ZONES.get(managerId));
-			for (L2Character ch : zone.getCharactersInsideArray())
+			for (L2PcInstance player : zone.getPlayersInside())
 			{
-				if (ch instanceof L2PcInstance)
+				if (player != null)
 				{
-					ch.teleToLocation(16110, 243841, 11616);
+					player.teleToLocation(16110, 243841, 11616);
 				}
 			}
 		}
-- 
GitLab