Index: java/net/sf/l2j/gameserver/clientpackets/ChangeWaitType2.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/ChangeWaitType2.java (revision 1269) +++ java/net/sf/l2j/gameserver/clientpackets/ChangeWaitType2.java (working copy) @@ -18,6 +18,12 @@ */ package net.sf.l2j.gameserver.clientpackets; +import net.sf.l2j.gameserver.instancemanager.CastleManager; +import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.actor.instance.L2StaticObjectInstance; +import net.sf.l2j.gameserver.serverpackets.ChairSit; + /** * This class ... * @@ -38,12 +44,29 @@ @Override protected void runImpl() { - if(getClient() != null && getClient().getActiveChar() != null) + L2PcInstance player = getClient().getActiveChar(); + L2Object target = player.getTarget(); + if(getClient() != null && player != null) { + if (player.getMountType() != 0) //prevent sit/stand if you riding + return; + if (target != null + && !player.isSitting() + && target instanceof L2StaticObjectInstance + && ((L2StaticObjectInstance)target).getType() == 1 + && CastleManager.getInstance().getCastle(target) != null + && player.isInsideRadius(target, L2StaticObjectInstance.INTERACTION_DISTANCE, false, false) + ) + { + ChairSit cs = new ChairSit(player,((L2StaticObjectInstance)target).getStaticObjectId()); + player.sendPacket(cs); + player.sitDown(); + player.broadcastPacket(cs); + } if (_typeStand) - getClient().getActiveChar().standUp(); + player.standUp(); else - getClient().getActiveChar().sitDown(); + player.sitDown(); } } Index: java/net/sf/l2j/gameserver/clientpackets/RequestActionUse.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/RequestActionUse.java (revision 1269) +++ java/net/sf/l2j/gameserver/clientpackets/RequestActionUse.java (working copy) @@ -105,9 +105,7 @@ && !activeChar.isSitting() && target instanceof L2StaticObjectInstance && ((L2StaticObjectInstance)target).getType() == 1 - && activeChar.getClan() != null && CastleManager.getInstance().getCastle(target) != null - && activeChar.isCastleLord(CastleManager.getInstance().getCastle(target).getCastleId()) && activeChar.isInsideRadius(target, L2StaticObjectInstance.INTERACTION_DISTANCE, false, false) ) {