All pastes #1298091 Raw Edit

castle lords crown

public diff v1 · immutable
#1298091 ·published 2009-01-02 06:01 UTC
rendered paste body
Index: java/net/sf/l2j/gameserver/model/entity/Castle.java===================================================================--- java/net/sf/l2j/gameserver/model/entity/Castle.java	(revision 2713)+++ java/net/sf/l2j/gameserver/model/entity/Castle.java	(working copy)@@ -71,6 +71,7 @@ 	private List<L2DoorInstance> _doors = new FastList<L2DoorInstance>(); 	private List<String> _doorDefault = new FastList<String>(); 	private String _name = "";+	private int _oldOwnerId = 0; 	private int _ownerId = 0; 	private Siege _siege = null; 	private Calendar _siegeDate;@@ -279,6 +280,18 @@ 	// ========================================================= 	// Method - Public 	+	// Used to store/retrieve the old owner of a castle, for removing the lord's crown+	public void setOldOwnerId(int oldOwner)+	{+		_oldOwnerId = oldOwner;+	}+	+	public int getOldOwnerId()+	{+		return _oldOwnerId;+	}+	+	 	/** Return function with id */ 	public CastleFunction getFunction(int type) 	{Index: java/net/sf/l2j/gameserver/model/entity/Siege.java===================================================================--- java/net/sf/l2j/gameserver/model/entity/Siege.java	(revision 2713)+++ java/net/sf/l2j/gameserver/model/entity/Siege.java	(working copy)@@ -263,6 +263,33 @@ 		startAutoTask(); 	} 	+	private void giveAndTakeLordsCrown()+	{+		L2PcInstance leader = ClanTable.getInstance().getClan(getCastle().getOwnerId()).getLeader().getPlayerInstance();+		if (getCastle().getOldOwnerId() > 0)+		{+			L2PcInstance oldLeader = ClanTable.getInstance().getClan(getCastle().getOldOwnerId()).getLeader().getPlayerInstance();+		+			if (oldLeader != null)+			{+				oldLeader.getInventory().destroyItemByItemId("Taking Lord's Crown", 6841, 1, oldLeader, oldLeader);+			}+		}+		if (leader != null)+		{+			if (leader.getInventory().validateCapacity(1))+			{+				leader.getInventory().addItem("Giving Lord's Crown", 6841, 1, leader, leader);+			}+			else+			{+				leader.sendMessage("Your inventory is too full.");+				leader.sendMessage("Please remove some items and relog to get The Lord's Crown");+			}+		}+		getCastle().setOldOwnerId(0);+	}+	 	// ========================================================= 	// Siege phases 	/**@@ -275,7 +302,13 @@ 			announceToPlayer("The siege of " + getCastle().getName() + " has finished!", false); 			 			if (getCastle().getOwnerId() <= 0)+			{ 				announceToPlayer("The siege of " + getCastle().getName() + " has ended in a draw.", false);+			}+			else+			{+				giveAndTakeLordsCrown();+			} 			 			removeFlags(); // Removes all flags. Note: Remove flag before teleporting players 			teleportPlayer(Siege.TeleportWhoType.Attacker, MapRegionTable.TeleportWhereType.Town); // Teleport to the second closest town@@ -437,6 +470,7 @@ 				saveCastleSiege(); 				return; 			}+			getCastle().setOldOwnerId(getCastle().getOwnerId()); 			 			_isNormalSide = true; // Atk is now atk 			_isInProgress = true; // Flag so that same siege instance cannot be started againIndex: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java===================================================================--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 2713)+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)@@ -368,6 +368,32 @@         RegionBBSManager.getInstance().changeCommunityBoard();                  TvTEvent.onLogin(activeChar);+        +        if (activeChar.isClanLeader())+        {+        	if (activeChar.getClan().getHasCastle() > 0)+        	{+        		if (activeChar.getInventory().validateCapacity(1))+        		{+        			if (activeChar.getInventory().getItemByItemId(6841) == null)+        			{+        				activeChar.getInventory().addItem("Giving Lord's Crown", 6841, 1, activeChar, activeChar);+        			}+        		}+        		else+        		{+        			activeChar.sendMessage("Your inventory is too full.");+    				activeChar.sendMessage("Please remove some items and relog to get The Lord's Crown");+        		}+        	}+        	else+        	{+        		if (activeChar.getInventory().getItemByItemId(6841) != null)+        		{+        			activeChar.getInventory().destroyItem("Taking Lord's Crown", 6841, 1, activeChar, activeChar);+        		}+        	}+        }     }      /**