public static void HandleMoveUpdate(ulong guid, ObjectMovementValues movementValues, Vector4 vector) { PacketWriter moveUpdate = new PacketWriter(ServerMessage.MoveUpdate); BitPack BitPack = new BitPack(moveUpdate, guid); moveUpdate.WriteFloat(vector.Y); moveUpdate.WriteFloat(vector.Z); moveUpdate.WriteFloat(vector.X); BitPack.WriteGuidMask(5); BitPack.Write(0); BitPack.WriteGuidMask(3); BitPack.Write(0); BitPack.Write(1); BitPack.Write(!movementValues.HasMovementFlags2); BitPack.WriteGuidMask(0); BitPack.Write(1); BitPack.Write(!movementValues.HasRotation); BitPack.WriteGuidMask(7); BitPack.Write(movementValues.IsTransport); BitPack.Write(0); BitPack.Write(movementValues.Time == 0); BitPack.Write(!movementValues.HasMovementFlags); BitPack.WriteGuidMask(2); BitPack.Write(1); BitPack.Write(movementValues.IsFallingOrJumping); BitPack.WriteGuidMask(1, 6); BitPack.Write<uint>(0, 22); BitPack.WriteGuidMask(4); if (movementValues.IsFallingOrJumping) BitPack.Write(movementValues.HasJumpData); if (movementValues.HasMovementFlags) BitPack.Write((uint)movementValues.MovementFlags, 30); if (movementValues.HasMovementFlags2) BitPack.Write((uint)movementValues.MovementFlags2, 13); BitPack.Flush(); if (movementValues.IsFallingOrJumping) { if (movementValues.HasJumpData) { moveUpdate.WriteFloat(movementValues.CurrentSpeed); moveUpdate.WriteFloat(movementValues.Sin); moveUpdate.WriteFloat(movementValues.Cos); } moveUpdate.WriteFloat(movementValues.JumpVelocity); moveUpdate.WriteUInt32(movementValues.FallTime); } BitPack.WriteGuidBytes(1, 0, 4, 5, 7, 2); if (movementValues.Time != 0) moveUpdate.WriteUInt32(movementValues.Time); if (movementValues.HasRotation) moveUpdate.WriteFloat(vector.O); BitPack.WriteGuidBytes(6, 3); var session = WorldMgr.GetSession(guid); if (session != null) { Character pChar = session.Character; ObjectMgr.SetPosition(ref pChar, vector, false); WorldMgr.SendToInRangeCharacter(pChar, moveUpdate); } }
public static void HandleMoveSetFly(ref PacketReader packet, WorldClass session) { ObjectMovementValues movementValues = new ObjectMovementValues(); BitUnpack BitUnpack = new BitUnpack(packet); var guidMask = new bool[8]; var guidBytes = new byte[8]; Vector4 vector = new Vector4() { Y = packet.Read<float>(), X = packet.Read<float>(), Z = packet.Read<float>(), }; movementValues.IsFallingOrJumping = BitUnpack.GetBit(); guidMask[0] = BitUnpack.GetBit(); movementValues.HasMovementFlags2 = !BitUnpack.GetBit(); guidMask[6] = BitUnpack.GetBit(); movementValues.HasMovementFlags = !BitUnpack.GetBit(); var Unknown = BitUnpack.GetBit(); guidMask[2] = BitUnpack.GetBit(); movementValues.HasRotation = !BitUnpack.GetBit(); var Unknown2 = !BitUnpack.GetBit(); var HasSplineElevation = !BitUnpack.GetBit(); movementValues.IsTransport = BitUnpack.GetBit(); guidMask[1] = BitUnpack.GetBit(); guidMask[5] = BitUnpack.GetBit(); var HasPitch = !BitUnpack.GetBit(); var Unknown4 = BitUnpack.GetBit(); guidMask[4] = BitUnpack.GetBit(); var HasTime = !BitUnpack.GetBit(); var counter = BitUnpack.GetBits<uint>(22); var Unknown3 = BitUnpack.GetBit(); guidMask[7] = BitUnpack.GetBit(); guidMask[3] = BitUnpack.GetBit(); if (movementValues.IsFallingOrJumping) movementValues.HasJumpData = BitUnpack.GetBit(); if (movementValues.HasMovementFlags) movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30); if (movementValues.HasMovementFlags2) movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13); for (int i = 0; i < counter; i++) packet.Read<uint>(); if (guidMask[4]) guidBytes[4] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[2]) guidBytes[2] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[6]) guidBytes[6] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[3]) guidBytes[3] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[0]) guidBytes[0] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[7]) guidBytes[7] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[1]) guidBytes[1] = (byte)(packet.Read<byte>() ^ 1); if (guidMask[5]) guidBytes[5] = (byte)(packet.Read<byte>() ^ 1); if (Unknown2) packet.Read<uint>(); if (movementValues.IsFallingOrJumping) { if (movementValues.HasJumpData) { movementValues.Sin = packet.Read<float>(); movementValues.CurrentSpeed = packet.Read<float>(); movementValues.Cos = packet.Read<float>(); } movementValues.FallTime = packet.Read<uint>(); movementValues.JumpVelocity = packet.Read<float>(); } if (HasSplineElevation) packet.Read<float>(); if (movementValues.HasRotation) vector.O = packet.Read<float>(); if (HasTime) movementValues.Time = packet.Read<uint>(); if (HasPitch) packet.Read<float>(); var guid = BitConverter.ToUInt64(guidBytes, 0); HandleMoveUpdate(guid, movementValues, vector); }
public static void HandleMoveUpdate(ulong guid, ObjectMovementValues movementValues, Vector4 vector) { PacketWriter moveUpdate = new PacketWriter(JAMCMessage.MoveUpdate); BitPack BitPack = new BitPack(moveUpdate, guid); BitPack.WriteGuidMask(0); BitPack.Write(!movementValues.HasMovementFlags); BitPack.Write(!movementValues.HasRotation); BitPack.WriteGuidMask(2, 6); BitPack.Write(!movementValues.HasMovementFlags2); BitPack.WriteGuidMask(7); BitPack.Write<uint>(0, 24); BitPack.WriteGuidMask(1); if (movementValues.HasMovementFlags) BitPack.Write((uint)movementValues.MovementFlags, 30); BitPack.WriteGuidMask(4); BitPack.Write(!movementValues.IsAlive); BitPack.Write(0); if (movementValues.HasMovementFlags2) BitPack.Write((uint)movementValues.MovementFlags2, 13); BitPack.Write(0); BitPack.WriteGuidMask(5); BitPack.Write(true); BitPack.Write(0); BitPack.Write(movementValues.IsInterpolated); BitPack.Write(0); BitPack.Write(true); BitPack.WriteGuidMask(3); BitPack.Write(true); if (movementValues.IsInterpolated) BitPack.Write(movementValues.IsInterpolated2); BitPack.Flush(); if (movementValues.IsInterpolated) { moveUpdate.WriteUInt32(0); if (movementValues.IsInterpolated2) { moveUpdate.WriteFloat(0); moveUpdate.WriteFloat(0); moveUpdate.WriteFloat(0); } moveUpdate.WriteFloat(0); } if (movementValues.IsAlive) moveUpdate.WriteUInt32(movementValues.Time); BitPack.WriteGuidBytes(5, 7); moveUpdate.WriteFloat(vector.Z); BitPack.WriteGuidBytes(4, 3, 2, 6, 0); moveUpdate.WriteFloat(vector.X); if (movementValues.HasRotation) moveUpdate.WriteFloat(vector.W); moveUpdate.WriteFloat(vector.Y); Character pChar = WorldMgr.GetSession(guid).Character; ObjectMgr.SetPosition(ref pChar, vector, false); WorldMgr.SendToAllInZone(guid, moveUpdate); }
public static void HandleMoveStopTurn(ref PacketReader packet, ref WorldClass session) { ObjectMovementValues movementValues = new ObjectMovementValues(); BitUnpack BitUnpack = new BitUnpack(packet); bool[] guidMask = new bool[8]; byte[] guidBytes = new byte[8]; Vector4 vector = new Vector4() { X = packet.ReadFloat(), Z = packet.ReadFloat(), Y = packet.ReadFloat() }; bool HasTime = !BitUnpack.GetBit(); guidMask[5] = BitUnpack.GetBit(); bool Unknown = BitUnpack.GetBit(); movementValues.IsTransport = BitUnpack.GetBit(); bool Unknown2 = BitUnpack.GetBit(); guidMask[3] = BitUnpack.GetBit(); bool HasSplineElevation = !BitUnpack.GetBit(); guidMask[0] = BitUnpack.GetBit(); bool HasPitch = !BitUnpack.GetBit(); uint counter = BitUnpack.GetBits<uint>(24); guidMask[1] = BitUnpack.GetBit(); guidMask[7] = BitUnpack.GetBit(); movementValues.HasMovementFlags = !BitUnpack.GetBit(); movementValues.IsAlive = !BitUnpack.GetBit(); guidMask[2] = BitUnpack.GetBit(); guidMask[6] = BitUnpack.GetBit(); movementValues.HasRotation = !BitUnpack.GetBit(); bool Unknown3 = BitUnpack.GetBit(); movementValues.HasMovementFlags2 = !BitUnpack.GetBit(); bool Unknown4 = BitUnpack.GetBit(); guidMask[4] = BitUnpack.GetBit(); /*if (movementValues.IsTransport) { } if (IsInterpolated) { }*/ if (movementValues.HasMovementFlags) movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30); if (movementValues.HasMovementFlags2) movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13); if (guidMask[6]) guidBytes[6] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[0]) guidBytes[0] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[5]) guidBytes[5] = (byte)(packet.ReadUInt8() ^ 1); for (int i = 0; i < counter; i++) packet.ReadUInt32(); if (guidMask[1]) guidBytes[1] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[7]) guidBytes[7] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[3]) guidBytes[3] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[4]) guidBytes[4] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[2]) guidBytes[2] = (byte)(packet.ReadUInt8() ^ 1); /*if (movementValues.IsTransport) { }*/ if (movementValues.HasRotation) vector.W = packet.ReadFloat(); if (movementValues.IsAlive) movementValues.Time = packet.ReadUInt32(); /*if (IsInterpolated) { }*/ if (HasPitch) packet.ReadFloat(); if (HasSplineElevation) packet.ReadFloat(); if (HasTime) movementValues.Time = packet.ReadUInt32(); var guid = BitConverter.ToUInt64(guidBytes, 0); HandleMoveUpdate(guid, movementValues, vector); }
public static void HandleMoveUpdate(ulong guid, ObjectMovementValues movementValues, Vector4 vector) { PacketWriter moveUpdate = new PacketWriter(ServerMessage.MoveUpdate); BitPack BitPack = new BitPack(moveUpdate, guid); BitPack.WriteGuidMask(2); BitPack.Write(0); BitPack.WriteGuidMask(1); BitPack.Write(!movementValues.HasMovementFlags2); BitPack.Write(true); BitPack.Write(true); BitPack.Write<uint>(0, 22); BitPack.WriteGuidMask(3); BitPack.Write(!movementValues.IsAlive); BitPack.Write(!movementValues.HasMovementFlags); BitPack.WriteGuidMask(6); if (movementValues.HasMovementFlags2) BitPack.Write((uint)movementValues.MovementFlags2, 13); BitPack.WriteGuidMask(4, 7); BitPack.Write(movementValues.IsInterpolated); BitPack.Write(0); if (movementValues.HasMovementFlags) BitPack.Write((uint)movementValues.MovementFlags, 30); BitPack.Write(!movementValues.HasRotation); BitPack.Write(movementValues.IsTransport); BitPack.WriteGuidMask(5); if (movementValues.IsInterpolated) BitPack.Write(movementValues.IsInterpolated2); BitPack.Write(true); BitPack.Write(0); BitPack.WriteGuidMask(0); BitPack.Flush(); moveUpdate.WriteFloat(vector.Z); BitPack.WriteGuidBytes(3); moveUpdate.WriteFloat(vector.X); BitPack.WriteGuidBytes(0, 7); moveUpdate.WriteFloat(vector.Y); BitPack.WriteGuidBytes(5); if (movementValues.IsInterpolated) { moveUpdate.WriteFloat(0); if (movementValues.IsInterpolated2) { moveUpdate.WriteFloat(0); moveUpdate.WriteFloat(0); moveUpdate.WriteFloat(0); } moveUpdate.WriteUInt32(0); } BitPack.WriteGuidBytes(6, 2); if (movementValues.IsAlive) moveUpdate.WriteUInt32(movementValues.Time); BitPack.WriteGuidBytes(1, 4); if (movementValues.HasRotation) moveUpdate.WriteFloat(vector.O); var session = WorldMgr.GetSession(guid); if (session != null) { Character pChar = session.Character; ObjectMgr.SetPosition(ref pChar, vector, false); WorldMgr.SendToInRangeCharacter(pChar, moveUpdate); } }
public static void HandleMoveFallLand(ref PacketReader packet, ref WorldClass session) { ObjectMovementValues movementValues = new ObjectMovementValues(); BitUnpack BitUnpack = new BitUnpack(packet); bool[] guidMask = new bool[8]; byte[] guidBytes = new byte[8]; Vector4 vector = new Vector4() { Y = packet.ReadFloat(), X = packet.ReadFloat(), Z = packet.ReadFloat() }; uint counter = BitUnpack.GetBits<uint>(24); guidMask[2] = BitUnpack.GetBit(); bool HasTime = !BitUnpack.GetBit(); bool HasSplineElevation = !BitUnpack.GetBit(); guidMask[6] = BitUnpack.GetBit(); guidMask[0] = BitUnpack.GetBit(); movementValues.IsTransport = BitUnpack.GetBit(); bool Unknown3 = BitUnpack.GetBit(); bool Unknown = BitUnpack.GetBit(); guidMask[4] = BitUnpack.GetBit(); movementValues.HasMovementFlags2 = !BitUnpack.GetBit(); bool HasPitch = !BitUnpack.GetBit(); movementValues.HasRotation = !BitUnpack.GetBit(); bool Unknown2 = BitUnpack.GetBit(); guidMask[1] = BitUnpack.GetBit(); movementValues.IsAlive = !BitUnpack.GetBit(); movementValues.HasMovementFlags = !BitUnpack.GetBit(); guidMask[5] = BitUnpack.GetBit(); guidMask[7] = BitUnpack.GetBit(); guidMask[3] = BitUnpack.GetBit(); bool Unknown4 = BitUnpack.GetBit(); /*if (movementValues.IsTransport) { vehicleGuidMask[4] = BitUnpack.GetBit(); vehicleGuidMask[1] = BitUnpack.GetBit(); bool vehicleUnknown2 = BitUnpack.GetBit(); vehicleGuidMask[2] = BitUnpack.GetBit(); vehicleGuidMask[3] = BitUnpack.GetBit(); vehicleGuidMask[7] = BitUnpack.GetBit(); vehicleGuidMask[0] = BitUnpack.GetBit(); bool vehicleUnknown1 = BitUnpack.GetBit(); vehicleGuidMask[5] = BitUnpack.GetBit(); vehicleGuidMask[6] = BitUnpack.GetBit(); } if (movementValues.IsInterpolated) movementValues.IsInterpolated2 = BitUnpack.GetBit();*/ if (movementValues.HasMovementFlags2) movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13); if (movementValues.HasMovementFlags) movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30); if (guidMask[0]) guidBytes[0] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[2]) guidBytes[2] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[1]) guidBytes[1] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[4]) guidBytes[4] = (byte)(packet.ReadUInt8() ^ 1); for (int i = 0; i < counter; i++) packet.ReadUInt32(); if (guidMask[6]) guidBytes[6] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[5]) guidBytes[5] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[7]) guidBytes[7] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[3]) guidBytes[3] = (byte)(packet.ReadUInt8() ^ 1); /*if (movementValues.IsTransport) { Vector4 vehiclevector = new Vector4(); vehiclevector.X = packet.ReadFloat(); if (vehicleGuidMask[0]) vehicleGuidBytes[0] = (byte)(packet.ReadUInt8() ^ 1); if ( vehicleUnknown1 ) uint _25 = packet.ReadUInt32(); if (vehicleGuidMask[4]) vehicleGuidBytes[4] = (byte)(packet.ReadUInt8() ^ 1); if (vehicleGuidMask[5]) vehicleGuidBytes[5] = (byte)(packet.ReadUInt8() ^ 1); if (vehicleGuidMask[3]) vehicleGuidBytes[3] = (byte)(packet.ReadUInt8() ^ 1); byte _88 = packet.ReadUInt8(); if (vehicleGuidMask[7]) vehicleGuidBytes[7] = (byte)(packet.ReadUInt8() ^ 1); vehiclevector.O = packet.ReadFloat(); vehiclevector.Z = packet.ReadFloat(); vehiclevector.Y = packet.ReadFloat(); if (vehicleGuidMask[6]) vehicleGuidBytes[6] = (byte)(packet.ReadUInt8() ^ 1); uint _23 = packet.ReadUInt32(); if (vehicleGuidMask[2]) vehicleGuidBytes[2] = (byte)(packet.ReadUInt8() ^ 1); if ( vehicleUnknown2 ) uint _27 = packet.ReadUInt32(); if (vehicleGuidMask[1]) vehicleGuidBytes[1] = (byte)(packet.ReadUInt8() ^ 1); }*/ // return if (HasPitch) packet.ReadFloat(); // float _28 /*if (movementValues.IsInterpolated) { if (movementValues.IsInterpolated2) { float _33 = packet.ReadFloat(); float _34 = packet.ReadFloat(); float _35 = packet.ReadFloat(); } float _ 31 = packet.ReadFloat(); uint _30 = packet.ReadUInt32(); }*/ if (movementValues.HasRotation) vector.O = packet.ReadFloat(); if (HasTime) movementValues.Time = packet.ReadUInt32(); if (HasSplineElevation) packet.ReadFloat(); if (movementValues.IsAlive) movementValues.Time = packet.ReadUInt32(); var guid = BitConverter.ToUInt64(guidBytes, 0); HandleMoveUpdate(guid, movementValues, vector); }
public static void HandleForceWalkSpeedChangeAck(ref PacketReader packet, ref WorldClass session) { ObjectMovementValues movementValues = new ObjectMovementValues(); BitUnpack BitUnpack = new BitUnpack(packet); bool[] guidMask = new bool[8]; byte[] guidBytes = new byte[8]; Vector4 vector = new Vector4() { Y = packet.ReadFloat(), Z = packet.ReadFloat(), X = packet.ReadFloat() }; uint zeroes = packet.ReadUInt32(); float walkspeed = packet.ReadFloat(); bool Unknown2 = BitUnpack.GetBit(); guidMask[6] = BitUnpack.GetBit(); bool HasPitch = !BitUnpack.GetBit(); movementValues.IsTransport = BitUnpack.GetBit(); bool Unknown3 = BitUnpack.GetBit(); guidMask[1] = BitUnpack.GetBit(); guidMask[2] = BitUnpack.GetBit(); movementValues.IsAlive = !BitUnpack.GetBit(); bool HasTime = !BitUnpack.GetBit(); uint counter = BitUnpack.GetBits<uint>(24); guidMask[0] = BitUnpack.GetBit(); movementValues.HasMovementFlags = !BitUnpack.GetBit(); guidMask[5] = BitUnpack.GetBit(); bool Unknown4 = BitUnpack.GetBit(); bool HasSplineElevation = !BitUnpack.GetBit(); guidMask[3] = BitUnpack.GetBit(); movementValues.HasRotation = !BitUnpack.GetBit(); movementValues.HasMovementFlags2 = !BitUnpack.GetBit(); guidMask[7] = BitUnpack.GetBit(); guidMask[4] = BitUnpack.GetBit(); bool Unknown = BitUnpack.GetBit(); /*if (movementValues.IsTransport) { vehicleGuidMask[2] = BitUnpack.GetBit(); vehicleGuidMask[5] = BitUnpack.GetBit(); vehicleGuidMask[4] = BitUnpack.GetBit(); vehicleGuidMask[1] = BitUnpack.GetBit(); vehicleGuidMask[0] = BitUnpack.GetBit(); vehicleGuidMask[3] = BitUnpack.GetBit(); vehicleGuidMask[7] = BitUnpack.GetBit(); vehicleGuidMask[6] = BitUnpack.GetBit(); bool vehicleUnknown1 = BitUnpack.GetBit(); bool vehicleUnknown2 = BitUnpack.GetBit(); }*/ if (movementValues.HasMovementFlags) movementValues.MovementFlags = (MovementFlag)BitUnpack.GetBits<uint>(30); /*if (movementValues.IsInterpolated) movementValues.IsInterpolated2 = BitUnpack.GetBit();*/ if (movementValues.HasMovementFlags2) movementValues.MovementFlags2 = (MovementFlag2)BitUnpack.GetBits<uint>(13); if (guidMask[3]) guidBytes[3] = (byte)(packet.ReadUInt8() ^ 1); for (int i = 0; i < counter; i++) packet.ReadUInt32(); if (guidMask[0]) guidBytes[0] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[4]) guidBytes[4] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[1]) guidBytes[1] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[2]) guidBytes[2] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[7]) guidBytes[7] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[6]) guidBytes[6] = (byte)(packet.ReadUInt8() ^ 1); if (guidMask[5]) guidBytes[5] = (byte)(packet.ReadUInt8() ^ 1); /*if (movementValues.IsTransport) { Vector4 vehiclevector = new Vector4(); if (vehicleGuidMask[7]) vehicleGuidBytes[7] = (byte)(packet.ReadUInt8() ^ 1); if (vehicleGuidMask[5]) vehicleGuidBytes[5] = (byte)(packet.ReadUInt8() ^ 1); vehiclevector.Z = packet.ReadFloat(); if (vehicleGuidMask[3]) vehicleGuidBytes[3] = (byte)(packet.ReadUInt8() ^ 1); byte _88 = packet.ReadUInt8(); // (BYTE)DATA[88] if (vehicleGuidMask[1]) vehicleGuidBytes[1] = (byte)(packet.ReadUInt8() ^ 1); if (vehicleGuidMask[0]) vehicleGuidBytes[0] = (byte)(packet.ReadUInt8() ^ 1); vehiclevector.X = packet.ReadFloat(); if (vehicleGuidMask[4]) vehicleGuidBytes[4] = (byte)(packet.ReadUInt8() ^ 1); if ( vehicleUnknown1 ) packet.ReadUInt32(); vehiclevector.Y = packet.ReadFloat(); if (vehicleGuidMask[6]) vehicleGuidBytes[6] = (byte)(packet.ReadUInt8() ^ 1); uint _23 = packet.ReadUInt32(); if (vehicleGuidMask[2]) vehicleGuidBytes[2] = (byte)(packet.ReadUInt8() ^ 1); if ( vehicleUnknown2 ) packet.ReadUInt32(); vehiclevector.O = packet.ReadFloat(); } if (movementValues.IsInterpolated) { float _31 = packet.ReadFloat(); if (movementValues.IsInterpolated2) { float _34 = packet.ReadFloat(); float _33 = packet.ReadFloat(); float _35 = packet.ReadFloat(); } uint _30 = packet.ReadUInt32(); }*/ if (HasTime) movementValues.Time = packet.ReadUInt32(); if (movementValues.IsAlive) movementValues.Time = packet.ReadUInt32(); if (HasPitch) packet.ReadFloat(); if (movementValues.HasRotation) vector.O = packet.ReadFloat(); if (HasSplineElevation) packet.ReadFloat(); var guid = BitConverter.ToUInt64(guidBytes, 0); HandleMoveUpdate(guid, movementValues, vector); Log.Message(LogType.DEBUG, "Character with Guid: {0}, AccountId: {1} changed walk speed to {2}", guid, session.Account.Id, walkspeed); }