Untitled
By: a guest | Mar 18th, 2010 | Syntax:
None | Size: 1.07 KB | Hits: 81 | Expires: Never
/**
*
* Handles walking packets.
* @author Graham
* @author Luke132
*/
public class Walk implements PacketHandler {
@Override
public void handlePacket(Player player, IoSession session, Packet packet) {
int size = packet.getLength();
if(packet.getId() == 98) {
size -= 14;
}
player.getWalkingQueue().reset();
int steps = (size - 5) / 2;
int[][] path = new int[steps][2];
int firstX = packet.readLEShortA2() - (player.getLocation().getRegionX() - 6) * 8;
int[][] queue = new int[steps][2];
for(int i = 0; i < steps; i++) {
queue[i][0] = packet.readByte();
queue[i][1] = packet.readByteC();
}
boolean runSteps = packet.readByteA() == 1;
int firstY = packet.readLEShortA3() - (player.getLocation().getRegionY() - 6) * 8;
player.getWalkingQueue().addToWalkingQueue(firstX, firstY);
for(int i = 0; i < steps; i++) {
path[i][0] = queue[i][0] + firstX;
path[i][1] = queue[i][1] + firstY;
player.getWalkingQueue().addToWalkingQueue(path[i][0], path[i][1]);
}
player.getWalkingQueue().setIsRunning(runSteps);
}
}