From a8be1d5cec0a67625a7c0b43485b43c81bc9dba3 Mon Sep 17 00:00:00 2001
From: Nos <NosBit@users.noreply.github.com>
Date: Thu, 30 Oct 2014 05:31:25 +0000
Subject: [PATCH] BETA: DP-Part for [L6670]

git-svn-id: http://svn.l2jdp.com/branches/unstable@10490 5288da4f-0efc-0310-bd40-8d490a2659fa
---
 .../ai/npc/ForgeOfTheGods/TarBeetleSpawn.java | 48 ++++++++++---------
 .../instances/SeedOfDestruction/Stage1.java   |  7 ++-
 .../admincommandhandlers/AdminGeodata.java    |  2 +-
 .../FinalEmperialTomb/FinalEmperialTomb.java  |  7 ++-
 4 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
index c3351fdf86..c7700cfdd6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
@@ -33,6 +33,7 @@ import com.l2jserver.gameserver.datatables.NpcData;
 import com.l2jserver.gameserver.engines.DocumentParser;
 import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.L2Territory;
+import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.util.Rnd;
 
@@ -152,14 +153,14 @@ public class TarBeetleSpawn extends DocumentParser
 		}
 		
 		@Override
-		public int[] getRandomPoint()
+		public Location getRandomPoint()
 		{
-			int[] loc = super.getRandomPoint();
-			while (isInsideBannedZone(loc))
+			Location location = super.getRandomPoint();
+			while ((location != null) && isInsideBannedZone(location))
 			{
-				loc = super.getRandomPoint();
+				location = super.getRandomPoint();
 			}
-			return loc;
+			return location;
 		}
 		
 		public final void addBannedZone(Zone bZone)
@@ -171,13 +172,13 @@ public class TarBeetleSpawn extends DocumentParser
 			_bannedZones.add(bZone);
 		}
 		
-		private final boolean isInsideBannedZone(int[] loc)
+		private final boolean isInsideBannedZone(Location location)
 		{
 			if (_bannedZones != null)
 			{
 				for (Zone z : _bannedZones)
 				{
-					if (z.isInside(loc[0], loc[1]))
+					if (z.isInside(location.getX(), location.getY()))
 					{
 						return true;
 					}
@@ -223,21 +224,24 @@ public class TarBeetleSpawn extends DocumentParser
 			{
 				while (_spawn.size() < _maxNpcCount)
 				{
-					final int[] loc = _zones.get(Rnd.get(_zones.size())).getRandomPoint();
-					final L2Spawn spawn = new L2Spawn(NpcData.getInstance().getTemplate(18804));
-					spawn.setHeading(Rnd.get(65535));
-					spawn.setX(loc[0]);
-					spawn.setY(loc[1]);
-					spawn.setZ(GeoData.getInstance().getSpawnHeight(loc[0], loc[1], loc[2], loc[3]));
-					
-					final L2Npc npc = spawn.doSpawn();
-					npc.setIsNoRndWalk(true);
-					npc.setIsImmobilized(true);
-					npc.setIsInvul(true);
-					npc.disableCoreAI(true);
-					npc.setScriptValue(5);
-					npc.getVariables().set("zoneIndex", _index);
-					_spawn.add(npc);
+					final Location location = _zones.get(Rnd.get(_zones.size())).getRandomPoint();
+					if (location != null)
+					{
+						final L2Spawn spawn = new L2Spawn(NpcData.getInstance().getTemplate(18804));
+						spawn.setHeading(Rnd.get(65535));
+						spawn.setX(location.getX());
+						spawn.setY(location.getY());
+						spawn.setZ(GeoData.getInstance().getSpawnHeight(location));
+						
+						final L2Npc npc = spawn.doSpawn();
+						npc.setIsNoRndWalk(true);
+						npc.setIsImmobilized(true);
+						npc.setIsInvul(true);
+						npc.disableCoreAI(true);
+						npc.setScriptValue(5);
+						npc.getVariables().set("zoneIndex", _index);
+						_spawn.add(npc);
+					}
 				}
 			}
 			catch (Exception e)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java
index d013153b36..ccdce5aecc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/gracia/instances/SeedOfDestruction/Stage1.java
@@ -603,8 +603,11 @@ public final class Stage1 extends Quest
 						{
 							if (_spawnZoneList.containsKey(spw.zone))
 							{
-								int[] point = _spawnZoneList.get(spw.zone).getRandomPoint();
-								spawn(world, spw.npcId, point[0], point[1], GeoData.getInstance().getSpawnHeight(point[0], point[1], point[2], point[3]), getRandom(65535), spw.isNeededNextFlag);
+								final Location location = _spawnZoneList.get(spw.zone).getRandomPoint();
+								if (location != null)
+								{
+									spawn(world, spw.npcId, location.getX(), location.getY(), GeoData.getInstance().getSpawnHeight(location), getRandom(65535), spw.isNeededNextFlag);
+								}
 							}
 							else
 							{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminGeodata.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminGeodata.java
index 87f3f8815e..08fed5635e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminGeodata.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminGeodata.java
@@ -78,7 +78,7 @@ public class AdminGeodata implements IAdminCommandHandler
 				
 				if (GeoData.getInstance().hasGeoPos(geoX, geoY))
 				{
-					activeChar.sendMessage("WorldX: " + worldX + ", WorldY: " + worldY + ", WorldZ: " + worldZ + ", GeoX: " + geoX + ", GeoY: " + geoY + ", GeoZ: " + GeoData.getInstance().getSpawnHeight(worldX, worldY, worldZ, worldZ));
+					activeChar.sendMessage("WorldX: " + worldX + ", WorldY: " + worldY + ", WorldZ: " + worldZ + ", GeoX: " + geoX + ", GeoY: " + geoY + ", GeoZ: " + GeoData.getInstance().getSpawnHeight(worldX, worldY, worldZ));
 				}
 				else
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java
index 75dbb28d3e..5470f1b20b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java
@@ -672,8 +672,11 @@ public final class FinalEmperialTomb extends Quest
 						{
 							if (_spawnZoneList.containsKey(spw.zone))
 							{
-								int[] point = _spawnZoneList.get(spw.zone).getRandomPoint();
-								spawn(world, spw.npcId, point[0], point[1], GeoData.getInstance().getSpawnHeight(point[0], point[1], point[2], point[3]), getRandom(65535), spw.isNeededNextFlag);
+								final Location location = _spawnZoneList.get(spw.zone).getRandomPoint();
+								if (location != null)
+								{
+									spawn(world, spw.npcId, location.getX(), location.getY(), GeoData.getInstance().getSpawnHeight(location), getRandom(65535), spw.isNeededNextFlag);
+								}
 							}
 							else
 							{
-- 
GitLab