Short answer: 166
Long answer:
This is the information you need:
Code:
/**
* Instantly moves the camera to a specified location;
* @param location The new camera location.
* @param zPos The new cameraHeight, in positions.
* @return The action sender instance, for chaining.
*/
public ActionSender moveCameraToLocation(Location location, int zPos){
return moveCameraToLocation(location, zPos, 0, 100);
}
/**
* Gradually moves the camera to a specified location;
* @param location The new camera location.
* @param zPos The new cameraHeight, in positions.
* @param constantSpeed The constant linear camera movement speed as positions per cycle.
* @param variableSpeed The variable linear camera movement speed as promile of what's left. Max 99, 100 is instant.
* @return The action sender instance, for chaining.
*/
public ActionSender moveCameraToLocation(Location location, int zPos, int constantSpeed, int variableSpeed){
PacketBuilder bldr = new PacketBuilder(166);
bldr.put((byte)(location.getLocalX(player.getLocation())));
bldr.put((byte)(location.getLocalY(player.getLocation())));
bldr.putShort(zPos);
bldr.put((byte)constantSpeed);
bldr.put((byte)variableSpeed);
player.write(bldr.toPacket());
return this;
}
/**
* Instantly turns the camera to look at a specified location;
* @param location The new camera location.
* @param zPos The new cameraHeight, in positions.
* @return The action sender instance, for chaining.
*/
public ActionSender turnCameraToLocation(Location location, int zPos){
return turnCameraToLocation(location, zPos, 0, 100);
}
/**
* Gradually turns the camera to look at a specified location;
* @param location The new camera location.
* @param zPos The new cameraHeight, in positions.
* @param constantSpeed The constant linear camera movement speed as angular units per cycle.
* In the XY angle there are 2048 units in 360 degrees.
* In the Z angle is restricted between 128 and 383, which are the min and max ZAngle.
* @param variableSpeed The variable linear camera movement speed as promile of what's left. Max 99, 100 is instant.
* @return The action sender instance, for chaining.
*/
public ActionSender turnCameraToLocation(Location location, int zPos, int constantSpeed, int variableSpeed){
PacketBuilder bldr = new PacketBuilder(177);
bldr.put((byte)(location.getLocalX(player.getLocation())));
bldr.put((byte)(location.getLocalY(player.getLocation())));
bldr.putShort(zPos);
bldr.put((byte)constantSpeed);
bldr.put((byte)variableSpeed);
player.write(bldr.toPacket());
return this;
}
/**
* Stops all cinematics (including earthquakes)
* @return The action sender instance, for chaining.
*/
public ActionSender stopCinematics(){
player.write(new PacketBuilder(107).toPacket());
return this;
}
With a combination of move and rotate, you can make some nice camera movements.