Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void handleSecondClickPacket(Player player, int packet) {
- int index = player.inStream.readUnsignedWordBigEndianA();
- NPC npc = (NPC) World.getWorld().getNPCs().get(index);
- int distance = 1;
- if (player.inDebugMode()) {
- System.out.println(String.format("[NpcInteractionPacketHandler second option] - npc: %d ", npc.getDefinition().getId()));
- }
- if (npc == null) {
- return;
- }
- // distance for certain npcs.. like bankers can be done over a bank
- // booth
- switch (npc.npcId) {
- case 394:
- distance = 3;
- break;
- }
- // if within distance, handle
- if (player.goodDistance(npc.getX(), npc.getY(), player.getX(), player.getY(), distance)) {
- player.face(player, new Position(npc.getX(), npc.getY()));
- npc.face(npc, new Position(player.getX(), player.getY()));
- NpcInteraction.secondOption(player, npc);
- // PI's terrible design
- } else {
- // we're not in distance. run towards then interact when close
- // enough.
- Server.getTaskScheduler().schedule(new ScheduledTask(1) {
- @Override
- public void execute() {
- if (npc != null) {
- if (player.goodDistance(player.getX(), player.getY(), npc.getX(), npc.getY(), 1)) {
- player.face(player, new Position(npc.getX(), npc.getY()));
- npc.face(npc, new Position(player.getX(), player.getY()));
- NpcInteraction.secondOption(player, npc);
- stop();
- }
- }
- }
- @Override
- public void onStop() {
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement