rendered paste bodyIndex: 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);+ }+ }+ } } /**