/* (non-Javadoc) * @see net.sf.l2j.gameserver.clientpackets.ClientBasePacket#getType() */ private void UseSkill(int skillId, int skill_level, L2Object target) { L2PcInstance activeChar = getClient().getActiveChar(); L2Summon pet = activeChar.getPet(); if (activeChar.getPrivateStoreType() != 0) { activeChar.sendMessage("Cannot use skills while trading"); return; } if (target != null && pet != null && pet != target) { L2Skill skill; Map _skills = pet.getTemplate().getSkills(); if (_skills == null) { activeChar.sendMessage("Not yet implemented."); return; } if(_skills.size() == 0) { activeChar.sendPacket(new SystemMessage(SystemMessage.SKILL_NOT_AVAILABLE)); return; } skill = _skills.get(skillId); if(skill == null) { return; } // override the default skill level for the template if level > 0 if (level > 0) skill = SkillTable.getInstance().getInfo(skillId,skill_level); if(pet.getCurrentMp() < skill.getMpConsume()) { activeChar.sendPacket(new SystemMessage(SystemMessage.NOT_ENOUGH_MP)); return; } if ( activeChar.getAccessLevel() < Config.GM_PEACEATTACK && activeChar.isInsidePeaceZone(activeChar.getPet(), target) ) { activeChar.sendPacket(new SystemMessage(SystemMessage.TARGET_IN_PEACEZONE)); return; } pet.setTarget(target); pet.useMagic(skill); } } private void UseSkill(int skillId, L2Object target) { UseSkill(skillId, 0, target); } private void UseSkill(int skillId) { L2PcInstance activeChar = getClient().getActiveChar(); L2Object target = activeChar.getTarget(); if (activeChar == null || target == null) return; if (activeChar.getPrivateStoreType() != 0) { activeChar.sendMessage("Cannot use skills while trading"); return; } if (target != null && activeChar != target) { if (target.isAutoAttackable(activeChar) || _ctrlPressed) { UseSkill(skillId, target); } } }