2
0
Эх сурвалжийг харах

BETA: RequestRestartPoint changes:
* When GM using fixed res he won't be teleported but just revived.
* Cleanup.

Rumen Nikiforov 12 жил өмнө
parent
commit
94659aee15

+ 74 - 45
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestRestartPoint.java

@@ -33,14 +33,13 @@ import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
 
 /**
  * This class ...
- *
  * @version $Revision: 1.7.2.3.2.6 $ $Date: 2005/03/27 15:29:30 $
  */
 public final class RequestRestartPoint extends L2GameClientPacket
 {
 	private static final String _C__7D_REQUESTRESTARTPOINT = "[C] 7D RequestRestartPoint";
 	
-	protected int     _requestedPointType;
+	protected int _requestedPointType;
 	protected boolean _continuation;
 	
 	@Override
@@ -53,7 +52,7 @@ public final class RequestRestartPoint extends L2GameClientPacket
 	{
 		final L2PcInstance activeChar;
 		
-		DeathTask (L2PcInstance _activeChar)
+		DeathTask(L2PcInstance _activeChar)
 		{
 			activeChar = _activeChar;
 		}
@@ -61,7 +60,7 @@ public final class RequestRestartPoint extends L2GameClientPacket
 		@Override
 		public void run()
 		{
-			RequestRestartPoint.this.portPlayer(activeChar);
+			portPlayer(activeChar);
 		}
 	}
 	
@@ -71,35 +70,37 @@ public final class RequestRestartPoint extends L2GameClientPacket
 		L2PcInstance activeChar = getClient().getActiveChar();
 		
 		if (activeChar == null)
+		{
 			return;
+		}
 		
 		if (TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(activeChar.getObjectId()))
+		{
 			return;
-		
-		//SystemMessage sm2 = SystemMessage.getSystemMessage(SystemMessage.S1_S2);
-		//sm2.addString("type:"+requestedPointType);
-		//activeChar.sendPacket(sm2);
+		}
 		
 		if (activeChar.isFakeDeath())
 		{
 			activeChar.stopFakeDeath(true);
 			return;
 		}
-		else if(!activeChar.isDead())
+		else if (!activeChar.isDead())
 		{
-			_log.warning("Living player ["+activeChar.getName()+"] called RestartPointPacket! Ban this player!");
+			_log.warning("Living player [" + activeChar.getName() + "] called RestartPointPacket! Ban this player!");
 			return;
 		}
 		
 		Castle castle = CastleManager.getInstance().getCastle(activeChar.getX(), activeChar.getY(), activeChar.getZ());
-		if (castle != null && castle.getSiege().getIsInProgress())
+		if ((castle != null) && castle.getSiege().getIsInProgress())
 		{
-			if (activeChar.getClan() != null && castle.getSiege().checkIsAttacker(activeChar.getClan()))
+			if ((activeChar.getClan() != null) && castle.getSiege().checkIsAttacker(activeChar.getClan()))
 			{
 				// Schedule respawn delay for attacker
 				ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), castle.getSiege().getAttackerRespawnDelay());
 				if (castle.getSiege().getAttackerRespawnDelay() > 0)
-					activeChar.sendMessage("You will be re-spawned in " + castle.getSiege().getAttackerRespawnDelay()/1000 + " seconds");
+				{
+					activeChar.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
+				}
 				return;
 			}
 		}
@@ -107,7 +108,7 @@ public final class RequestRestartPoint extends L2GameClientPacket
 		portPlayer(activeChar);
 	}
 	
-	protected final void portPlayer(final L2PcInstance activeChar) 
+	protected final void portPlayer(final L2PcInstance activeChar)
 	{
 		Location loc = null;
 		Castle castle = null;
@@ -128,110 +129,138 @@ public final class RequestRestartPoint extends L2GameClientPacket
 		switch (_requestedPointType)
 		{
 			case 1: // to clanhall
-				if (activeChar.getClan() == null || activeChar.getClan().getHideoutId() == 0)
+			{
+				if ((activeChar.getClan() == null) || (activeChar.getClan().getHideoutId() == 0))
 				{
-					_log.warning("Player ["+activeChar.getName()+"] called RestartPointPacket - To Clanhall and he doesn't have Clanhall!");
+					_log.warning("Player [" + activeChar.getName() + "] called RestartPointPacket - To Clanhall and he doesn't have Clanhall!");
 					return;
 				}
 				loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.ClanHall);
 				
-				if (ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan())!= null &&
-						ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()).getFunction(ClanHall.FUNC_RESTORE_EXP) != null)
+				if ((ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()) != null) && (ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()).getFunction(ClanHall.FUNC_RESTORE_EXP) != null))
 				{
 					activeChar.restoreExp(ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()).getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl());
 				}
 				break;
-				
+			}
 			case 2: // to castle
+			{
 				castle = CastleManager.getInstance().getCastle(activeChar);
 				
-				if (castle != null && castle.getSiege().getIsInProgress())
+				if ((castle != null) && castle.getSiege().getIsInProgress())
 				{
 					// Siege in progress
 					if (castle.getSiege().checkIsDefender(activeChar.getClan()))
+					{
 						loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.Castle);
-					// Just in case you lost castle while being dead.. Port to nearest Town.
+					}
 					else if (castle.getSiege().checkIsAttacker(activeChar.getClan()))
+					{
 						loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.Town);
+					}
 					else
 					{
-						_log.warning("Player ["+activeChar.getName()+"] called RestartPointPacket - To Castle and he doesn't have Castle!");
+						_log.warning("Player [" + activeChar.getName() + "] called RestartPointPacket - To Castle and he doesn't have Castle!");
 						return;
 					}
 				}
 				else
 				{
-					if (activeChar.getClan() == null || activeChar.getClan().getCastleId() == 0)
+					if ((activeChar.getClan() == null) || (activeChar.getClan().getCastleId() == 0))
+					{
 						return;
+					}
 					loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.Castle);
 				}
-				if (CastleManager.getInstance().getCastleByOwner(activeChar.getClan())!= null &&
-						CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).getFunction(Castle.FUNC_RESTORE_EXP) != null)
+				if ((CastleManager.getInstance().getCastleByOwner(activeChar.getClan()) != null) && (CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).getFunction(Castle.FUNC_RESTORE_EXP) != null))
 				{
 					activeChar.restoreExp(CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).getFunction(Castle.FUNC_RESTORE_EXP).getLvl());
 				}
 				break;
-				
+			}
 			case 3: // to fortress
-				//fort = FortManager.getInstance().getFort(activeChar);
-				
-				if ((activeChar.getClan() == null || activeChar.getClan().getFortId() == 0) && !isInDefense)
+			{
+				if (((activeChar.getClan() == null) || (activeChar.getClan().getFortId() == 0)) && !isInDefense)
 				{
-					_log.warning("Player ["+activeChar.getName()+"] called RestartPointPacket - To Fortress and he doesn't have Fortress!");
+					_log.warning("Player [" + activeChar.getName() + "] called RestartPointPacket - To Fortress and he doesn't have Fortress!");
 					return;
 				}
 				loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.Fortress);
-				if (FortManager.getInstance().getFortByOwner(activeChar.getClan())!= null &&
-						FortManager.getInstance().getFortByOwner(activeChar.getClan()).getFunction(Fort.FUNC_RESTORE_EXP) != null)
+				if ((FortManager.getInstance().getFortByOwner(activeChar.getClan()) != null) && (FortManager.getInstance().getFortByOwner(activeChar.getClan()).getFunction(Fort.FUNC_RESTORE_EXP) != null))
 				{
 					activeChar.restoreExp(FortManager.getInstance().getFortByOwner(activeChar.getClan()).getFunction(Fort.FUNC_RESTORE_EXP).getLvl());
 				}
 				break;
-				
+			}
 			case 4: // to siege HQ
+			{
 				L2SiegeClan siegeClan = null;
 				castle = CastleManager.getInstance().getCastle(activeChar);
 				fort = FortManager.getInstance().getFort(activeChar);
 				hall = CHSiegeManager.getInstance().getNearbyClanHall(activeChar);
 				L2SiegeFlagInstance flag = TerritoryWarManager.getInstance().getFlagForClan(activeChar.getClan());
 				
-				if (castle != null && castle.getSiege().getIsInProgress())
+				if ((castle != null) && castle.getSiege().getIsInProgress())
+				{
 					siegeClan = castle.getSiege().getAttackerClan(activeChar.getClan());
-				else if (fort != null && fort.getSiege().getIsInProgress())
+				}
+				else if ((fort != null) && fort.getSiege().getIsInProgress())
+				{
 					siegeClan = fort.getSiege().getAttackerClan(activeChar.getClan());
-				else if (hall != null && hall.isInSiege())
+				}
+				else if ((hall != null) && hall.isInSiege())
+				{
 					siegeClan = hall.getSiege().getAttackerClan(activeChar.getClan());
-				if ((siegeClan == null || siegeClan.getFlag().isEmpty()) && flag == null)
+				}
+				if (((siegeClan == null) || siegeClan.getFlag().isEmpty()) && (flag == null))
 				{
 					// Check if clan hall has inner spawns loc
-					if(hall != null && (loc = hall.getSiege().getInnerSpawnLoc(activeChar)) != null)
+					if ((hall != null) && ((loc = hall.getSiege().getInnerSpawnLoc(activeChar)) != null))
+					{
 						break;
+					}
 					
-					_log.warning("Player ["+activeChar.getName()+"] called RestartPointPacket - To Siege HQ and he doesn't have Siege HQ!");
+					_log.warning("Player [" + activeChar.getName() + "] called RestartPointPacket - To Siege HQ and he doesn't have Siege HQ!");
 					return;
 				}
 				loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.SiegeFlag);
 				break;
-				
+			}
 			case 5: // Fixed or Player is a festival participant
+			{
 				if (!activeChar.isGM() && !activeChar.isFestivalParticipant())
 				{
-					_log.warning("Player ["+activeChar.getName()+"] called RestartPointPacket - Fixed and he isn't festival participant!");
+					_log.warning("Player [" + activeChar.getName() + "] called RestartPointPacket - Fixed and he isn't festival participant!");
 					return;
 				}
-				instanceId = activeChar.getInstanceId();
-				loc = new Location(activeChar.getX(), activeChar.getY(), activeChar.getZ()); // spawn them where they died
+				if (activeChar.isGM())
+				{
+					activeChar.doRevive(100.00);
+				}
+				else // Festival Participant
+				{
+					loc = new Location(activeChar);
+				}
 				break;
+			}
 			case 6: // TODO: agathion ress
+			{
 				break;
+			}
 			case 27: // to jail
-				if (!activeChar.isInJail()) return;
+			{
+				if (!activeChar.isInJail())
+				{
+					return;
+				}
 				loc = new Location(-114356, -249645, -2984);
 				break;
-				
+			}
 			default:
+			{
 				loc = MapRegionManager.getInstance().getTeleToLocation(activeChar, MapRegionManager.TeleportWhereType.Town);
 				break;
+			}
 		}
 		
 		// Teleport and revive