Index: java/net/sf/l2j/gameserver/model/actor/instance/L2CastleChamberlainInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2CastleChamberlainInstance.java (revision 1269) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2CastleChamberlainInstance.java (working copy) @@ -21,14 +21,19 @@ import java.util.StringTokenizer; import javolution.text.TextBuilder; +import net.sf.l2j.Config; import net.sf.l2j.gameserver.SevenSigns; +import net.sf.l2j.gameserver.TradeController; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.datatables.ClanTable; import net.sf.l2j.gameserver.instancemanager.CastleManager; import net.sf.l2j.gameserver.instancemanager.CastleManorManager; import net.sf.l2j.gameserver.model.L2Clan; +import net.sf.l2j.gameserver.model.L2TradeList; +import net.sf.l2j.gameserver.model.PcInventory; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.serverpackets.ActionFailed; +import net.sf.l2j.gameserver.serverpackets.BuyList; import net.sf.l2j.gameserver.serverpackets.ExShowCropInfo; import net.sf.l2j.gameserver.serverpackets.ExShowCropSetting; import net.sf.l2j.gameserver.serverpackets.ExShowManorDefaultInfo; @@ -215,6 +220,41 @@ player.sendPacket(html); return; } + else if (actualCommand.equalsIgnoreCase("items")) + { + if (val == "") return; + player.tempInvetoryDisable(); + + if (Config.DEBUG) _log.fine("Showing chamberlain buylist"); + + int buy; + { + int castleId = getCastle().getCastleId(); + int circlet = CastleManager.getInstance().getCircletByCastleId(castleId); + PcInventory s = player.getInventory(); + if (s.getItemByItemId(circlet)==null) + { + buy = (Integer.parseInt(val)+1); + } + else + { + buy = (Integer.parseInt(val)+2); + } + } + L2TradeList list = TradeController.getInstance().getBuyList(buy); + if (list != null && list.getNpcId().equals(String.valueOf(getNpcId()))) + { + BuyList bl = new BuyList(list, player.getAdena(), 0); + player.sendPacket(bl); + } + else + { + _log.warning("player: " + player.getName() + + " attempting to buy from chamberlain that don't have buylist!"); + _log.warning("buylist id:" + buy); + } + player.sendPacket(new ActionFailed()); + } else if (actualCommand.equalsIgnoreCase("manage_siege_defender")) { getCastle().getSiege().listRegisterClan(player); Index: java/net/sf/l2j/gameserver/instancemanager/CastleManager.java =================================================================== --- java/net/sf/l2j/gameserver/instancemanager/CastleManager.java (revision 1269) +++ java/net/sf/l2j/gameserver/instancemanager/CastleManager.java (working copy) @@ -52,8 +52,18 @@ // ========================================================= // Constructor + int _castleCirclets[] = new int[10]; public CastleManager() { + _castleCirclets[1] = 6838; + _castleCirclets[2] = 6835; + _castleCirclets[3] = 6839; + _castleCirclets[4] = 6837; + _castleCirclets[5] = 6840; + _castleCirclets[6] = 6834; + _castleCirclets[7] = 6836; + _castleCirclets[8] = 8182; + _castleCirclets[9] = 8183; } // ========================================================= @@ -212,4 +222,18 @@ if(castle.getTaxPercent() > maxTax) castle.setTaxPercent(maxTax); } + + int _castleId = 1; // from this castle + public int getCirclet() + { + return getCircletByCastleId(_castleId); + } + + public int getCircletByCastleId(int castleId) + { + if (castleId > 0 && castleId < 10) + return _castleCirclets[castleId]; + + return 0; + } } \ No newline at end of file