瀏覽代碼

Mass GK update to retail. Thx Kerberos

GodKratos 16 年之前
父節點
當前提交
2cddbfe685

+ 0 - 6
L2_GameServer/java/config/siege.properties

@@ -19,14 +19,8 @@ DefenderMaxClans=500
 
 
 #Respawn times in ms 
-#Retail: 30000 
-DefenderRespawn=30000
 AttackerRespawn=0
 
-#Respawn time penalty for loosing all Control tower
-#Retail: 450000
-CTLossPenalty=450000
-
 #Caste Artifacts and Control Towers spawns
 #
 #Control Towers syntax:  NameControlTowerN=x,y,z,npc_id,hp

+ 0 - 8
L2_GameServer/java/net/sf/l2j/gameserver/instancemanager/SiegeManager.java

@@ -59,13 +59,11 @@ public class SiegeManager
     private int _attackerMaxClans                              = 500; // Max number of clans
     private int _attackerRespawnDelay                          = 0; // Time in ms. Changeable in siege.config
     private int _defenderMaxClans                              = 500; // Max number of clans
-    private int _defenderRespawnDelay                          = 30000; // Time in ms. Changeable in siege.config
 
     // Siege settings
     private FastMap<Integer,FastList<SiegeSpawn>>  _artefactSpawnList;
     private FastMap<Integer,FastList<SiegeSpawn>>  _controlTowerSpawnList;
 
-    private int _controlTowerLosePenalty                         = 60000; // Time in ms. Changeable in siege.config
     private int _flagMaxCount                                   = 1; // Changeable in siege.config
     private int _siegeClanMinLevel                             = 5; // Changeable in siege.config
     private int _siegeLength                                    = 120; // Time in minute. Changeable in siege.config
@@ -174,9 +172,7 @@ public class SiegeManager
             // Siege setting
             _attackerMaxClans = Integer.decode(siegeSettings.getProperty("AttackerMaxClans", "500"));
             _attackerRespawnDelay = Integer.decode(siegeSettings.getProperty("AttackerRespawn", "0"));
-            _controlTowerLosePenalty = Integer.decode(siegeSettings.getProperty("CTLossPenalty", "60000"));
             _defenderMaxClans = Integer.decode(siegeSettings.getProperty("DefenderMaxClans", "500"));
-            _defenderRespawnDelay = Integer.decode(siegeSettings.getProperty("DefenderRespawn", "30000"));
             _flagMaxCount = Integer.decode(siegeSettings.getProperty("MaxFlags", "1"));
             _siegeClanMinLevel = Integer.decode(siegeSettings.getProperty("SiegeClanMinLevel", "5"));
             _siegeLength = Integer.decode(siegeSettings.getProperty("SiegeLength", "120"));
@@ -284,12 +280,8 @@ public class SiegeManager
 
     public final int getAttackerRespawnDelay() { return _attackerRespawnDelay; }
 
-    public final int getControlTowerLosePenalty() { return _controlTowerLosePenalty; }
-
     public final int getDefenderMaxClans() { return _defenderMaxClans; }
 
-    public final int getDefenderRespawnDelay() { return (_defenderRespawnDelay); }
-
     public final int getFlagMaxCount() { return _flagMaxCount; }
 
     public final Siege getSiege(L2Object activeObject) { return getSiege(activeObject.getX(), activeObject.getY(), activeObject.getZ()); }

+ 20 - 43
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2CastleTeleporterInstance.java

@@ -19,20 +19,13 @@ package net.sf.l2j.gameserver.model.actor.instance;
  *
  */
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
 import java.util.Collection;
-import java.util.Properties;
 import java.util.StringTokenizer;
 
-import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.ThreadPoolManager;
 import net.sf.l2j.gameserver.ai.CtrlIntention;
 import net.sf.l2j.gameserver.datatables.MapRegionTable;
-import net.sf.l2j.gameserver.instancemanager.CastleManager;
 import net.sf.l2j.gameserver.model.L2World;
-import net.sf.l2j.gameserver.model.entity.Castle;
 import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
 import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
 import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -60,7 +53,18 @@ public final class L2CastleTeleporterInstance extends L2FolkInstance
 
 		if (actualCommand.equalsIgnoreCase("tele"))
 		{
-			doTeleport(player);
+			int delay;
+			if (!getTask())
+			{
+				if (getCastle().getSiege().getIsInProgress() && getCastle().getSiege().getControlTowerCount() == 0)
+					delay = 480000;
+				else
+					delay = 30000;
+				
+				setTask(true);
+				ThreadPoolManager.getInstance().scheduleGeneral(new oustAllPlayers(), delay );
+			}
+			
 			String filename = "data/html/castleteleporter/MassGK-1.htm";
 			NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 			html.setFile(filename);
@@ -74,50 +78,23 @@ public final class L2CastleTeleporterInstance extends L2FolkInstance
 	@Override
 	public void showChatWindow(L2PcInstance player)
 	{
-		String filename = "data/html/castleteleporter/MassGK-1.htm";
+		String filename;
 		if (!getTask())
 		{
-			filename = "data/html/castleteleporter/MassGK.htm";
+			if (getCastle().getSiege().getIsInProgress() && getCastle().getSiege().getControlTowerCount() == 0)
+				filename = "data/html/castleteleporter/MassGK-2.htm";
+			else
+				filename = "data/html/castleteleporter/MassGK.htm";
 		}
+		else
+			filename = "data/html/castleteleporter/MassGK-1.htm";
+		
 		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 		html.setFile(filename);
 		html.replace("%objectId%", String.valueOf(getObjectId()));
 		player.sendPacket(html);
 	}
 
-	private void doTeleport(L2PcInstance player)
-	{
-		InputStream is = null;
-		try {
-			is = new FileInputStream(new File(Config.SIEGE_CONFIGURATION_FILE));
-			Properties siegeSettings = new Properties();
-			siegeSettings.load(is);
-
-			long delay = Integer.decode(siegeSettings.getProperty("DefenderRespawn", "30000"));
-
-			Castle castle = CastleManager.getInstance().getCastle(player.getX(), player.getY(), player.getZ());
-			if (castle != null && castle.getSiege().getIsInProgress())
-				delay = castle.getSiege().getDefenderRespawnDelay();
-			if (delay > 480000)
-				delay = 480000;
-			setTask(true);
-			ThreadPoolManager.getInstance().scheduleGeneral(new oustAllPlayers(), delay );
-		}
-		catch (Exception e)
-		{
-            e.printStackTrace();
-        }
-		finally
-		{
-			try
-			{
-				is.close();
-			}
-			catch (Exception e)
-			{
-			}
-		}
-	}
 	void oustAllPlayers()
 	{
 		getCastle().oustAllPlayers();

+ 5 - 12
L2_GameServer/java/net/sf/l2j/gameserver/model/entity/Siege.java

@@ -241,7 +241,6 @@ public class Siege
 	
 	private List<L2SiegeClan> _defenderClans = new FastList<L2SiegeClan>(); // L2SiegeClan
 	private List<L2SiegeClan> _defenderWaitingClans = new FastList<L2SiegeClan>(); // L2SiegeClan
-	private int _defenderRespawnDelayPenalty;
 	
 	// Castle setting
 	private List<L2ControlTowerInstance> _controlTowers = new FastList<L2ControlTowerInstance>();
@@ -451,7 +450,6 @@ public class Siege
 			getCastle().spawnDoor(); // Spawn door
 			spawnSiegeGuard(); // Spawn siege guard
 			MercTicketManager.getInstance().deleteTickets(getCastle().getCastleId()); // remove the tickets from the ground
-			_defenderRespawnDelayPenalty = 0; // Reset respawn delay
 			getCastle().getZone().updateZoneStatusForCharactersInside();
 			
 			// Schedule a task to prepare auto siege end
@@ -740,11 +738,6 @@ public class Siege
 		_controlTowerCount--;
 		if (_controlTowerCount < 0)
 			_controlTowerCount = 0;
-		if (_controlTowerMaxCount > 0)
-			_defenderRespawnDelayPenalty = (_controlTowerMaxCount - _controlTowerCount) / _controlTowerCount * SiegeManager.getInstance().getControlTowerLosePenalty(); // Add respawn penalty to defenders for each control tower lose
-		else
-			_defenderRespawnDelayPenalty = 0;
-		
 	}
 	
 	/** Remove the flag that was killed */
@@ -1420,11 +1413,6 @@ public class Siege
 		return _defenderWaitingClans;
 	}
 	
-	public final int getDefenderRespawnDelay()
-	{
-		return (SiegeManager.getInstance().getDefenderRespawnDelay() + _defenderRespawnDelayPenalty);
-	}
-	
 	public final boolean getIsInProgress()
 	{
 		return _isInProgress;
@@ -1476,4 +1464,9 @@ public class Siege
 		}
 		return _siegeGuardManager;
 	}
+	
+	public int getControlTowerCount()
+	{
+		return _controlTowerCount;
+	}
 }