/** * Handles npc option 1. * * @param player The player. * @param packet The packet. */ private void handleOption1(final Player player, Packet packet) { final int id = packet.getShort() & 0xFFFF; if (id < 0 || id >= Constants.MAX_NPCS) { return; } if (player.getCombatState().isDead()) { return; } player.getActionQueue().clearRemovableActions(); final NPC npc = (NPC) World.getWorld().getNPCs().get(id); player .getActionSender() .sendDebugPacket( packet.getOpcode(), "NpcOpt1", new Object[] {"ID: " + npc.getDefinition().getId(), "Index: " + id}); if (npc != null) { player.setInteractingEntity(InteractionMode.TALK, npc); Action action = new Action(player, 0) { @Override public void execute() { if (player.getCombatState().isDead()) { stop(); return; } if (npc.getDefinition().getInteractionMenu()[0].startsWith("Talk")) { if (npc.getDefinition().getId() == 905) { DialogueManager.openDialogue(player, 222); } else if (npc.getDefinition().getId() == 198) { DialogueManager.openDialogue(player, 258); } else if (npc.getDefinition().getId() == 1597) { DialogueManager.openDialogue(player, 241); } else { } if (npc.getDefinition().getName().toLowerCase().contains("banker")) { DialogueManager.openDialogue(player, 0); } else { String scriptName = "talkTo" + npc.getDefinition().getId(); if (!ScriptManager.getScriptManager() .invokeWithFailTest(scriptName, player, npc)) { // player.getActionSender().sendMessage(npc.getDefinedName() + " does not want // to talk."); } } npc.setInteractingEntity(InteractionMode.TALK, player); } stop(); } @Override public AnimationPolicy getAnimationPolicy() { return AnimationPolicy.RESET_ALL; } @Override public CancelPolicy getCancelPolicy() { return CancelPolicy.ALWAYS; } @Override public StackPolicy getStackPolicy() { return StackPolicy.NEVER; } }; int distance = 1; if (npc.getDefinition().getName().toLowerCase().contains("banker") || npc.getDefinition().getName().toLowerCase().contains("emily") || npc.getDefinition().getName().toLowerCase().contains("zambo")) { distance = 2; } player.addCoordinateAction( player.getWidth(), player.getHeight(), npc.getLocation(), npc.getWidth(), npc.getHeight(), distance, action); } }