All pastes #747821 Raw Edit

Someone

public text v1 · immutable
·published 2007-10-24 11:43 UTC
rendered paste body
Index: java/net/sf/l2j/gameserver/clientpackets/ChangeWaitType2.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/ChangeWaitType2.java	(revision 1240)
+++ 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,31 @@
 	@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
+	        		&& player.getClan() != null
+	        		&& CastleManager.getInstance().getCastle(target) != null
+	        		&& player.isCastleLord(CastleManager.getInstance().getCastle(target).getCastleId())
+	        		&& 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();
 	    }
 	}