Răsfoiți Sursa

Fix #4793. There were some interference in communication with MEL :) ...

JIV 15 ani în urmă
părinte
comite
069d4693f4

+ 0 - 2
L2_GameServer/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java

@@ -156,8 +156,6 @@ public class ZoneManager
 								temp = new L2CastleZone(zoneId);
 								temp = new L2CastleZone(zoneId);
 							else if (zoneType.equals("SiegeZone"))
 							else if (zoneType.equals("SiegeZone"))
 								temp = new L2SiegeZone(zoneId);
 								temp = new L2SiegeZone(zoneId);
-							else if (zoneType.equals("CastleTeleportZone"))
-								temp = new L2CastleTeleportZone(zoneId);
 							else if (zoneType.equals("FortZone"))
 							else if (zoneType.equals("FortZone"))
 								temp = new L2FortZone(zoneId);
 								temp = new L2FortZone(zoneId);
 							else if (zoneType.equals("DamageZone"))
 							else if (zoneType.equals("DamageZone"))

+ 2 - 20
L2_GameServer/java/com/l2jserver/gameserver/model/entity/Castle.java

@@ -54,9 +54,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
-import com.l2jserver.gameserver.model.zone.type.L2SiegeZone;
-import com.l2jserver.gameserver.model.zone.type.L2CastleTeleportZone;
 import com.l2jserver.gameserver.model.zone.type.L2CastleZone;
 import com.l2jserver.gameserver.model.zone.type.L2CastleZone;
+import com.l2jserver.gameserver.model.zone.type.L2SiegeZone;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.network.serverpackets.PledgeShowInfoUpdate;
 import com.l2jserver.gameserver.network.serverpackets.PledgeShowInfoUpdate;
 
 
@@ -95,7 +94,6 @@ public class Castle
 	private boolean _showNpcCrest = false;
 	private boolean _showNpcCrest = false;
 	private L2SiegeZone _zone = null;
 	private L2SiegeZone _zone = null;
 	private L2CastleZone _castleZone = null;
 	private L2CastleZone _castleZone = null;
-	private L2CastleTeleportZone _teleZone;
 	private L2Clan _formerOwner = null;
 	private L2Clan _formerOwner = null;
 	private List<L2ArtefactInstance> _artefacts = new ArrayList<L2ArtefactInstance>(1);
 	private List<L2ArtefactInstance> _artefacts = new ArrayList<L2ArtefactInstance>(1);
 	private TIntIntHashMap _engrave = new TIntIntHashMap(1);
 	private TIntIntHashMap _engrave = new TIntIntHashMap(1);
@@ -422,25 +420,9 @@ public class Castle
 		return _castleZone;
 		return _castleZone;
 	}
 	}
 	
 	
-	public L2CastleTeleportZone getTeleZone()
-	{
-		if (_teleZone == null)
-		{
-			for (L2ZoneType zone : ZoneManager.getInstance().getAllZones())
-			{
-				if (zone instanceof L2CastleTeleportZone && ((L2CastleTeleportZone) zone).getCastleId() == getCastleId())
-				{
-					_teleZone = (L2CastleTeleportZone) zone;
-					break;
-				}
-			}
-		}
-		return _teleZone;
-	}
-	
 	public void oustAllPlayers()
 	public void oustAllPlayers()
 	{
 	{
-		getTeleZone().oustAllPlayers();
+		getCastleZone().oustAllPlayers();
 	}
 	}
 	
 	
 	/**
 	/**

+ 23 - 0
L2_GameServer/java/com/l2jserver/gameserver/model/zone/L2SpawnZone.java

@@ -20,6 +20,8 @@ import javolution.util.FastList;
 
 
 import com.l2jserver.Config;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.Location;
+import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.util.Rnd;
 import com.l2jserver.util.Rnd;
 
 
 /**
 /**
@@ -68,4 +70,25 @@ public abstract class L2SpawnZone extends L2ZoneType
 		else
 		else
 			return getSpawnLoc();
 			return getSpawnLoc();
 	}
 	}
+	
+	public void oustAllPlayers()
+	{
+		if (_characterList == null)
+			return;
+		if (_characterList.isEmpty())
+			return;
+		for (L2Character character : _characterList.values())
+		{
+			if (character == null)
+				continue;
+			if (character instanceof L2PcInstance)
+			{
+				L2PcInstance player = (L2PcInstance) character;
+				if (player.getKarma() > 0)
+					player.teleToLocation(_chaoticSpawnLocs.get(Rnd.get(_chaoticSpawnLocs.size())), false);
+				else
+					player.teleToLocation(_spawnLocs.get(Rnd.get(_spawnLocs.size())), true);
+			}
+		}
+	}
 }
 }

+ 0 - 144
L2_GameServer/java/com/l2jserver/gameserver/model/zone/type/L2CastleTeleportZone.java

@@ -1,144 +0,0 @@
-/*
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version.
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see <http://www.gnu.org/licenses/>.
- */
-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.util.Rnd;
-
-import javolution.util.FastList;
-
-/**
- * A castle teleporter zone
- * used for Mass Gatekeepers
- *
- * @author  Kerberos
- */
-public class L2CastleTeleportZone extends L2ZoneType
-{
-	private int[] _spawnLoc;
-	private int _castleId;
-	
-	public L2CastleTeleportZone(int id)
-	{
-		super(id);
-		
-		_spawnLoc = new int[5];
-	}
-	
-	@Override
-	public void setParameter(String name, String value)
-	{
-		if (name.equals("castleId"))
-		{
-			_castleId = Integer.parseInt(value);
-		}
-		else if (name.equals("spawnMinX"))
-		{
-			_spawnLoc[0] = Integer.parseInt(value);
-		}
-		else if (name.equals("spawnMaxX"))
-		{
-			_spawnLoc[1] = Integer.parseInt(value);
-		}
-		else if (name.equals("spawnMinY"))
-		{
-			_spawnLoc[2] = Integer.parseInt(value);
-		}
-		else if (name.equals("spawnMaxY"))
-		{
-			_spawnLoc[3] = Integer.parseInt(value);
-		}
-		else if (name.equals("spawnZ"))
-		{
-			_spawnLoc[4] = Integer.parseInt(value);
-		}
-		else
-			super.setParameter(name, value);
-	}
-	
-	@Override
-	protected void onEnter(L2Character character)
-	{
-		character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, true);
-	}
-	
-	@Override
-	protected void onExit(L2Character character)
-	{
-		character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false);
-	}
-	
-	@Override
-	public void onDieInside(L2Character character)
-	{
-	}
-	
-	@Override
-	public void onReviveInside(L2Character character)
-	{
-	}
-	
-	/**
-	 * Returns all players within this zone
-	 * @return
-	 */
-	public FastList<L2PcInstance> getAllPlayers()
-	{
-		FastList<L2PcInstance> players = new FastList<L2PcInstance>();
-		
-		for (L2Character temp : _characterList.values())
-		{
-			if (temp instanceof L2PcInstance)
-				players.add((L2PcInstance) temp);
-		}
-		
-		return players;
-	}
-	
-	public void oustAllPlayers()
-	{
-		if (_characterList == null)
-			return;
-		if (_characterList.isEmpty())
-			return;
-		for (L2Character character : _characterList.values())
-		{
-			if (character == null)
-				continue;
-			if (character instanceof L2PcInstance)
-			{
-				L2PcInstance player = (L2PcInstance) character;
-				if (player.isOnline() == 1)
-					player.teleToLocation(Rnd.get(_spawnLoc[0], _spawnLoc[1]), Rnd.get(_spawnLoc[2], _spawnLoc[3]), _spawnLoc[4]);
-			}
-		}
-	}
-	
-	public int getCastleId()
-	{
-		return _castleId;
-	}
-	
-	/**
-	 * Get the spawn locations
-	 * @return
-	 */
-	public int[] getSpawn()
-	{
-		return _spawnLoc;
-	}
-}