@Override public String onSpellFinished(L2NpcInstance npc, L2PcInstance player, L2Skill skill) { if (npc.getNpcId() == ZAKEN) { int skillId = skill.getId(); if (skillId == 4222) { // npc.teleToLocation(_ai1, _ai2, _ai3); npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); } else if (skillId == 4216) { // int i1 = Rnd.get(15); // player.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(player); L2Character nextTarget = ((L2Attackable) npc).getMostHated(); if (nextTarget != null) npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, nextTarget); } else if (skillId == 4217) { int i0 = 0; // int i1 = Rnd.get(15); // player.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(player); if (c_quest0 != null && _quest0 > 0 && c_quest0 != player && c_quest0.getZ() > (player.getZ() - 100) && c_quest0.getZ() < (player.getZ() + 100)) { if ((((c_quest0.getX() - player.getX()) * (c_quest0.getX() - player.getX())) + ((c_quest0.getY() - player.getY()) * (c_quest0.getY() - player.getY()))) > (250 * 250)) { i0 = 1; } else { i0 = 0; } if (i0 == 0) { // i1 = Rnd.get(15); // c_quest0.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(c_quest0); } } if (c_quest1 != null && _quest0 > 1 && c_quest1 != player && c_quest1.getZ() > (player.getZ() - 100) && c_quest1.getZ() < (player.getZ() + 100)) { if ((((c_quest1.getX() - player.getX()) * (c_quest1.getX() - player.getX())) + ((c_quest1.getY() - player.getY()) * (c_quest1.getY() - player.getY()))) > (250 * 250)) { i0 = 1; } else { i0 = 0; } if (i0 == 0) { // i1 = Rnd.get(15); // c_quest1.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(c_quest1); } } if (c_quest2 != null && _quest0 > 2 && c_quest2 != player && c_quest2.getZ() > (player.getZ() - 100) && c_quest2.getZ() < (player.getZ() + 100)) { if ((((c_quest2.getX() - player.getX()) * (c_quest2.getX() - player.getX())) + ((c_quest2.getY() - player.getY()) * (c_quest2.getY() - player.getY()))) > (250 * 250)) { i0 = 1; } else { i0 = 0; } if (i0 == 0) { // i1 = Rnd.get(15); // c_quest2.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(c_quest2); } } if (c_quest3 != null && _quest0 > 3 && c_quest3 != player && c_quest3.getZ() > (player.getZ() - 100) && c_quest3.getZ() < (player.getZ() + 100)) { if ((((c_quest3.getX() - player.getX()) * (c_quest3.getX() - player.getX())) + ((c_quest3.getY() - player.getY()) * (c_quest3.getY() - player.getY()))) > (250 * 250)) { i0 = 1; } else { i0 = 0; } if (i0 == 0) { // i1 = Rnd.get(15); // c_quest3.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(c_quest3); } } if (c_quest4 != null && _quest0 > 4 && c_quest4 != player && c_quest4.getZ() > (player.getZ() - 100) && c_quest4.getZ() < (player.getZ() + 100)) { if ((((c_quest4.getX() - player.getX()) * (c_quest4.getX() - player.getX())) + ((c_quest4.getY() - player.getY()) * (c_quest4.getY() - player.getY()))) > (250 * 250)) { i0 = 1; } else { i0 = 0; } if (i0 == 0) { // i1 = Rnd.get(15); // c_quest4.teleToLocation(Xcoords[i1] + Rnd.get(650), Ycoords[i1] + Rnd.get(650), // Zcoords[i1]); ((L2Attackable) npc).stopHating(c_quest4); } } L2Character nextTarget = ((L2Attackable) npc).getMostHated(); if (nextTarget != null) npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, nextTarget); } } return super.onSpellFinished(npc, player, skill); }