public synchronized boolean useUserCommand(int id, L2PcInstance activeChar)
{
if(id != COMMAND_IDS[0])
return false;
L2Summon pet = activeChar.getPet();
if(pet != null && pet.isMountable() && !activeChar.isMounted())
{
if(activeChar.isDead())
{
// A strider cannot be ridden when player is dead.
SystemMessage msg = new SystemMessage(SystemMessageId.STRIDER_CANT_BE_RIDDEN_WHILE_DEAD);
activeChar.sendPacket(msg);
msg = null;
}
else if(pet.isDead())
{
// A dead strider cannot be ridden.
SystemMessage msg = new SystemMessage(SystemMessageId.DEAD_STRIDER_CANT_BE_RIDDEN);
activeChar.sendPacket(msg);
msg = null;
}
else if(pet.isInCombat())
{
// A strider in battle cannot be ridden.
SystemMessage msg = new SystemMessage(SystemMessageId.STRIDER_IN_BATLLE_CANT_BE_RIDDEN);
activeChar.sendPacket(msg);
msg = null;
}
else if(activeChar.isInCombat())
{
// A pet cannot be ridden while player is in battle.
SystemMessage msg = new SystemMessage(SystemMessageId.STRIDER_CANT_BE_RIDDEN_WHILE_IN_BATTLE);
activeChar.sendPacket(msg);
msg = null;
}
else if(!activeChar.isInsideRadius(pet, 60, true, false))
{
activeChar.sendMessage("Too far away from strider to mount.");
return false;
}
else if(!GeoData.getInstance().canSeeTarget(activeChar, pet))
{
SystemMessage msg = new SystemMessage(SystemMessageId.CANT_SEE_TARGET);
activeChar.sendPacket(msg);
return false;
}
else if(activeChar.isSitting() || activeChar.isMoving())
{
// A strider can be ridden only when player is standing.
SystemMessage msg = new SystemMessage(SystemMessageId.STRIDER_CAN_BE_RIDDEN_ONLY_WHILE_STANDING);
activeChar.sendPacket(msg);
msg = null;
}
else if(!pet.isDead() && !activeChar.isMounted())
{
if(!activeChar.disarmWeapons())
return false;
Ride mount = new Ride(activeChar.getObjectId(), Ride.ACTION_MOUNT, pet.getTemplate().npcId);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, mount, 810000/*900*/);
activeChar.setMountType(mount.getMountType());
activeChar.setMountObjectID(pet.getControlItemId());
pet.unSummon(activeChar);
mount = null;
if(activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) != null || activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LRHAND) != null)
{
if(activeChar.setMountType(0))