Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. private void handleSecondClickPacket(Player player, int packet) {
  2. int index = player.inStream.readUnsignedWordBigEndianA();
  3. NPC npc = (NPC) World.getWorld().getNPCs().get(index);
  4. int distance = 1;
  5. if (player.inDebugMode()) {
  6. System.out.println(String.format("[NpcInteractionPacketHandler second option] - npc: %d ", npc.getDefinition().getId()));
  7. }
  8. if (npc == null) {
  9. return;
  10. }
  11. // distance for certain npcs.. like bankers can be done over a bank
  12. // booth
  13. switch (npc.npcId) {
  14. case 394:
  15. distance = 3;
  16. break;
  17. }
  18.  
  19. // if within distance, handle
  20. if (player.goodDistance(npc.getX(), npc.getY(), player.getX(), player.getY(), distance)) {
  21. player.face(player, new Position(npc.getX(), npc.getY()));
  22. npc.face(npc, new Position(player.getX(), player.getY()));
  23. NpcInteraction.secondOption(player, npc);
  24. // PI's terrible design
  25. } else {
  26. // we're not in distance. run towards then interact when close
  27. // enough.
  28. Server.getTaskScheduler().schedule(new ScheduledTask(1) {
  29.  
  30. @Override
  31. public void execute() {
  32. if (npc != null) {
  33. if (player.goodDistance(player.getX(), player.getY(), npc.getX(), npc.getY(), 1)) {
  34. player.face(player, new Position(npc.getX(), npc.getY()));
  35. npc.face(npc, new Position(player.getX(), player.getY()));
  36. NpcInteraction.secondOption(player, npc);
  37. stop();
  38. }
  39. }
  40. }
  41.  
  42. @Override
  43. public void onStop() {
  44. }
  45. });
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement