Browse Source

BETA: Zone types cleanup and format

Rumen Nikiforov 13 years ago
parent
commit
054b7d6d7e
32 changed files with 443 additions and 347 deletions
  1. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Fort.java
  2. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/FortSiege.java
  3. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/clanhall/ClanHallSiegeEngine.java
  4. 0 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2AbnormalZone.java
  5. 74 53
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2BossZone.java
  6. 12 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2CastleZone.java
  7. 11 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ClanHallZone.java
  8. 16 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ConditionZone.java
  9. 20 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2DamageZone.java
  10. 2 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2DerbyTrackZone.java
  11. 19 23
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2DynamicZone.java
  12. 15 15
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2EffectZone.java
  13. 3 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2FishingZone.java
  14. 11 12
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2FortZone.java
  15. 26 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2HqZone.java
  16. 7 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2JailZone.java
  17. 6 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2LandingZone.java
  18. 12 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2MotherTreeZone.java
  19. 18 20
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoLandingZone.java
  20. 2 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoRestartZone.java
  21. 2 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoStoreZone.java
  22. 0 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoSummonFriendZone.java
  23. 31 31
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2OlympiadStadiumZone.java
  24. 5 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2PeaceZone.java
  25. 20 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ResidenceHallTeleportZone.java
  26. 17 12
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ResidenceTeleportZone.java
  27. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2RespawnZone.java
  28. 2 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ScriptZone.java
  29. 14 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SiegableHallZone.java
  30. 62 39
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SiegeZone.java
  31. 11 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SwampZone.java
  32. 19 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2WaterZone.java

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Fort.java

@@ -334,7 +334,7 @@ public class Fort
 	 */
 	public void banishForeigners()
 	{
-		getFortZone().banishForeigners(getOwnerClan());
+		getFortZone().banishForeigners(getOwnerClan().getClanId());
 	}
 	
 	/**

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/FortSiege.java

@@ -250,7 +250,7 @@ public class FortSiege implements Siegable
 			
 			updatePlayerSiegeStateFlags(true);
 			
-			getFort().getZone().banishForeigners(getFort().getOwnerClan());
+			getFort().getZone().banishForeigners(getFort().getOwnerClan().getClanId());
 			getFort().getZone().setIsActive(false);
 			getFort().getZone().updateZoneStatusForCharactersInside();
 			getFort().getZone().setSiegeInstance(null);

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/clanhall/ClanHallSiegeEngine.java

@@ -272,8 +272,8 @@ public abstract class ClanHallSiegeEngine extends Quest implements Siegable
 	@Override
 	public List<L2PcInstance> getAttackersInZone()
 	{
-		final FastList<L2PcInstance> list = _hall.getSiegeZone().getAllPlayers();
-		FastList<L2PcInstance> attackers = new FastList<L2PcInstance>();
+		final List<L2PcInstance> list = _hall.getSiegeZone().getAllPlayers();
+		List<L2PcInstance> attackers = new FastList<L2PcInstance>();
 		
 		for(L2PcInstance pc : list)
 		{

+ 0 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2AbnormalZone.java

@@ -74,7 +74,4 @@ public class L2AbnormalZone extends L2ZoneType
 	{
 		onEnter(character);
 	}
-	
-	
-	
 }

+ 74 - 53
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2BossZone.java

@@ -24,7 +24,6 @@ import com.l2jserver.gameserver.instancemanager.MapRegionManager;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 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.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
@@ -48,7 +47,14 @@ public class L2BossZone extends L2ZoneType
 	// after reboot/server downtime (outside of their control), within 30
 	// of server restart
 	private L2FastList<Integer> _playersAllowed;
-	private int[] _oustLoc = { 0, 0, 0 };
+	
+	private int[] _oustLoc =
+	{
+		0,
+		0,
+		0
+	};
+	
 	protected L2FastList<L2Character> _raidList = new L2FastList<L2Character>();
 	
 	public L2BossZone(int id)
@@ -89,27 +95,22 @@ public class L2BossZone extends L2ZoneType
 		}
 	}
 	
-	@Override
 	/**
-	 * Boss zones have special behaviors for player characters. Players are
-	 * automatically teleported out when the attempt to enter these zones,
-	 * except if the time at which they enter the zone is prior to the entry
-	 * expiration time set for that player. Entry expiration times are set by
-	 * any one of the following: 1) A player logs out while in a zone
-	 * (Expiration gets set to logoutTime + _timeInvade) 2) An external source
-	 * (such as a quest or AI of NPC) set up the player for entry.
-	 * 
-	 * There exists one more case in which the player will be allowed to enter.
-	 * That is if the server recently rebooted (boot-up time more recent than
-	 * currentTime - _timeInvade) AND the player was in the zone prior to reboot.
+	 * Boss zones have special behaviors for player characters. 
+	 * Players are automatically teleported out when the attempt to enter these zones, except if the time at which they enter the zone is prior to the entry expiration time set for that player. 
+	 * Entry expiration times are set by any one of the following: 
+	 * 1) A player logs out while in a zone (Expiration gets set to logoutTime + _timeInvade) 
+	 * 2) An external source (such as a quest or AI of NPC) set up the player for entry. There exists one more case in which the player will be allowed to enter. 
+	 * That is if the server recently rebooted (boot-up time more recent than currentTime - _timeInvade) AND the player was in the zone prior to reboot.
 	 */
+	@Override
 	protected void onEnter(L2Character character)
 	{
 		if (_enabled)
 		{
-			if (character instanceof L2PcInstance)
+			if (character.isPlayer())
 			{
-				final L2PcInstance player = (L2PcInstance)character;
+				final L2PcInstance player = character.getActingPlayer();
 				if (player.isGM())
 					return;
 				// if player has been (previously) cleared by npc/ai for entry and the zone is
@@ -125,26 +126,34 @@ public class L2BossZone extends L2ZoneType
 					{
 						long serverStartTime = GameServer.dateTimeServerStarted.getTimeInMillis();
 						if ((serverStartTime > (System.currentTimeMillis() - _timeInvade)))
+						{
 							return;
+						}
 					}
 					else
 					{
 						// legal non-null logoutTime entries
 						_playerAllowedReEntryTimes.remove(player.getObjectId());
 						if (expirationTime.longValue() > System.currentTimeMillis())
+						{
 							return;
+						}
 					}
 					_playersAllowed.remove(_playersAllowed.indexOf(player.getObjectId()));
 				}
 				// teleport out all players who attempt "illegal" (re-)entry
 				if (_oustLoc[0] != 0 && _oustLoc[1] != 0 && _oustLoc[2] != 0)
+				{
 					player.teleToLocation(_oustLoc[0], _oustLoc[1], _oustLoc[2]);
+				}
 				else
+				{
 					player.teleToLocation(MapRegionManager.TeleportWhereType.Town);
+				}
 			}
-			else if (character instanceof L2Summon)
+			else if (character.isSummon())
 			{
-				final L2PcInstance player = ((L2Summon)character).getOwner();
+				final L2PcInstance player = character.getActingPlayer();
 				if (player != null)
 				{
 					if (_playersAllowed.contains(player.getObjectId()) || player.isGM())
@@ -153,11 +162,15 @@ public class L2BossZone extends L2ZoneType
 					// remove summon and teleport out owner
 					// who attempt "illegal" (re-)entry
 					if (_oustLoc[0] != 0 && _oustLoc[1] != 0 && _oustLoc[2] != 0)
+					{
 						player.teleToLocation(_oustLoc[0], _oustLoc[1], _oustLoc[2]);
+					}
 					else
+					{
 						player.teleToLocation(MapRegionManager.TeleportWhereType.Town);
+					}
 				}
-				((L2Summon)character).unSummon(player);
+				((L2Summon) character).unSummon(player);
 			}
 		}
 	}
@@ -167,11 +180,12 @@ public class L2BossZone extends L2ZoneType
 	{
 		if (_enabled)
 		{
-			if (character instanceof L2PcInstance)
+			if (character.isPlayer())
 			{
-				final L2PcInstance player = (L2PcInstance) character;
+				final L2PcInstance player = character.getActingPlayer();
 				if (player.isGM())
 					return;
+				
 				// if the player just got disconnected/logged out, store the dc
 				// time so that
 				// decisions can be made later about allowing or not the player
@@ -184,11 +198,13 @@ public class L2BossZone extends L2ZoneType
 				else
 				{
 					if (_playersAllowed.contains(player.getObjectId()))
+					{
 						_playersAllowed.remove(_playersAllowed.indexOf(player.getObjectId()));
+					}
 					_playerAllowedReEntryTimes.remove(player.getObjectId());
 				}
 			}
-			if (character instanceof L2Playable)
+			if (character.isPlayable())
 			{
 				if (getCharactersInside() != null && !getCharactersInside().isEmpty())
 				{
@@ -197,10 +213,14 @@ public class L2BossZone extends L2ZoneType
 					for (L2Character obj : getCharactersInsideArray())
 					{
 						if (obj == null)
+						{
 							continue;
-						if (obj instanceof L2Playable)
+						}
+						if (obj.isPlayable())
+						{
 							count++;
-						else if (obj instanceof L2Attackable && obj.isRaid())
+						}
+						else if (obj.isL2Attackable() && obj.isRaid())
 						{
 							_raidList.add(obj);
 						}
@@ -220,7 +240,7 @@ public class L2BossZone extends L2ZoneType
 				}
 			}
 		}
-		if (character instanceof L2Attackable && character.isRaid() && !character.isDead())
+		if (character.isL2Attackable() && character.isRaid() && !character.isDead())
 		{
 			((L2Attackable) character).returnHome();
 		}
@@ -253,29 +273,33 @@ public class L2BossZone extends L2ZoneType
 	public boolean isPlayerAllowed(L2PcInstance player)
 	{
 		if (player.isGM())
+		{
 			return true;
+		}
 		else if (_playersAllowed.contains(player.getObjectId()))
+		{
 			return true;
+		}
 		else
 		{
 			if (_oustLoc[0] != 0 && _oustLoc[1] != 0 && _oustLoc[2] != 0)
+			{
 				player.teleToLocation(_oustLoc[0], _oustLoc[1], _oustLoc[2]);
+			}
 			else
+			{
 				player.teleToLocation(MapRegionManager.TeleportWhereType.Town);
+			}
 			return false;
 		}
 	}
 	
 	/**
-	 * Some GrandBosses send all players in zone to a specific part of the zone,
-	 * rather than just removing them all. If this is the case, this command should
-	 * be used. If this is no the case, then use oustAllPlayers().
-	 * 
+	 * Some GrandBosses send all players in zone to a specific part of the zone, rather than just removing them all. If this is the case, this command should be used. If this is no the case, then use oustAllPlayers().
 	 * @param x
 	 * @param y
 	 * @param z
 	 */
-	
 	public void movePlayersTo(int x, int y, int z)
 	{
 		if (_characterList.isEmpty())
@@ -283,22 +307,20 @@ public class L2BossZone extends L2ZoneType
 		
 		for (L2Character character : getCharactersInsideArray())
 		{
-			if (character instanceof L2PcInstance)
+			if (character != null && character.isPlayer())
 			{
-				L2PcInstance player = (L2PcInstance) character;
+				L2PcInstance player = character.getActingPlayer();
 				if (player.isOnline())
+				{
 					player.teleToLocation(x, y, z);
+				}
 			}
 		}
 	}
 	
 	/**
-	 * Occasionally, all players need to be sent out of the zone (for example,
-	 * if the players are just running around without fighting for too long, or
-	 * if all players die, etc). This call sends all online players to town and
-	 * marks offline players to be teleported (by clearing their relog
-	 * expiration times) when they log back in (no real need for off-line
-	 * teleport).
+	 * Occasionally, all players need to be sent out of the zone (for example, if the players are just running around without fighting for too long, or if all players die, etc). This call sends all online players to town and marks offline players to be teleported (by clearing their relog expiration
+	 * times) when they log back in (no real need for off-line teleport).
 	 */
 	public void oustAllPlayers()
 	{
@@ -307,15 +329,19 @@ public class L2BossZone extends L2ZoneType
 		
 		for (L2Character character : getCharactersInsideArray())
 		{
-			if (character instanceof L2PcInstance)
+			if (character != null && character.isPlayer())
 			{
-				L2PcInstance player = (L2PcInstance) character;
+				L2PcInstance player = character.getActingPlayer();
 				if (player.isOnline())
 				{
 					if (_oustLoc[0] != 0 && _oustLoc[1] != 0 && _oustLoc[2] != 0)
+					{
 						player.teleToLocation(_oustLoc[0], _oustLoc[1], _oustLoc[2]);
+					}
 					else
+					{
 						player.teleToLocation(MapRegionManager.TeleportWhereType.Town);
+					}
 				}
 			}
 		}
@@ -324,10 +350,7 @@ public class L2BossZone extends L2ZoneType
 	}
 	
 	/**
-	 * This function is to be used by external sources, such as quests and AI
-	 * in order to allow a player for entry into the zone for some time.  Naturally
-	 * if the player does not enter within the allowed time, he/she will be
-	 * teleported out again...
+	 * This function is to be used by external sources, such as quests and AI in order to allow a player for entry into the zone for some time. Naturally if the player does not enter within the allowed time, he/she will be teleported out again...
 	 * @param player reference to the player we wish to allow
 	 * @param durationInSec amount of time in seconds during which entry is valid.
 	 */
@@ -336,14 +359,16 @@ public class L2BossZone extends L2ZoneType
 		if (!player.isGM())
 		{
 			if (!_playersAllowed.contains(player.getObjectId()))
+			{
 				_playersAllowed.add(player.getObjectId());
+			}
 			_playerAllowedReEntryTimes.put(player.getObjectId(), System.currentTimeMillis() + durationInSec * 1000);
 		}
 	}
 	
 	public void removePlayer(L2PcInstance player)
 	{
-		if(!player.isGM())
+		if (!player.isGM())
 		{
 			_playersAllowed.remove(Integer.valueOf(player.getObjectId()));
 			_playerAllowedReEntryTimes.remove(player.getObjectId());
@@ -368,18 +393,14 @@ public class L2BossZone extends L2ZoneType
 		Map<Integer, L2PcInstance> npcKnownPlayers = npc.getKnownList().getKnownPlayers();
 		for (L2Character character : getCharactersInsideArray())
 		{
-			if (character == null)
-				continue;
-			if (character instanceof L2PcInstance)
+			if (character != null && character.isPlayer())
 			{
-				L2PcInstance player = (L2PcInstance) character;
+				L2PcInstance player = character.getActingPlayer();
 				if (player.isOnline())
+				{
 					npcKnownPlayers.put(player.getObjectId(), player);
+				}
 			}
 		}
-		return;
 	}
-	
 }
-
-

+ 12 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2CastleZone.java

@@ -15,16 +15,14 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.instancemanager.CastleManager;
-import com.l2jserver.gameserver.instancemanager.MapRegionManager;
+import com.l2jserver.gameserver.instancemanager.MapRegionManager.TeleportWhereType;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.zone.L2ZoneRespawn;
 
 /**
  * A castle zone
- *
- * @author  durgus
+ * @author durgus
  */
 public class L2CastleZone extends L2ZoneRespawn
 {
@@ -49,14 +47,18 @@ public class L2CastleZone extends L2ZoneRespawn
 	protected void onEnter(L2Character character)
 	{
 		if (getCastle() != null)
+		{
 			character.setInsideZone(L2Character.ZONE_CASTLE, true);
+		}
 	}
 	
 	@Override
 	protected void onExit(L2Character character)
 	{
 		if (getCastle() != null)
+		{
 			character.setInsideZone(L2Character.ZONE_CASTLE, false);
+		}
 	}
 	
 	@Override
@@ -75,14 +77,15 @@ public class L2CastleZone extends L2ZoneRespawn
 	 */
 	public void banishForeigners(int owningClanId)
 	{
+		TeleportWhereType type = TeleportWhereType.Town;
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (!(temp instanceof L2PcInstance))
+			if (temp == null || !temp.isPlayer())
 				continue;
-			if (((L2PcInstance) temp).getClanId() == owningClanId)
+			else if (temp.getActingPlayer().getClanId() == owningClanId)
 				continue;
 			
-			((L2PcInstance) temp).teleToLocation(MapRegionManager.TeleportWhereType.Town);
+			temp.teleToLocation(type);
 		}
 	}
 	
@@ -94,7 +97,9 @@ public class L2CastleZone extends L2ZoneRespawn
 	private final Castle getCastle()
 	{
 		if (_castle == null)
+		{
 			_castle = CastleManager.getInstance().getCastleById(_castleId);
+		}
 		return _castle;
 	}
 }

+ 11 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ClanHallZone.java

@@ -15,9 +15,8 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.instancemanager.ClanHallManager;
-import com.l2jserver.gameserver.instancemanager.MapRegionManager;
+import com.l2jserver.gameserver.instancemanager.MapRegionManager.TeleportWhereType;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.ClanHall;
 import com.l2jserver.gameserver.model.entity.clanhall.AuctionableHall;
 import com.l2jserver.gameserver.model.zone.L2ZoneRespawn;
@@ -25,8 +24,7 @@ import com.l2jserver.gameserver.network.serverpackets.AgitDecoInfo;
 
 /**
  * A clan hall zone
- *
- * @author  durgus
+ * @author durgus
  */
 public class L2ClanHallZone extends L2ZoneRespawn
 {
@@ -45,8 +43,8 @@ public class L2ClanHallZone extends L2ZoneRespawn
 			_clanHallId = Integer.parseInt(value);
 			// Register self to the correct clan hall
 			ClanHall hall = ClanHallManager.getInstance().getClanHallById(_clanHallId);
-			if(hall == null)
-				_log.warning("L2ClanHallZone: Clan hall with id "+_clanHallId+" does not exist!");
+			if (hall == null)
+				_log.warning("L2ClanHallZone: Clan hall with id " + _clanHallId + " does not exist!");
 			else
 				hall.setZone(this);
 		}
@@ -57,7 +55,7 @@ public class L2ClanHallZone extends L2ZoneRespawn
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			// Set as in clan hall
 			character.setInsideZone(L2Character.ZONE_CLANHALL, true);
@@ -68,7 +66,7 @@ public class L2ClanHallZone extends L2ZoneRespawn
 			
 			// Send decoration packet
 			AgitDecoInfo deco = new AgitDecoInfo(clanHall);
-			((L2PcInstance) character).sendPacket(deco);
+			character.sendPacket(deco);
 			
 		}
 	}
@@ -76,11 +74,9 @@ public class L2ClanHallZone extends L2ZoneRespawn
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			// Unset clanhall zone
 			character.setInsideZone(L2Character.ZONE_CLANHALL, false);
-			
 		}
 	}
 	
@@ -100,14 +96,15 @@ public class L2ClanHallZone extends L2ZoneRespawn
 	 */
 	public void banishForeigners(int owningClanId)
 	{
+		TeleportWhereType type = TeleportWhereType.ClanHall_banish;
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (!(temp instanceof L2PcInstance))
+			if (temp == null || !temp.isPlayer())
 				continue;
-			if (((L2PcInstance) temp).getClanId() == owningClanId)
+			else if (temp.getActingPlayer().getClanId() == owningClanId)
 				continue;
 			
-			((L2PcInstance) temp).teleToLocation(MapRegionManager.TeleportWhereType.ClanHall_banish);
+			temp.teleToLocation(type);
 		}
 	}
 	

+ 16 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ConditionZone.java

@@ -15,7 +15,6 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
@@ -35,35 +34,48 @@ public class L2ConditionZone extends L2ZoneType
 	public void setParameter(String name, String value)
 	{
 		if (name.equalsIgnoreCase("NoBookmark"))
+		{
 			NO_BOOKMARK = Boolean.parseBoolean(value);
+		}
 		else if (name.equalsIgnoreCase("NoItemDrop"))
+		{
 			NO_ITEM_DROP = Boolean.parseBoolean(value);
+		}
 		else
+		{
 			super.setParameter(name, value);
+		}
 	}
 	
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			if (NO_BOOKMARK)
+			{
 				character.setInsideZone(L2Character.ZONE_NOBOOKMARK, true);
+			}
 			if (NO_ITEM_DROP)
+			{
 				character.setInsideZone(L2Character.ZONE_NOITEMDROP, true);
+			}
 		}
 	}
 	
 	@Override
 	protected void onExit(L2Character character)
 	{
-		
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			if (NO_BOOKMARK)
+			{
 				character.setInsideZone(L2Character.ZONE_NOBOOKMARK, false);
+			}
 			if (NO_ITEM_DROP)
+			{
 				character.setInsideZone(L2Character.ZONE_NOITEMDROP, false);
+			}
 		}
 	}
 	

+ 20 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2DamageZone.java

@@ -25,11 +25,9 @@ import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
-
 /**
  * A damage zone
- *
- * @author  durgus
+ * @author durgus
  */
 public class L2DamageZone extends L2ZoneType
 {
@@ -61,7 +59,7 @@ public class L2DamageZone extends L2ZoneType
 		_castleId = 0;
 		_castle = null;
 		
-		//enabled by default
+		// enabled by default
 		_enabled = true;
 		
 		setTargetType(InstanceType.L2Playable); // default only playabale
@@ -95,7 +93,9 @@ public class L2DamageZone extends L2ZoneType
 			_enabled = Boolean.parseBoolean(value);
 		}
 		else
+		{
 			super.setParameter(name, value);
+		}
 	}
 	
 	@Override
@@ -105,9 +105,14 @@ public class L2DamageZone extends L2ZoneType
 		{
 			L2PcInstance player = character.getActingPlayer();
 			if (getCastle() != null) // Castle zone
+			{
 				if (!(getCastle().getSiege().getIsInProgress() && player != null && player.getSiegeState() != 2)) // Siege and no defender
+				{
 					return;
-			synchronized(this)
+				}
+			}
+			
+			synchronized (this)
 			{
 				if (_task == null)
 					_task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new ApplyDamage(this), _startTask, _reuseTask);
@@ -145,18 +150,18 @@ public class L2DamageZone extends L2ZoneType
 	
 	private Castle getCastle()
 	{
-		if (_castleId > 0 &&_castle == null)
+		if (_castleId > 0 && _castle == null)
 			_castle = CastleManager.getInstance().getCastleById(_castleId);
 		
 		return _castle;
 	}
 	
-	class ApplyDamage implements Runnable
+	private final class ApplyDamage implements Runnable
 	{
 		private final L2DamageZone _dmgZone;
 		private final Castle _castle;
 		
-		ApplyDamage(L2DamageZone zone)
+		private ApplyDamage(L2DamageZone zone)
 		{
 			_dmgZone = zone;
 			_castle = zone.getCastle();
@@ -164,7 +169,12 @@ public class L2DamageZone extends L2ZoneType
 		
 		@Override
 		public void run()
-		{
+		{	
+			if (!_enabled)
+			{
+				return;
+			}
+			
 			boolean siege = false;
 			
 			if (_castle != null)
@@ -178,9 +188,6 @@ public class L2DamageZone extends L2ZoneType
 				}
 			}
 			
-			if (!_enabled)
-				return;
-			
 			for (L2Character temp : _dmgZone.getCharactersInsideArray())
 			{
 				if (temp != null && !temp.isDead())
@@ -193,7 +200,7 @@ public class L2DamageZone extends L2ZoneType
 							continue;
 					}
 					
-					double multiplier =  1 + (temp.calcStat(Stats.DAMAGE_ZONE_VULN, 0, null, null) / 100);
+					double multiplier = 1 + (temp.calcStat(Stats.DAMAGE_ZONE_VULN, 0, null, null) / 100);
 					
 					if (getHPDamagePerSecond() != 0)
 						temp.reduceCurrentHp(_dmgZone.getHPDamagePerSecond() * multiplier, null, null);
@@ -218,5 +225,4 @@ public class L2DamageZone extends L2ZoneType
 	public void onReviveInside(L2Character character)
 	{
 	}
-	
 }

+ 2 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2DerbyTrackZone.java

@@ -15,7 +15,6 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
@@ -32,7 +31,7 @@ public class L2DerbyTrackZone extends L2ZoneType
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2Playable)
+		if (character.isPlayable())
 		{
 			character.setInsideZone(L2Character.ZONE_MONSTERTRACK, true);
 		}
@@ -41,7 +40,7 @@ public class L2DerbyTrackZone extends L2ZoneType
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2Playable)
+		if (character.isPlayable())
 		{
 			character.setInsideZone(L2Character.ZONE_MONSTERTRACK, false);
 		}
@@ -56,5 +55,4 @@ public class L2DerbyTrackZone extends L2ZoneType
 	public void onReviveInside(L2Character character)
 	{
 	}
-	
 }

+ 19 - 23
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2DynamicZone.java

@@ -19,16 +19,12 @@ import java.util.concurrent.Future;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.model.L2WorldRegion;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
-
 /**
- * A dynamic zone?
- * Maybe use this for interlude skills like protection field :>
- *
- * @author  durgus
+ * A dynamic zone? Maybe use this for interlude skills like protection field :>
+ * @author durgus
  */
 public class L2DynamicZone extends L2ZoneType
 {
@@ -49,7 +45,8 @@ public class L2DynamicZone extends L2ZoneType
 		_owner = owner;
 		_skill = skill;
 		
-		Runnable r = new Runnable() {
+		Runnable r = new Runnable()
+		{
 			@Override
 			public void run()
 			{
@@ -62,49 +59,45 @@ public class L2DynamicZone extends L2ZoneType
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		try
+		if (character.isPlayer())
 		{
-			if (character instanceof L2PcInstance)
-				((L2PcInstance) character).sendMessage("You have entered a temporary zone!");
-			_skill.getEffects(_owner, character);
+			character.sendMessage("You have entered a temporary zone!");
 		}
-		catch (NullPointerException e)
+		if (_owner != null)
 		{
+			_skill.getEffects(_owner, character);
 		}
 	}
 	
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			((L2PcInstance) character).sendMessage("You have left a temporary zone!");
+			character.sendMessage("You have left a temporary zone!"); // XXX: Custom message?
 		}
+		
 		if (character == _owner)
 		{
 			remove();
 			return;
 		}
+		
 		character.stopSkillEffects(_skill.getId());
 	}
 	
 	protected void remove()
 	{
-		if (_task == null)
+		if (_task == null || _skill == null)
 			return;
+		
 		_task.cancel(false);
 		_task = null;
 		
 		_region.removeZone(this);
 		for (L2Character member : getCharactersInsideArray())
 		{
-			try
-			{
-				member.stopSkillEffects(_skill.getId());
-			}
-			catch (NullPointerException e)
-			{
-			}
+			member.stopSkillEffects(_skill.getId());
 		}
 		_owner.stopSkillEffects(_skill.getId());
 		
@@ -114,9 +107,13 @@ public class L2DynamicZone extends L2ZoneType
 	public void onDieInside(L2Character character)
 	{
 		if (character == _owner)
+		{
 			remove();
+		}
 		else
+		{
 			character.stopSkillEffects(_skill.getId());
+		}
 	}
 	
 	@Override
@@ -124,5 +121,4 @@ public class L2DynamicZone extends L2ZoneType
 	{
 		_skill.getEffects(_owner, character);
 	}
-	
 }

+ 15 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2EffectZone.java

@@ -23,7 +23,6 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.model.L2Object.InstanceType;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.L2Skill;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.network.serverpackets.EtcStatusUpdate;
@@ -32,7 +31,7 @@ import com.l2jserver.util.StringUtil;
 
 /**
  * another type of damage zone with skills
- * @author  kerberos
+ * @author kerberos
  */
 public class L2EffectZone extends L2ZoneType
 {
@@ -45,8 +44,6 @@ public class L2EffectZone extends L2ZoneType
 	private Future<?> _task;
 	private FastMap<Integer, Integer> _skills;
 	
-	
-	
 	public L2EffectZone(int id)
 	{
 		super(id);
@@ -94,7 +91,7 @@ public class L2EffectZone extends L2ZoneType
 			{
 				String[] skillSplit = skill.split("-");
 				if (skillSplit.length != 2)
-					_log.warning(StringUtil.concat(getClass().getSimpleName()+": invalid config property -> skillsIdLvl \"", skill, "\""));
+					_log.warning(StringUtil.concat(getClass().getSimpleName() + ": invalid config property -> skillsIdLvl \"", skill, "\""));
 				else
 				{
 					try
@@ -105,7 +102,7 @@ public class L2EffectZone extends L2ZoneType
 					{
 						if (!skill.isEmpty())
 						{
-							_log.warning(StringUtil.concat(getClass().getSimpleName()+": invalid config property -> skillsIdLvl \"", skillSplit[0], "\"", skillSplit[1]));
+							_log.warning(StringUtil.concat(getClass().getSimpleName() + ": invalid config property -> skillsIdLvl \"", skillSplit[0], "\"", skillSplit[1]));
 						}
 					}
 				}
@@ -126,20 +123,20 @@ public class L2EffectZone extends L2ZoneType
 		{
 			if (_task == null)
 			{
-				synchronized(this)
+				synchronized (this)
 				{
 					if (_task == null)
 						_task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new ApplySkill(), _initialDelay, _reuse);
 				}
 			}
 		}
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_ALTERED, true);
 			if (_isShowDangerIcon)
 			{
 				character.setInsideZone(L2Character.ZONE_DANGERAREA, true);
-				character.sendPacket(new EtcStatusUpdate((L2PcInstance) character));
+				character.sendPacket(new EtcStatusUpdate(character.getActingPlayer()));
 			}
 		}
 	}
@@ -147,14 +144,14 @@ public class L2EffectZone extends L2ZoneType
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_ALTERED, false);
 			if (_isShowDangerIcon)
 			{
 				character.setInsideZone(L2Character.ZONE_DANGERAREA, false);
 				if (!character.isInsideZone(L2Character.ZONE_DANGERAREA))
-					character.sendPacket(new EtcStatusUpdate((L2PcInstance) character));
+					character.sendPacket(new EtcStatusUpdate(character.getActingPlayer()));
 			}
 		}
 		if (_characterList.isEmpty() && _task != null)
@@ -188,14 +185,13 @@ public class L2EffectZone extends L2ZoneType
 		}
 		if (_skills == null)
 		{
-			synchronized(this)
+			synchronized (this)
 			{
 				if (_skills == null)
 					_skills = new FastMap<Integer, Integer>(3).shared();
 			}
 		}
 		_skills.put(skillId, skillLvL);
-		//_log.info("Zone: "+this+" adding skill: "+skillId+" lvl: "+skillLvL);
 	}
 	
 	public void removeSkill(int skillId)
@@ -222,9 +218,9 @@ public class L2EffectZone extends L2ZoneType
 		return _skills.get(skillId);
 	}
 	
-	class ApplySkill implements Runnable
+	private final class ApplySkill implements Runnable
 	{
-		ApplySkill()
+		private ApplySkill()
 		{
 			if (_skills == null)
 				throw new IllegalStateException("No skills defined.");
@@ -245,8 +241,12 @@ public class L2EffectZone extends L2ZoneType
 							{
 								L2Skill skill = getSkill(e.getKey(), e.getValue());
 								if (_bypassConditions || skill != null && skill.checkCondition(temp, temp, false))
+								{
 									if (temp.getFirstEffect(e.getKey()) == null)
+									{
 										skill.getEffects(temp, temp);
+									}
+								}
 							}
 						}
 					}

+ 3 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2FishingZone.java

@@ -19,8 +19,7 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
  * A fishing zone
- *
- * @author  durgus
+ * @author durgus
  */
 public class L2FishingZone extends L2ZoneType
 {
@@ -49,9 +48,8 @@ public class L2FishingZone extends L2ZoneType
 	{
 	}
 	
-	/* getWaterZ() this added function returns the Z value for the water surface.
-	 * In effect this simply returns the upper Z value of the zone. This required
-	 * some modification of L2ZoneForm, and zone form extentions.
+	/*
+	 * getWaterZ() this added function returns the Z value for the water surface. In effect this simply returns the upper Z value of the zone. This required some modification of L2ZoneForm, and zone form extentions.
 	 */
 	public int getWaterZ()
 	{

+ 11 - 12
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2FortZone.java

@@ -15,15 +15,12 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
-import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneRespawn;
 
 /**
  * A castle zone
- *
- * @author  durgus
+ * @author durgus
  */
 public class L2FortZone extends L2ZoneRespawn
 {
@@ -38,9 +35,13 @@ public class L2FortZone extends L2ZoneRespawn
 	public void setParameter(String name, String value)
 	{
 		if (name.equals("fortId"))
+		{
 			_fortId = Integer.parseInt(value);
+		}
 		else
+		{
 			super.setParameter(name, value);
+		}
 	}
 	
 	@Override
@@ -57,8 +58,7 @@ public class L2FortZone extends L2ZoneRespawn
 	
 	@Override
 	public void onDieInside(L2Character character)
-	{
-		
+	{	
 	}
 	
 	@Override
@@ -72,18 +72,18 @@ public class L2FortZone extends L2ZoneRespawn
 	
 	/**
 	 * Removes all foreigners from the fort
-	 * @param owningClan
+	 * @param owningClanId
 	 */
-	public void banishForeigners(L2Clan owningClan)
+	public void banishForeigners(int owningClanId)
 	{
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (!(temp instanceof L2PcInstance))
+			if (temp == null || !temp.isPlayer())
 				continue;
-			if (((L2PcInstance) temp).getClan() == owningClan)
+			else if (temp.getActingPlayer().getClanId() == owningClanId)
 				continue;
 			
-			((L2PcInstance) temp).teleToLocation(MapRegionManager.TeleportWhereType.Fortress_banish);
+			temp.teleToLocation(MapRegionManager.TeleportWhereType.Fortress_banish);
 		}
 	}
 	
@@ -91,5 +91,4 @@ public class L2FortZone extends L2ZoneRespawn
 	{
 		return _fortId;
 	}
-	
 }

+ 26 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2HqZone.java

@@ -15,7 +15,6 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
@@ -33,21 +32,44 @@ public class L2HqZone extends L2ZoneType
 	@Override
 	public void setParameter(String name, String value)
 	{
-		
+		if ("castleId".equals(name))
+		{
+			// TODO
+		}
+		else if ("fortId".equals(name))
+		{
+			// TODO			
+		}
+		else if ("clanHallId".equals(name))
+		{
+			// TODO
+		}
+		else if ("territoryId".equals(name))
+		{
+			// TODO
+		}
+		else
+		{
+			super.setParameter(name, value);
+		}
 	}
 	
 	@Override
 	protected void onEnter(final L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
+		{
 			character.setInsideZone(L2Character.ZONE_HQ, true);
+		}
 	}
 	
 	@Override
 	protected void onExit(final L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
+		{
 			character.setInsideZone(L2Character.ZONE_HQ, false);
+		}
 	}
 	
 	@Override

+ 7 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2JailZone.java

@@ -17,7 +17,6 @@ package com.l2jserver.gameserver.model.zone.type;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
@@ -35,7 +34,7 @@ public class L2JailZone extends L2ZoneType
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_JAIL, true);
 			if (Config.JAIL_IS_PVP)
@@ -53,7 +52,7 @@ public class L2JailZone extends L2ZoneType
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_JAIL, false);
 			if (Config.JAIL_IS_PVP)
@@ -61,7 +60,7 @@ public class L2JailZone extends L2ZoneType
 				character.setInsideZone(L2Character.ZONE_PVP, false);
 				character.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
 			}
-			if (((L2PcInstance) character).isInJail())
+			if (character.getActingPlayer().isInJail())
 			{
 				// when a player wants to exit jail even if he is still jailed, teleport him back to jail
 				ThreadPoolManager.getInstance().scheduleGeneral(new BackToJail(character), 2000);
@@ -84,13 +83,13 @@ public class L2JailZone extends L2ZoneType
 	{
 	}
 	
-	static class BackToJail implements Runnable
+	private static class BackToJail implements Runnable
 	{
-		private final L2PcInstance _activeChar;
+		private final L2Character _activeChar;
 		
-		BackToJail(L2Character character)
+		private BackToJail(L2Character character)
 		{
-			_activeChar = (L2PcInstance) character;
+			_activeChar = character;
 		}
 		
 		@Override

+ 6 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2LandingZone.java

@@ -15,12 +15,10 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
  * A landing zone
- *
  * @author  Kerberos
  */
 public class L2LandingZone extends L2ZoneType
@@ -33,28 +31,26 @@ public class L2LandingZone extends L2ZoneType
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
+		{
 			character.setInsideZone(L2Character.ZONE_LANDING, true);
+		}
 	}
 	
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
+		{
 			character.setInsideZone(L2Character.ZONE_LANDING, false);
+		}
 	}
 	
-	/**
-	 * @see com.l2jserver.gameserver.model.zone.L2ZoneType#onDieInside(com.l2jserver.gameserver.model.actor.L2Character)
-	 */
 	@Override
 	public void onDieInside(L2Character character)
 	{
 	}
 	
-	/**
-	 * @see com.l2jserver.gameserver.model.zone.L2ZoneType#onReviveInside(com.l2jserver.gameserver.model.actor.L2Character)
-	 */
 	@Override
 	public void onReviveInside(L2Character character)
 	{

+ 12 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2MotherTreeZone.java

@@ -20,10 +20,8 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 /**
- * A mother-trees zone
- * Basic type zone for Hp, MP regen
- *
- * @author  durgus
+ * A mother-trees zone Basic type zone for Hp, MP regen
+ * @author durgus
  */
 public class L2MotherTreeZone extends L2ZoneType
 {
@@ -57,32 +55,36 @@ public class L2MotherTreeZone extends L2ZoneType
 			_hpRegen = Integer.parseInt(value);
 		}
 		else
+		{
 			super.setParameter(name, value);
-		
+		}
 	}
 	
-	
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			L2PcInstance player = (L2PcInstance) character;
+			L2PcInstance player = character.getActingPlayer();
 			character.setInsideZone(L2Character.ZONE_MOTHERTREE, true);
 			if (_enterMsg != 0)
+			{
 				player.sendPacket(SystemMessage.getSystemMessage(_enterMsg));
+			}
 		}
 	}
 	
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			L2PcInstance player = (L2PcInstance) character;
+			L2PcInstance player = character.getActingPlayer();
 			player.setInsideZone(L2Character.ZONE_MOTHERTREE, false);
 			if (_leaveMsg != 0)
+			{
 				player.sendPacket(SystemMessage.getSystemMessage(_leaveMsg));
+			}
 		}
 	}
 	

+ 18 - 20
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoLandingZone.java

@@ -15,14 +15,12 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
 /**
  * A no landing zone
- *
- * @author  durgus
+ * @author durgus
  */
 public class L2NoLandingZone extends L2ZoneType
 {
@@ -33,16 +31,27 @@ public class L2NoLandingZone extends L2ZoneType
 		super(id);
 	}
 	
+	@Override
+	public void setParameter(String name, String value)
+	{
+		if (name.equals("dismountDelay"))
+		{
+			dismountDelay = Integer.parseInt(value);
+		}
+		else
+			super.setParameter(name, value);
+	}
+	
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_NOLANDING, true);
-			if (((L2PcInstance) character).getMountType() == 2)
+			if (character.getActingPlayer().getMountType() == 2)
 			{
 				character.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
-				((L2PcInstance) character).enteredNoLanding(dismountDelay);
+				character.getActingPlayer().enteredNoLanding(dismountDelay);
 			}
 		}
 	}
@@ -50,12 +59,12 @@ public class L2NoLandingZone extends L2ZoneType
 	@Override
 	protected void onExit(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_NOLANDING, false);
-			if (((L2PcInstance) character).getMountType() == 2)
+			if (character.getActingPlayer().getMountType() == 2)
 			{
-				((L2PcInstance) character).exitedNoLanding();
+				character.getActingPlayer().exitedNoLanding();
 			}
 		}
 	}
@@ -69,15 +78,4 @@ public class L2NoLandingZone extends L2ZoneType
 	public void onReviveInside(L2Character character)
 	{
 	}
-	
-	@Override
-	public void setParameter(String name, String value)
-	{
-		if (name.equals("dismountDelay"))
-		{
-			dismountDelay = Integer.parseInt(value);
-		}
-		else
-			super.setParameter(name, value);
-	}
 }

+ 2 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoRestartZone.java

@@ -67,7 +67,7 @@ public class L2NoRestartZone extends L2ZoneType
 			return;
 		}
 		
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_NORESTART, true);
 			L2PcInstance player = (L2PcInstance) character;
@@ -88,7 +88,7 @@ public class L2NoRestartZone extends L2ZoneType
 			return;
 		}
 		
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_NORESTART, false);
 		}
@@ -97,13 +97,11 @@ public class L2NoRestartZone extends L2ZoneType
 	@Override
 	public void onDieInside(L2Character character)
 	{
-		// Do nothing.
 	}
 	
 	@Override
 	public void onReviveInside(L2Character character)
 	{
-		// Do nothing.
 	}
 	
 	public int getRestartAllowedTime()

+ 2 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoStoreZone.java

@@ -15,12 +15,10 @@
 package com.l2jserver.gameserver.model.zone.type;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
  * Zone where store is not allowed.
- * 
  * @author fordfrog
  */
 public class L2NoStoreZone extends L2ZoneType
@@ -33,7 +31,7 @@ public class L2NoStoreZone extends L2ZoneType
 	@Override
 	protected void onEnter(final L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_NOSTORE, true);
 		}
@@ -42,7 +40,7 @@ public class L2NoStoreZone extends L2ZoneType
 	@Override
 	protected void onExit(final L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
 			character.setInsideZone(L2Character.ZONE_NOSTORE, false);
 		}

+ 0 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoSummonFriendZone.java

@@ -19,7 +19,6 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
  * A simple no summon zone
- *
  * @author JIV
  */
 public class L2NoSummonFriendZone extends L2ZoneType
@@ -51,5 +50,4 @@ public class L2NoSummonFriendZone extends L2ZoneType
 	public void onReviveInside(L2Character character)
 	{
 	}
-	
 }

+ 31 - 31
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2OlympiadStadiumZone.java

@@ -22,7 +22,6 @@ import com.l2jserver.gameserver.instancemanager.InstanceManager;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
 import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2OlympiadManagerInstance;
@@ -37,15 +36,14 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 /**
  * An olympiad stadium
- *
- * @author  durgus, DS
+ * @author durgus, DS
  */
 public class L2OlympiadStadiumZone extends L2ZoneRespawn
 {
 	private final List<L2Spawn> _buffers;
-
+	
 	OlympiadGameTask _task = null;
-
+	
 	public L2OlympiadStadiumZone(int id)
 	{
 		super(id);
@@ -56,7 +54,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 	{
 		_task = task;
 	}
-
+	
 	public final void openDoors()
 	{
 		for (L2DoorInstance door : InstanceManager.getInstance().getInstance(getInstanceId()).getDoors())
@@ -65,7 +63,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 				door.openMe();
 		}
 	}
-
+	
 	public final void closeDoors()
 	{
 		for (L2DoorInstance door : InstanceManager.getInstance().getInstance(getInstanceId()).getDoors())
@@ -74,7 +72,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 				door.closeMe();
 		}
 	}
-
+	
 	public final void spawnBuffers()
 	{
 		for (L2Spawn spawn : _buffers)
@@ -84,7 +82,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 			spawn.stopRespawn();
 		}
 	}
-
+	
 	public final void deleteBuffers()
 	{
 		for (L2Spawn spawn : _buffers)
@@ -93,31 +91,33 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 				spawn.getLastSpawn().deleteMe();
 		}
 	}
-
+	
 	public final void broadcastStatusUpdate(L2PcInstance player)
 	{
 		final ExOlympiadUserInfo packet = new ExOlympiadUserInfo(player);
 		for (L2Character character : getCharactersInsideArray())
 		{
-			if (character instanceof L2PcInstance)
+			if (character != null && character.isPlayer())
 			{
-				if (((L2PcInstance)character).inObserverMode()
-						|| ((L2PcInstance)character).getOlympiadSide() != player.getOlympiadSide())
+				if (character.getActingPlayer().inObserverMode() || character.getActingPlayer().getOlympiadSide() != player.getOlympiadSide())
+				{
 					character.sendPacket(packet);
+				}
 			}
 		}
 	}
-
+	
 	public final void broadcastPacketToObservers(L2GameServerPacket packet)
 	{
 		for (L2Character character : getCharactersInsideArray())
 		{
-			if (character instanceof L2PcInstance
-					&& ((L2PcInstance)character).inObserverMode())
+			if (character != null && character.isPlayer() && character.getActingPlayer().inObserverMode())
+			{
 				character.sendPacket(packet);
+			}
 		}
 	}
-
+	
 	@Override
 	protected final void onEnter(L2Character character)
 	{
@@ -126,15 +126,15 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 			if (_task.isBattleStarted())
 			{
 				character.setInsideZone(L2Character.ZONE_PVP, true);
-				if (character instanceof L2PcInstance)
+				if (character.isPlayer())
 				{
 					character.sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE);
 					_task.getGame().sendOlympiadInfo(character);
 				}
 			}
 		}
-
-		if (character instanceof L2Playable)
+		
+		if (character.isPlayable())
 		{
 			final L2PcInstance player = character.getActingPlayer();
 			if (player != null)
@@ -155,7 +155,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 			}
 		}
 	}
-
+	
 	@Override
 	protected final void onExit(L2Character character)
 	{
@@ -164,7 +164,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 			if (_task.isBattleStarted())
 			{
 				character.setInsideZone(L2Character.ZONE_PVP, false);
-				if (character instanceof L2PcInstance)
+				if (character.isPlayer())
 				{
 					character.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
 					character.sendPacket(ExOlympiadMatchEnd.STATIC_PACKET);
@@ -177,29 +177,29 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 	{
 		if (_task == null)
 			return;
-
+		
 		final boolean battleStarted = _task.isBattleStarted();
 		final SystemMessage sm;
 		if (battleStarted)
 			sm = SystemMessage.getSystemMessage(SystemMessageId.ENTERED_COMBAT_ZONE);
 		else
 			sm = SystemMessage.getSystemMessage(SystemMessageId.LEFT_COMBAT_ZONE);
-
+		
 		for (L2Character character : getCharactersInsideArray())
 		{
 			if (character == null)
 				continue;
-
+			
 			if (battleStarted)
 			{
 				character.setInsideZone(L2Character.ZONE_PVP, true);
-				if (character instanceof L2PcInstance)
+				if (character.isPlayer())
 					character.sendPacket(sm);
 			}
 			else
 			{
 				character.setInsideZone(L2Character.ZONE_PVP, false);
-				if (character instanceof L2PcInstance)
+				if (character.isPlayer())
 				{
 					character.sendPacket(sm);
 					character.sendPacket(ExOlympiadMatchEnd.STATIC_PACKET);
@@ -207,7 +207,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 			}
 		}
 	}
-
+	
 	@Override
 	public void onDieInside(L2Character character)
 	{
@@ -221,12 +221,12 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 	private static final class KickPlayer implements Runnable
 	{
 		private L2PcInstance _player;
-
+		
 		public KickPlayer(L2PcInstance player)
 		{
 			_player = player;
 		}
-
+		
 		@Override
 		public void run()
 		{
@@ -235,7 +235,7 @@ public class L2OlympiadStadiumZone extends L2ZoneRespawn
 				final L2Summon summon = _player.getPet();
 				if (summon != null)
 					summon.unSummon(_player);
-
+				
 				_player.teleToLocation(MapRegionManager.TeleportWhereType.Town);
 				_player.setInstanceId(0);
 				_player = null;

+ 5 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2PeaceZone.java

@@ -34,16 +34,17 @@ public class L2PeaceZone extends L2ZoneType
 	@Override
 	protected void onEnter(L2Character character)
 	{
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			if (((L2PcInstance) character).isCombatFlagEquipped() && TerritoryWarManager.getInstance().isTWInProgress())
+			L2PcInstance player = character.getActingPlayer();
+			if (player.isCombatFlagEquipped() && TerritoryWarManager.getInstance().isTWInProgress())
 			{
-				TerritoryWarManager.getInstance().dropCombatFlag(((L2PcInstance) character), false, true);
+				TerritoryWarManager.getInstance().dropCombatFlag(player, false, true);
 			}
 			
 			// PVP possible during siege, now for siege participants only
 			// Could also check if this town is in siege, or if any siege is going on
-			if ((((L2PcInstance) character).getSiegeState() != 0) && (Config.PEACE_ZONE_MODE == 1))
+			if (player.getSiegeState() != 0 && (Config.PEACE_ZONE_MODE == 1))
 			{
 				return;
 			}
@@ -77,12 +78,10 @@ public class L2PeaceZone extends L2ZoneType
 	@Override
 	public void onDieInside(L2Character character)
 	{
-		//
 	}
 	
 	@Override
 	public void onReviveInside(L2Character character)
 	{
-		//
 	}
 }

+ 20 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ResidenceHallTeleportZone.java

@@ -22,8 +22,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.util.Rnd;
 
 /**
- * @author BiggBoss
  * Teleport residence zone for clan hall sieges
+ * @author BiggBoss
  */
 public class L2ResidenceHallTeleportZone extends L2ResidenceTeleportZone
 {
@@ -42,9 +42,13 @@ public class L2ResidenceHallTeleportZone extends L2ResidenceTeleportZone
 	public void setParameter(String name, String value)
 	{
 		if (name.equals("residenceZoneId"))
+		{
 			_id = Integer.parseInt(value);
+		}
 		else
+		{
 			super.setParameter(name, value);
+		}
 	}
 	
 	public int getResidenceZoneId()
@@ -54,25 +58,34 @@ public class L2ResidenceHallTeleportZone extends L2ResidenceTeleportZone
 	
 	public synchronized void checkTeleporTask()
 	{
-		if(_teleTask == null || _teleTask.isDone())
+		if (_teleTask == null || _teleTask.isDone())
 			_teleTask = ThreadPoolManager.getInstance().scheduleGeneral(new TeleportTask(), 30000);
 	}
 	
-	class TeleportTask implements Runnable
+	private class TeleportTask implements Runnable
 	{
 		@Override
 		public void run()
 		{
 			int index = 0;
-			if(getSpawns().size() > 1)
+			if (getSpawns().size() > 1)
+			{
 				index = Rnd.get(getSpawns().size());
+			}
+			
 			final Location loc = getSpawns().get(index);
-			if(loc == null)
+			if (loc == null)
+			{
 				throw new NullPointerException();
+			}
 			
-			for(L2PcInstance pc : getAllPlayers())
-				if(pc != null)
+			for (L2PcInstance pc : getAllPlayers())
+			{
+				if (pc != null)
+				{
 					pc.teleToLocation(loc, false);
+				}
+			}
 		}
 	}
 }

+ 17 - 12
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ResidenceTeleportZone.java

@@ -14,6 +14,8 @@
  */
 package com.l2jserver.gameserver.model.zone.type;
 
+import java.util.List;
+
 import javolution.util.FastList;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
@@ -21,7 +23,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneRespawn;
 
 /**
- * @author Nyaran (based on Kerberos work for custom L2CastleTeleportZone)
+ * based on Kerberos work for custom L2CastleTeleportZone
+ * @author Nyaran
  */
 public class L2ResidenceTeleportZone extends L2ZoneRespawn
 {
@@ -36,9 +39,13 @@ public class L2ResidenceTeleportZone extends L2ZoneRespawn
 	public void setParameter(String name, String value)
 	{
 		if (name.equals("residenceId"))
+		{
 			_residenceId = Integer.parseInt(value);
+		}
 		else
+		{
 			super.setParameter(name, value);
+		}
 	}
 	
 	@Override
@@ -67,14 +74,14 @@ public class L2ResidenceTeleportZone extends L2ZoneRespawn
 	 * Returns all players within this zone
 	 * @return
 	 */
-	public FastList<L2PcInstance> getAllPlayers()
+	public List<L2PcInstance> getAllPlayers()
 	{
-		FastList<L2PcInstance> players = new FastList<L2PcInstance>();
+		List<L2PcInstance> players = new FastList<L2PcInstance>();
 		
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (temp instanceof L2PcInstance)
-				players.add((L2PcInstance) temp);
+			if (temp != null && temp.isPlayer())
+				players.add(temp.getActingPlayer());
 		}
 		
 		return players;
@@ -82,19 +89,17 @@ public class L2ResidenceTeleportZone extends L2ZoneRespawn
 	
 	public void oustAllPlayers()
 	{
-		if (_characterList == null)
-			return;
-		if (_characterList.isEmpty())
+		if (_characterList == null || _characterList.isEmpty())
 			return;
 		for (L2Character character : getCharactersInsideArray())
 		{
-			if (character == null)
-				continue;
-			if (character instanceof L2PcInstance)
+			if (character != null && character.isPlayer())
 			{
-				L2PcInstance player = (L2PcInstance) character;
+				L2PcInstance player = character.getActingPlayer();
 				if (player.isOnline())
+				{
 					player.teleToLocation(getSpawnLoc(), 200);
+				}
 			}
 		}
 	}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2RespawnZone.java

@@ -28,7 +28,7 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
  */
 public class L2RespawnZone extends L2ZoneType
 {
-	private Map<Race, String> _raceRespawnPoint = new FastMap<Race, String>();
+	private Map<Race, String> _raceRespawnPoint = new FastMap<>();
 	
 	public L2RespawnZone(int id)
 	{
@@ -63,7 +63,7 @@ public class L2RespawnZone extends L2ZoneType
 	public Map<Race, String> getAllRespawnPoints()
 	{
 		return _raceRespawnPoint;
-	} 
+	}
 	
 	public String getRespawnPoint(L2PcInstance activeChar)
 	{

+ 2 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2ScriptZone.java

@@ -18,11 +18,8 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
- * A scripted zone...
- * Creation of such a zone should require somekind
- * of jython script reference which can handle onEnter() / onExit()
- *
- * @author  durgus
+ * A scripted zone... Creation of such a zone should require somekind of jython script reference which can handle onEnter() / onExit()
+ * @author durgus
  */
 public class L2ScriptZone extends L2ZoneType
 {
@@ -52,5 +49,4 @@ public class L2ScriptZone extends L2ZoneType
 	public void onReviveInside(L2Character character)
 	{
 	}
-	
 }

+ 14 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SiegableHallZone.java

@@ -14,12 +14,12 @@
  */
 package com.l2jserver.gameserver.model.zone.type;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.l2jserver.gameserver.instancemanager.MapRegionManager.TeleportWhereType;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
 /**
  * @author BiggBoss
@@ -36,14 +36,18 @@ public final class L2SiegableHallZone extends L2ClanHallZone
 	@Override
 	public void parseLoc(int x, int y, int z, String type)
 	{
-		if(type != null && type.equals("challenger"))
+		if (type != null && type.equals("challenger"))
 		{
-			if(_challengerLocations == null)
-				_challengerLocations = new java.util.ArrayList<Location>();
-			_challengerLocations.add(new Location(x,y,z));
+			if (_challengerLocations == null)
+			{
+				_challengerLocations = new ArrayList<Location>();
+			}
+			_challengerLocations.add(new Location(x, y, z));
 		}
 		else
+		{
 			super.parseLoc(x, y, z, type);
+		}
 	}
 	
 	public List<Location> getChallengerSpawns()
@@ -54,12 +58,14 @@ public final class L2SiegableHallZone extends L2ClanHallZone
 	public void banishNonSiegeParticipants()
 	{
 		final TeleportWhereType banish = TeleportWhereType.ClanHall_banish;
-		for(L2Character character : getCharactersInsideArray())
+		for (L2Character character : getCharactersInsideArray())
 		{
-			if(character instanceof L2PcInstance)
+			if (character != null && character.isPlayer())
 			{
-				if(!((L2PcInstance)character).isInHideoutSiege())
+				if (!character.getActingPlayer().isInHideoutSiege())
+				{
 					character.teleToLocation(banish);
+				}
 			}
 		}
 	}

+ 62 - 39
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SiegeZone.java

@@ -14,6 +14,8 @@
  */
 package com.l2jserver.gameserver.model.zone.type;
 
+import java.util.List;
+
 import javolution.util.FastList;
 
 import com.l2jserver.Config;
@@ -21,8 +23,7 @@ import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
-import com.l2jserver.gameserver.instancemanager.MapRegionManager;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.instancemanager.MapRegionManager.TeleportWhereType;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2SiegeSummonInstance;
@@ -36,9 +37,8 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
 /**
- * A  siege zone
- *
- * @author  durgus
+ * A siege zone
+ * @author durgus
  */
 public class L2SiegeZone extends L2ZoneType
 {
@@ -58,28 +58,40 @@ public class L2SiegeZone extends L2ZoneType
 		if (name.equals("castleId"))
 		{
 			if (_siegableId != -1)
+			{
 				throw new IllegalArgumentException("Siege object already defined!");
+			}
 			_siegableId = Integer.parseInt(value);
 		}
 		else if (name.equals("fortId"))
 		{
 			if (_siegableId != -1)
+			{
 				throw new IllegalArgumentException("Siege object already defined!");
+			}
 			_siegableId = Integer.parseInt(value);
 		}
 		else if (name.equals("clanHallId"))
 		{
 			if (_siegableId != -1)
+			{
 				throw new IllegalArgumentException("Siege object already defined!");
+			}
 			_siegableId = Integer.parseInt(value);
 			SiegableHall hall = CHSiegeManager.getInstance().getConquerableHalls().get(_siegableId);
-			if(hall == null)
-				_log.warning("L2SiegeZone: Siegable clan hall with id "+ value + " does not exist!");
+			if (hall == null)
+			{
+				_log.warning("L2SiegeZone: Siegable clan hall with id " + value + " does not exist!");
+			}
 			else
+			{
 				hall.setSiegeZone(this);
+			}
 		}
 		else
+		{
 			super.setParameter(name, value);
+		}
 	}
 	
 	@Override
@@ -91,20 +103,23 @@ public class L2SiegeZone extends L2ZoneType
 			character.setInsideZone(L2Character.ZONE_SIEGE, true);
 			character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, true); // FIXME: Custom ?
 			
-			if (character instanceof L2PcInstance)
+			if (character.isPlayer())
 			{
-				
-				if (((L2PcInstance) character).isRegisteredOnThisSiegeField(_siegableId))
+				L2PcInstance plyer = character.getActingPlayer();
+				if (plyer.isRegisteredOnThisSiegeField(_siegableId))
 				{
-					((L2PcInstance) character).setIsInSiege(true); // in siege
+					plyer.setIsInSiege(true); // in siege
 					if (_siege.giveFame() && _siege.getFameFrequency() > 0)
-						((L2PcInstance) character).startFameTask(_siege.getFameFrequency() * 1000, _siege.getFameAmount());
+					{
+						plyer.startFameTask(_siege.getFameFrequency() * 1000, _siege.getFameAmount());
+					}
 				}
+				
 				character.sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE);
-				if (!Config.ALLOW_WYVERN_DURING_SIEGE && ((L2PcInstance) character).getMountType() == 2)
+				if (!Config.ALLOW_WYVERN_DURING_SIEGE && plyer.getMountType() == 2)
 				{
-					character.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
-					((L2PcInstance) character).enteredNoLanding(DISMOUNT_DELAY);
+					plyer.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
+					plyer.enteredNoLanding(DISMOUNT_DELAY);
 				}
 			}
 		}
@@ -118,21 +133,24 @@ public class L2SiegeZone extends L2ZoneType
 		character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false); // FIXME: Custom ?
 		if (_isActiveSiege)
 		{
-			if (character instanceof L2PcInstance)
+			if (character.isPlayer())
 			{
+				L2PcInstance player = character.getActingPlayer();
 				character.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
-				if (((L2PcInstance) character).getMountType() == 2)
+				if (player.getMountType() == 2)
 				{
-					((L2PcInstance) character).exitedNoLanding();
+					player.exitedNoLanding();
 				}
 				// Set pvp flag
-				if (((L2PcInstance) character).getPvpFlag() == 0)
-					((L2PcInstance) character).startPvPFlag();
+				if (player.getPvpFlag() == 0)
+				{
+					player.startPvPFlag();
+				}
 			}
 		}
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			L2PcInstance activeChar = (L2PcInstance) character;
+			L2PcInstance activeChar = character.getActingPlayer();
 			activeChar.stopFameTask();
 			activeChar.setIsInSiege(false);
 			
@@ -165,7 +183,7 @@ public class L2SiegeZone extends L2ZoneType
 		if (_isActiveSiege)
 		{
 			// debuff participants only if they die inside siege zone
-			if (character instanceof L2PcInstance && ((L2PcInstance) character).isRegisteredOnThisSiegeField(_siegableId))
+			if (character.isPlayer() && character.getActingPlayer().isRegisteredOnThisSiegeField(_siegableId))
 			{
 				int lvl = 1;
 				final L2Effect e = character.getFirstEffect(5660);
@@ -174,7 +192,9 @@ public class L2SiegeZone extends L2ZoneType
 				
 				final L2Skill skill = SkillTable.getInstance().getInfo(5660, lvl);
 				if (skill != null)
+				{
 					skill.getEffects(character, character);
+				}
 			}
 		}
 	}
@@ -196,21 +216,24 @@ public class L2SiegeZone extends L2ZoneType
 		}
 		else
 		{
+			L2PcInstance player;
 			for (L2Character character : getCharactersInsideArray())
 			{
 				if (character == null)
 					continue;
+				
 				character.setInsideZone(L2Character.ZONE_PVP, false);
 				character.setInsideZone(L2Character.ZONE_SIEGE, false);
 				character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false);
 				
-				if (character instanceof L2PcInstance)
+				if (character.isPlayer())
 				{
+					player = character.getActingPlayer();
 					character.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
-					((L2PcInstance) character).stopFameTask();
-					if (((L2PcInstance) character).getMountType() == 2)
+					player.stopFameTask();
+					if (player.getMountType() == 2)
 					{
-						((L2PcInstance) character).exitedNoLanding();
+						player.exitedNoLanding();
 					}
 				}
 				if (character instanceof L2SiegeSummonInstance)
@@ -222,7 +245,6 @@ public class L2SiegeZone extends L2ZoneType
 		}
 	}
 	
-	
 	/**
 	 * Sends a message to all players in this zone
 	 * @param message
@@ -231,8 +253,8 @@ public class L2SiegeZone extends L2ZoneType
 	{
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (temp instanceof L2PcInstance)
-				((L2PcInstance) temp).sendMessage(message);
+			if (temp != null && temp.isPlayer())
+				temp.sendMessage(message);
 		}
 	}
 	
@@ -240,14 +262,14 @@ public class L2SiegeZone extends L2ZoneType
 	 * Returns all players within this zone
 	 * @return
 	 */
-	public FastList<L2PcInstance> getAllPlayers()
+	public List<L2PcInstance> getAllPlayers()
 	{
-		FastList<L2PcInstance> players = new FastList<L2PcInstance>();
+		List<L2PcInstance> players = new FastList<L2PcInstance>();
 		
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (temp instanceof L2PcInstance)
-				players.add((L2PcInstance) temp);
+			if (temp != null && temp.isPlayer())
+				players.add(temp.getActingPlayer());
 		}
 		
 		return players;
@@ -275,18 +297,19 @@ public class L2SiegeZone extends L2ZoneType
 	
 	/**
 	 * Removes all foreigners from the zone
-	 * @param owningClan
+	 * @param owningClanId
 	 */
-	public void banishForeigners(L2Clan owningClan)
+	public void banishForeigners(int owningClanId)
 	{
+		TeleportWhereType type = TeleportWhereType.Town;
 		for (L2Character temp : getCharactersInsideArray())
 		{
-			if (!(temp instanceof L2PcInstance))
+			if (temp == null || !temp.isPlayer())
 				continue;
-			if (((L2PcInstance) temp).getClan() == owningClan || ((L2PcInstance) temp).isGM())
+			else if (temp.getActingPlayer().getClanId() == owningClanId)
 				continue;
 			
-			((L2PcInstance) temp).teleToLocation(MapRegionManager.TeleportWhereType.Town);
+			temp.teleToLocation(type);
 		}
 	}
 }

+ 11 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SwampZone.java

@@ -22,8 +22,7 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 /**
  * another type of zone where your speed is changed
- *
- * @author  kerberos
+ * @author kerberos
  */
 public class L2SwampZone extends L2ZoneType
 {
@@ -62,7 +61,9 @@ public class L2SwampZone extends L2ZoneType
 	private Castle getCastle()
 	{
 		if (_castleId > 0 && _castle == null)
+		{
 			_castle = CastleManager.getInstance().getCastleById(_castleId);
+		}
 		
 		return _castle;
 	}
@@ -74,18 +75,22 @@ public class L2SwampZone extends L2ZoneType
 		{
 			// castle zones active only during siege
 			if (!getCastle().getSiege().getIsInProgress() || !getCastle().getSiege().isTrapsActive())
+			{
 				return;
+			}
 			
 			// defenders not affected
 			final L2PcInstance player = character.getActingPlayer();
 			if (player != null && player.isInSiege() && player.getSiegeState() == 2)
+			{
 				return;
+			}
 		}
 		
 		character.setInsideZone(L2Character.ZONE_SWAMP, true);
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			((L2PcInstance) character).broadcastUserInfo();
+			character.getActingPlayer().broadcastUserInfo();
 		}
 	}
 	
@@ -96,9 +101,9 @@ public class L2SwampZone extends L2ZoneType
 		if (character.isInsideZone(L2Character.ZONE_SWAMP))
 		{
 			character.setInsideZone(L2Character.ZONE_SWAMP, false);
-			if (character instanceof L2PcInstance)
+			if (character.isPlayer())
 			{
-				((L2PcInstance) character).broadcastUserInfo();
+				character.getActingPlayer().broadcastUserInfo();
 			}
 		}
 	}
@@ -117,5 +122,4 @@ public class L2SwampZone extends L2ZoneType
 	public void onReviveInside(L2Character character)
 	{
 	}
-	
 }

+ 19 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2WaterZone.java

@@ -35,27 +35,33 @@ public class L2WaterZone extends L2ZoneType
 	{
 		character.setInsideZone(L2Character.ZONE_WATER, true);
 		
-		if (character instanceof L2PcInstance)
+		// TODO: update to only send speed status when that packet is known
+		if (character.isPlayer())
 		{
-			if (((L2PcInstance) character).isTransformed() && !((L2PcInstance) character).isCursedWeaponEquipped())
+			L2PcInstance player = character.getActingPlayer();
+			if (player.isTransformed() && !player.isCursedWeaponEquipped())
 			{
 				character.stopTransformation(true);
-				//((L2PcInstance) character).untransform();
 			}
-			// TODO: update to only send speed status when that packet is known
 			else
-				((L2PcInstance) character).broadcastUserInfo();
+			{
+				player.broadcastUserInfo();
+			}
 		}
-		else if (character instanceof L2Npc)
+		else if (character.isNpc())
 		{
 			Collection<L2PcInstance> plrs = character.getKnownList().getKnownPlayers().values();
 			
 			for (L2PcInstance player : plrs)
 			{
 				if (character.getRunSpeed() == 0)
+				{
 					player.sendPacket(new ServerObjectInfo((L2Npc) character, player));
+				}
 				else
+				{
 					player.sendPacket(new AbstractNpcInfo.NpcInfo((L2Npc) character, player));
+				}
 			}
 		}
 	}
@@ -66,19 +72,23 @@ public class L2WaterZone extends L2ZoneType
 		character.setInsideZone(L2Character.ZONE_WATER, false);
 		
 		// TODO: update to only send speed status when that packet is known
-		if (character instanceof L2PcInstance)
+		if (character.isPlayer())
 		{
-			((L2PcInstance) character).broadcastUserInfo();
+			character.getActingPlayer().broadcastUserInfo();
 		}
-		else if (character instanceof L2Npc)
+		else if (character.isNpc())
 		{
 			Collection<L2PcInstance> plrs = character.getKnownList().getKnownPlayers().values();
 			for (L2PcInstance player : plrs)
 			{
 				if (character.getRunSpeed() == 0)
+				{
 					player.sendPacket(new ServerObjectInfo((L2Npc) character, player));
+				}
 				else
+				{
 					player.sendPacket(new AbstractNpcInfo.NpcInfo((L2Npc) character, player));
+				}
 			}
 		}
 	}