public static void Handle(ReceivablePacket packet) { switch (packet.ReadShort()) { case 1: AccountAuthenticationResult.Process(packet); break; case 2: CharacterSelectionInfoResult.Process(packet); break; case 3: CharacterCreationResult.Process(packet); break; case 4: CharacterDeletionResult.Process(packet); break; case 5: PlayerOptionsInformation.Process(packet); break; case 6: PlayerInformation.Process(packet); break; case 7: NpcInformation.Process(packet); break; case 8: DeleteObject.Process(packet); break; case 9: Logout.Process(packet); break; case 10: LocationUpdate.Process(packet); break; case 11: AnimatorUpdate.Process(packet); break; case 12: ChatResult.Process(packet); break; case 13: PlayerInventoryUpdate.Process(packet); break; } }
public AnimatorUpdateRequest(GameClient client, ReceivablePacket packet) { // Read data. float velocityX = packet.ReadFloat(); float velocityZ = packet.ReadFloat(); bool triggerJump = packet.ReadByte() == 1; bool isInWater = packet.ReadByte() == 1; bool isGrounded = packet.ReadByte() == 1; // Set last known world object animations. Player player = client.GetActiveChar(); player.SetAnimations(new AnimationHolder(velocityX, velocityZ, triggerJump, isInWater, isGrounded)); // Broadcast movement. AnimatorUpdate animatorUpdate = new AnimatorUpdate(player.GetObjectId(), velocityX, velocityZ, triggerJump, isInWater, isGrounded); foreach (Player nearby in WorldManager.GetVisiblePlayers(player)) { nearby.ChannelSend(animatorUpdate); } }