All pastes #50795 Raw Edit

Untitled

public text v1 · immutable
#50795 ·published 2006-04-23 23:02 UTC
rendered paste body
Index: D:/workspace/GameServer_tmp/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeGuardInstance.java
===================================================================
--- D:/workspace/GameServer_tmp/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeGuardInstance.java	(revision 218)
+++ D:/workspace/GameServer_tmp/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeGuardInstance.java	(working copy)
@@ -77,13 +77,13 @@
 	 */
     public boolean isAutoAttackable(L2Character attacker) 
 	{
-		// Attackable during siege by attacker only
+ // Attackable during siege by all except defenders
 		return (attacker != null 
 		        && attacker instanceof L2PcInstance 
 		        && getCastle() != null
 		        && getCastle().getCastleId() > 0
 		        && getCastle().getSiege().getIsInProgress()
-		        && getCastle().getSiege().checkIsAttacker(((L2PcInstance)attacker).getClan()));
+		        && (!getCastle().getSiege().checkIsDefender(((L2PcInstance)attacker).getClan())) || getCastle().getSiege().checkIsAttacker(((L2PcInstance)attacker).getClan()));
     }
     
     /**
Index: D:/workspace/GameServer_tmp/java/net/sf/l2j/gameserver/model/entity/Siege.java
===================================================================
--- D:/workspace/GameServer_tmp/java/net/sf/l2j/gameserver/model/entity/Siege.java	(revision 218)
+++ D:/workspace/GameServer_tmp/java/net/sf/l2j/gameserver/model/entity/Siege.java	(working copy)
@@ -227,7 +227,6 @@
     private List<L2ControlTowerInstance> _ControlTowers            = new FastList<L2ControlTowerInstance>();;
     private int[][] _ControlTowerSpawnList;
 	private boolean _IsInProgress                                  = false;
-    private boolean _IsNormalSide                                  = true; // true = Atk is Atk, false = Atk is Def
     protected boolean _IsRegistrationOver                          = false;
 	private Calendar _SiegeDate;
 	protected Calendar _SiegeEndDate;
@@ -292,15 +291,20 @@
             }
             else if (getDefenderClans().size() > 0)     // If defender does exist (Pc vs Pc)
             {
-                if (_IsNormalSide)
-                    _IsNormalSide = false;              // Atk is now def
-                else
-                    _IsNormalSide = true;               // Atk is now atk
+            	int ownerId = getCastle().getOwnerId();
+            	
+            	getAttackerClans().addAll(_Defender_Clans);
+            	getDefenderClans().clear();
+            	getAttackerClans().remove(ownerId);
+            	addDefender(ownerId);
 
-                teleportPlayer(Siege.TeleportWhoType.Attacker, MapRegionTable.TeleportWhereType.Town);     // Teleport to the second closest town
-                teleportPlayer(Siege.TeleportWhoType.Spectator, MapRegionTable.TeleportWhereType.Town);    // Teleport to the second closest town
-
-                removeFlags();                      // Removes all flags
+            	//should be teleported to flag ?
+            	//teleportPlayer(Siege.TeleportWhoType.Attacker, MapRegionTable.TeleportWhereType.SiegeFlag);     // Teleport to the flag
+            	//teleportPlayer(Siege.TeleportWhoType.Attacker, MapRegionTable.TeleportWhereType.Town);     // Teleport to the second closest town
+                
+            	//teleportPlayer(Siege.TeleportWhoType.Spectator, MapRegionTable.TeleportWhereType.Town);     // Teleport to the second closest town
+            	//teleportPlayer(Siege.TeleportWhoType.Defender, MapRegionTable.TeleportWhereType.Castle);    // Teleport to the Castle
+            	
                 getCastle().removeUpgrade();        // Remove all castle upgrade
                 getCastle().spawnDoor(true);        // Respawn door to castle but make them weaker (50% hp)
             }
@@ -323,7 +327,6 @@
 	            return;
 		    }
 
-            _IsNormalSide = true;                       // Atk is now atk
             _IsInProgress = true;                       // Flag so that same siege instance cannot be started again 
             loadCastleSiege();                          // Load castle specific data
             loadSiegeClan();							// Load siege clan from db
@@ -1103,8 +1106,7 @@
 
     public final List<L2SiegeClan> getAttackerClans()
    	{
-        if (_IsNormalSide) return _Attacker_Clans;
-        return _Defender_Clans;
+        return _Attacker_Clans;
    	}
 
     public final int getAttackerRespawnDelay() { return (SiegeManager.getInstance().getAttackerRespawnDelay()); }
@@ -1130,8 +1132,7 @@
 
    	public final List<L2SiegeClan> getDefenderClans()
    	{
-        if (_IsNormalSide) return _Defender_Clans;
-        return _Attacker_Clans;
+         return _Defender_Clans;
    	}
 
     public final L2SiegeClan getDefenderWaitingClan(L2Clan clan)