diff --git a/L2J_DataPack/dist/game/data/scripts/handlers/actionhandlers/L2NpcAction.java b/L2J_DataPack/dist/game/data/scripts/handlers/actionhandlers/L2NpcAction.java index e486bdada61a0a0d781d8742697138e93488708c..94fe9c43330781eeaedeacf39bb64c9d87f14d1a 100644 --- a/L2J_DataPack/dist/game/data/scripts/handlers/actionhandlers/L2NpcAction.java +++ b/L2J_DataPack/dist/game/data/scripts/handlers/actionhandlers/L2NpcAction.java @@ -60,55 +60,55 @@ public class L2NpcAction implements IActionHandler @Override public boolean action(L2PcInstance activeChar, L2Object target, boolean interact) { - if (!((L2Npc) target).canTarget(activeChar)) + final L2Npc npc = (L2Npc) target; + if (!npc.canTarget(activeChar)) { return false; } - activeChar.setLastFolkNPC((L2Npc) target); + activeChar.setLastFolkNPC(npc); // Check if the L2PcInstance already target the L2Npc - if (target != activeChar.getTarget()) + if (npc != activeChar.getTarget()) { // Set the target of the L2PcInstance activeChar - activeChar.setTarget(target); + activeChar.setTarget(npc); // Check if the activeChar is attackable (without a forced attack) - if (target.isAutoAttackable(activeChar)) + if (npc.isAutoAttackable(activeChar)) { - ((L2Npc) target).getAI(); // wake up ai + npc.getAI(); // wake up ai } } else if (interact) { // Check if the activeChar is attackable (without a forced attack) and isn't dead - if (target.isAutoAttackable(activeChar) && !((L2Npc) target).isAlikeDead()) + if (npc.isAutoAttackable(activeChar) && !npc.isAlikeDead()) { - if (GeoData.getInstance().canSeeTarget(activeChar, target)) + if (GeoData.getInstance().canSeeTarget(activeChar, npc)) { - activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, npc); } else { - final Location destination = GeoData.getInstance().moveCheck(activeChar, target); + final Location destination = GeoData.getInstance().moveCheck(activeChar, npc); activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); } } - else if (!target.isAutoAttackable(activeChar)) + else if (!npc.isAutoAttackable(activeChar)) { - if (GeoData.getInstance().canSeeTarget(activeChar, target)) + if (!GeoData.getInstance().canSeeTarget(activeChar, npc)) { - final Location destination = GeoData.getInstance().moveCheck(activeChar, target); + final Location destination = GeoData.getInstance().moveCheck(activeChar, npc); activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination); return true; } - // Calculate the distance between the L2PcInstance and the L2Npc - if (!((L2Npc) target).canInteract(activeChar)) + // Verifies if the NPC can interact with the player. + if (!npc.canInteract(activeChar)) { // Notify the L2PcInstance AI with AI_INTENTION_INTERACT - activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, target); + activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, npc); } else { - final L2Npc npc = (L2Npc) target; // Turn NPC to the player. activeChar.sendPacket(new MoveToPawn(activeChar, npc, 100)); if (npc.hasRandomAnimation()) @@ -118,13 +118,13 @@ public class L2NpcAction implements IActionHandler // Open a chat window on client with the text of the L2Npc if (npc.isEventMob()) { - L2Event.showEventHtml(activeChar, String.valueOf(target.getObjectId())); + L2Event.showEventHtml(activeChar, String.valueOf(npc.getObjectId())); } else { if (npc.hasListener(EventType.ON_NPC_QUEST_START)) { - activeChar.setLastQuestNpcObject(target.getObjectId()); + activeChar.setLastQuestNpcObject(npc.getObjectId()); } if (npc.hasListener(EventType.ON_NPC_FIRST_TALK)) {