Yes thank you sir for answer i did check afcourse the case 22 cause the 16 is empty
so in the case 22 it just has some check such as
case 22: // Attack (pet attack)
if (target != null && pet != null && pet != target && activeChar != target && !pet.isBetrayed())
{
if (pet.isAttackingDisabled())
if (pet.getAttackEndTime() > GameTimeController.getGameTicks())
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
else
return;
if (pet instanceof L2PetInstance && pet.getLevel() - activeChar.getLevel() > 20)
{
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PET_TOO_HIGH_TO_CONTROL));
return;
}
if (activeChar.isInOlympiadMode() && !activeChar.isOlympiadStart())
{
// if L2PcInstance is in Olympia and the match isn't already start, send a Server->Client packet ActionFailed
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (target.getActingPlayer() != null && pet.getOwner().getSiegeState() > 0 && pet.getOwner().isInsideZone(L2Character.ZONE_SIEGE) && target.getActingPlayer().getSiegeState() == pet.getOwner().getSiegeState() && target.getActingPlayer() != pet.getOwner() && target.getActingPlayer().getSiegeSide() == pet.getOwner().getSiegeSide())
{
//
if (TerritoryWarManager.getInstance().isTWInProgress())
sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_CANNOT_ATTACK_A_MEMBER_OF_THE_SAME_TERRITORY));
else
sendPacket(SystemMessage.getSystemMessage(SystemMessageId.FORCED_ATTACK_IS_IMPOSSIBLE_AGAINST_SIEGE_SIDE_TEMPORARY_ALLIED_MEMBERS));
sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (!activeChar.getAccessLevel().allowPeaceAttack() && activeChar.isInsidePeaceZone(pet, target))
{
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IN_PEACEZONE));
return;
}
if (pet.getNpcId() == 12564 || pet.getNpcId() == 12621)
{
// sin eater and wyvern can't attack with attack button
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (pet.isLockedTarget())
{
pet.getOwner().sendPacket(SystemMessage.getSystemMessage(SystemMessageId.FAILED_CHANGE_TARGET));
return;
}
pet.setTarget(target);
if (target.isAutoAttackable(activeChar) || _ctrlPressed)
{
if (target instanceof L2DoorInstance)
{
if (((L2DoorInstance) target).isAttackable(activeChar) && pet.getNpcId() != L2SiegeSummonInstance.SWOOP_CANNON_ID)
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
}
// siege golem AI doesn't support attacking other than doors at the moment
else if (pet.getNpcId() != L2SiegeSummonInstance.SIEGE_GOLEM_ID)
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
}
else
{
pet.setFollowStatus(false);
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, target);
}
}
break;
those are just check.. exept the first part right?