Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 18th, 2010 | Syntax: None | Size: 1.07 KB | Hits: 81 | Expires: Never
Copy text to clipboard
  1. /**
  2.  *
  3.  * Handles walking packets.
  4.  * @author Graham
  5.  * @author Luke132
  6.  */
  7. public class Walk implements PacketHandler {
  8.  
  9.         @Override
  10.         public void handlePacket(Player player, IoSession session, Packet packet) {
  11.                 int size = packet.getLength();
  12.                 if(packet.getId() == 98) {
  13.                         size -= 14;
  14.                 }
  15.                 player.getWalkingQueue().reset();      
  16.                 int steps = (size - 5) / 2;
  17.                 int[][] path = new int[steps][2];      
  18.                 int firstX = packet.readLEShortA2() - (player.getLocation().getRegionX() - 6) * 8;
  19.                 int[][] queue = new int[steps][2];
  20.                 for(int i = 0; i < steps; i++) {
  21.                         queue[i][0] = packet.readByte();
  22.                         queue[i][1] = packet.readByteC();
  23.                 }
  24.                 boolean runSteps = packet.readByteA() == 1;
  25.                 int firstY = packet.readLEShortA3() - (player.getLocation().getRegionY() - 6) * 8;
  26.                 player.getWalkingQueue().addToWalkingQueue(firstX, firstY);
  27.                 for(int i = 0; i < steps; i++) {
  28.                         path[i][0] = queue[i][0] + firstX;
  29.                         path[i][1] = queue[i][1] + firstY;
  30.                         player.getWalkingQueue().addToWalkingQueue(path[i][0], path[i][1]);
  31.                 }
  32.                 player.getWalkingQueue().setIsRunning(runSteps);
  33.         }
  34. }