/** * Method doSupportMagic. * * @param npc NpcInstance * @param player Player * @param servitor boolean */ public static void doSupportMagic(NpcInstance npc, Player player, boolean servitor) { if (player.isCursedWeaponEquipped()) { return; } int lvl = player.getLevel(); if (servitor && (player.getSummonList().getFirstServitor() == null)) { show("default/newbie_nosupport_servitor.htm", player, npc); return; } if (lvl < minSupLvl) { show("default/newbie_nosupport_min.htm", player, npc); return; } if (lvl > maxSupLvl) { show("default/newbie_nosupport_max.htm", player, npc); return; } List<Creature> target = new ArrayList<>(); if (servitor) { for (Summon summon : player.getSummonList()) { target.add(summon); for (int[] buff : _summonBuff) { if ((lvl >= buff[0]) && (lvl <= buff[1])) { npc.broadcastPacket(new MagicSkillUse(npc, summon, buff[2], buff[3], 0, 0)); npc.callSkill(SkillTable.getInstance().getInfo(buff[2], buff[3]), target, true); } } } } else { target.add(player); if (!player.isMageClass() || (player.getTemplate().getRace() == Race.orc)) { for (int[] buff : _warrBuff) { if ((lvl >= buff[0]) && (lvl <= buff[1])) { npc.broadcastPacket(new MagicSkillUse(npc, player, buff[2], buff[3], 0, 0)); npc.callSkill(SkillTable.getInstance().getInfo(buff[2], buff[3]), target, true); } } } else { for (int[] buff : _mageBuff) { if ((lvl >= buff[0]) && (lvl <= buff[1])) { npc.broadcastPacket(new MagicSkillUse(npc, player, buff[2], buff[3], 0, 0)); npc.callSkill(SkillTable.getInstance().getInfo(buff[2], buff[3]), target, true); } } } } }