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