All pastes #677161 Raw Edit

Stuff

public text v1 · immutable
#677161 ·published 2007-08-31 19:05 UTC
rendered paste body
Index: /java/net/sf/l2j/gameserver/serverpackets/Ride.java
===================================================================
--- /java/net/sf/l2j/gameserver/serverpackets/Ride.java	(revision 1121)
+++ /java/net/sf/l2j/gameserver/serverpackets/Ride.java	(working copy)
@@ -17,7 +17,13 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 package net.sf.l2j.gameserver.serverpackets;
+import net.sf.l2j.gameserver.model.L2ItemInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.Inventory;
+import net.sf.l2j.gameserver.network.SystemMessageId;
+import javolution.util.FastList;
 
+
 public class Ride extends L2GameServerPacket
 {
     private static final String _S__86_Ride = "[S] 86 Ride";
@@ -28,35 +34,87 @@
     private int _rideType;
     private int _rideClassID;
 
+    /**
+	 * 0x86 Ride dddd 
+	 * @param _
+	 */ 
     public Ride(int id, int action, int rideClassId)
+	{
+		_id = id;
+		_bRide = action; // 1 for mount ; 2 for dismount
+		_rideClassID = rideClassId + 1000000;
+		_rideType = rideClassId == 12621 ? (short) 2 : (short) 1; // 2 for wyvern; 1 for other
+    }
+    public int getMountType()
     {
-        _id = id; // charobjectID
-        _bRide = action; // 1 for mount ; 2 for dismount
-        _rideClassID = rideClassId + 1000000; // npcID
-
-        if (rideClassId == 12526 || //wind strider
-            rideClassId == 12527 || //star strider
-            rideClassId == 12528) //twilight strider
-        {
-            _rideType = 1; // 1 for Strider ; 2 for wyvern
-        }
-        else if (rideClassId == 12621) // wyvern
-        {
-            _rideType = 2; // 1 for Strider ; 2 for wyvern
-        }
+        return _rideType;
     }
-    
     @Override
     public void runImpl()
     {
+    	L2PcInstance cha = getClient().getActiveChar();
+		if(cha == null)
+			return;
+		if(cha.isCursedWeaponEquiped())
+			return;
 
-    }
+		if(_bRide != 1)
+			return;
+		FastList<L2ItemInstance> modified = new FastList<L2ItemInstance>();
+
+		//Check for slots that can have weapons
+		L2ItemInstance wpn = cha.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
+		if(wpn != null)
+		{
+			modified.add(wpn);
+			sendDisarmMessage(wpn, cha);
+		}
+		cha.getInventory().unEquipItemInSlot(Inventory.PAPERDOLL_LHAND);
+
+		wpn = cha.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LRHAND);
+		if(wpn != null)
+		{
+			modified.add(wpn);
+			sendDisarmMessage(wpn, cha);
+		}
+		cha.getInventory().unEquipItemInSlot(Inventory.PAPERDOLL_LRHAND);
+
+		wpn = cha.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
+		if(wpn != null)
+		{
+			modified.add(wpn);
+			sendDisarmMessage(wpn, cha);
+		}
+		cha.getInventory().unEquipItemInSlot(Inventory.PAPERDOLL_RHAND);
+
+		cha.refreshExpertisePenalty();
+		cha.abortAttack();
+		cha.abortCast();
+		cha.broadcastUserInfo();
+
+		InventoryUpdate iu = new InventoryUpdate();
+		for(L2ItemInstance i : modified)
+			iu.addItem(i);
+		cha.sendPacket(iu);
+	}
+        private void sendDisarmMessage(L2ItemInstance wpn, L2PcInstance cha)
+	{
+		if(wpn.getEnchantLevel() > 0)
+		{
+			SystemMessage sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
+			sm.addNumber(wpn.getEnchantLevel());
+			sm.addItemName(wpn.getItemId());
+			cha.sendPacket(sm);
+		}
+		else
+		{
+			SystemMessage sm = new SystemMessage(SystemMessageId.S1_DISARMED);
+			sm.addItemName(wpn.getItemId());
+			cha.sendPacket(sm);
+		}
+	} 
     
-    public int getMountType()
-    {
-        return _rideType;
-    }
-
+    @Override 
     protected final void writeImpl()
     {
 
@@ -70,6 +128,7 @@
     /* (non-Javadoc)
      * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#getType()
      */
+    @Override 
     public String getType()
     {
         return _S__86_Ride;