public static void HandleGossipPoi(Packet packet) { packet.ReadEnum<UnknownFlags>("Flags", TypeCode.Int32); packet.ReadVector2("Coordinates"); packet.ReadEnum<GossipPoiIcon>("Icon", TypeCode.UInt32); packet.ReadInt32("Data"); packet.ReadCString("Icon Name"); }
public static void HandleGossipPoi(Packet packet) { PointsOfInterest gossipPOI = new PointsOfInterest(); gossipPOI.ID = ++LastGossipPOIEntry; gossipPOI.Flags = (uint)packet.ReadInt32E<UnknownFlags>("Flags"); var pos = packet.ReadVector2("Coordinates"); gossipPOI.Icon = packet.ReadUInt32E<GossipPOIIcon>("Icon"); gossipPOI.Importance = packet.ReadUInt32("Importance"); gossipPOI.Name = packet.ReadCString("Icon Name"); gossipPOI.PositionX = pos.X; gossipPOI.PositionY = pos.Y; Storage.GossipPOIs.Add(gossipPOI, packet.TimeSpan); }
public static void HandleGossipPoi(Packet packet) { LastGossipPOIEntry++; var gossipPOI = new GossipPOI(); gossipPOI.Flags = (uint) packet.ReadEnum<UnknownFlags>("Flags", TypeCode.Int32); var pos = packet.ReadVector2("Coordinates"); gossipPOI.Icon = packet.ReadEnum<GossipPOIIcon>("Icon", TypeCode.UInt32); gossipPOI.Data = packet.ReadUInt32("Data"); gossipPOI.IconName = packet.ReadCString("Icon Name"); gossipPOI.XPos = pos.X; gossipPOI.YPos = pos.Y; Storage.GossipPOIs.Add(LastGossipPOIEntry, gossipPOI, packet.TimeSpan); }
public static void HandleGossipPoi(Packet packet) { ++LastGossipPOIEntry; var gossipPOI = new GossipPOI {Flags = packet.ReadBits("Flags", 14)}; var bit84 = packet.ReadBits(6); var pos = packet.ReadVector2("Coordinates"); gossipPOI.Icon = packet.ReadUInt32E<GossipPOIIcon>("Icon"); gossipPOI.Importance = packet.ReadUInt32("Importance"); gossipPOI.Name = packet.ReadWoWString("Name", bit84); gossipPOI.PositionX = pos.X; gossipPOI.PositionY = pos.Y; Storage.GossipPOIs.Add(LastGossipPOIEntry, gossipPOI, packet.TimeSpan); }
public static void HandleGossipPoi(Packet packet) { var flags = packet.ReadInt32(); packet.Writer.WriteLine("Flags: 0x" + flags.ToString("X8")); var pos = packet.ReadVector2(); packet.Writer.WriteLine("Coordinates: " + pos); var icon = (GossipPoiIcon)packet.ReadInt32(); packet.Writer.WriteLine("Icon: " + icon); var data = packet.ReadInt32(); packet.Writer.WriteLine("Data: " + data); var iconName = packet.ReadCString(); packet.Writer.WriteLine("Icon Name: " + iconName); }
public static void HandleGossipPoi(Packet packet) { PointsOfInterest gossipPOI = new PointsOfInterest(); gossipPOI.ID = ++LastGossipPOIEntry; gossipPOI.Flags = packet.ReadBits("Flags", 14); uint bit84 = packet.ReadBits(6); Vector2 pos = packet.ReadVector2("Coordinates"); gossipPOI.PositionX = pos.X; gossipPOI.PositionY = pos.Y; gossipPOI.Icon = packet.ReadUInt32E<GossipPOIIcon>("Icon"); gossipPOI.Importance = packet.ReadUInt32("Importance"); gossipPOI.Name = packet.ReadWoWString("Name", bit84); Storage.GossipPOIs.Add(gossipPOI, packet.TimeSpan); }
public static void HandleGossipPoi(Packet packet) { LastGossipPOIEntry++; var gossipPOI = new GossipPOI { Flags = (uint) packet.ReadInt32E<UnknownFlags>("Flags") }; var pos = packet.ReadVector2("Coordinates"); gossipPOI.Icon = packet.ReadUInt32E<GossipPOIIcon>("Icon"); gossipPOI.Importance = packet.ReadUInt32("Data"); gossipPOI.Name = packet.ReadCString("Icon Name"); gossipPOI.PositionX = pos.X; gossipPOI.PositionY = pos.Y; Storage.GossipPOIs.Add(LastGossipPOIEntry, gossipPOI, packet.TimeSpan); }
public static void HandleBattlegroundPlayerPositions(Packet packet) { var battlegroundPlayerPositionCount = packet.ReadInt32("BattlegroundPlayerPositionCount"); for (int i = 0; i < battlegroundPlayerPositionCount; i++) { packet.ReadPackedGuid128("Guid", i); packet.ReadVector2("Pos", i); packet.ReadByte("IconID", i); packet.ReadByte("ArenaSlot", i); } }
public static void HandleServerMinimapPing(Packet packet) { if (packet.Direction == Direction.ServerToClient) packet.ReadGuid("GUID"); var position = packet.ReadVector2(); packet.Writer.WriteLine("Position: " + position); }
public static void HandleServerMinimapPing(Packet packet) { packet.ReadPackedGuid128("Sender"); packet.ReadVector2("Position"); }
public static void HandleMoveSetCompoundState(Packet packet) { packet.ReadPackedGuid128("MoverGUID"); var moveStateChangeCount = packet.ReadInt32("MoveStateChangeCount"); for (int i = 0; i < moveStateChangeCount; i++) { packet.ReadInt16("MessageID"); packet.ReadInt32("SequenceIndex"); packet.ResetBitReader(); var bit12 = packet.ReadBit("HasSpeed"); var bit32 = packet.ReadBit("HasKnockBack"); var bit40 = packet.ReadBit("HasVehicle"); var bit56 = packet.ReadBit("HasCollisionHeight"); var bit104 = packet.ReadBit("HasMovementForce"); var bit128 = packet.ReadBit("HasMoverGUID"); if (bit12) packet.ReadSingle("Speed"); if (bit32) { packet.ReadSingle("HorzSpeed"); packet.ReadVector2("InitVertSpeed"); packet.ReadSingle("InitVertSpeed"); } if (bit40) packet.ReadInt32("VehicleRecID"); if (bit56) { packet.ReadSingle("Height"); packet.ReadSingle("Scale"); packet.ReadBits("UpdateCollisionHeightReason", 2); } if (bit104) ReadMovementForce(packet); if (bit128) packet.ReadPackedGuid128("MoverGUID"); } }
public static void HandleBattlegrounPlayerPositions(Packet packet) { if (packet.Direction == Direction.ClientToServer) return; var count1 = packet.ReadInt32("Count1"); for (var i = 0; i < count1; i++) { packet.ReadGuid("Player GUID", i); packet.ReadVector2("Position", i); } var count2 = packet.ReadInt32("Count2"); for (var i = 0; i < count2; i++) { packet.ReadGuid("Player GUID", i); packet.ReadVector2("Position", i); } }
public static void HandleServerMinimapPing(Packet packet) { if (packet.Direction == Direction.ServerToClient) packet.ReadGuid("GUID"); packet.ReadVector2("Position"); }
private static MovementInfo ReadMovementUpdateBlock(Packet packet, WowGuid guid, object index) { var moveInfo = new MovementInfo(); packet.ResetBitReader(); packet.ReadBit("NoBirthAnim", index); packet.ReadBit("EnablePortals", index); packet.ReadBit("PlayHoverAnim", index); var hasMovementUpdate = packet.ReadBit("HasMovementUpdate", index); var hasMovementTransport = packet.ReadBit("HasMovementTransport", index); var hasStationaryPosition = packet.ReadBit("Stationary", index); var hasCombatVictim = packet.ReadBit("HasCombatVictim", index); var hasServerTime = packet.ReadBit("HasServerTime", index); var hasVehicleCreate = packet.ReadBit("HasVehicleCreate", index); var hasAnimKitCreate = packet.ReadBit("HasAnimKitCreate", index); var hasRotation = packet.ReadBit("HasRotation", index); var hasAreaTrigger = packet.ReadBit("HasAreaTrigger", index); var hasGameObject = packet.ReadBit("HasGameObject", index); var hasSmoothPhasing = packet.ReadBit("HasSmoothPhasing", index); packet.ReadBit("ThisIsYou", index); var sceneObjCreate = packet.ReadBit("SceneObjCreate", index); var playerCreateData = packet.ReadBit("HasPlayerCreateData", index); if (hasMovementUpdate) { packet.ResetBitReader(); packet.ReadPackedGuid128("MoverGUID", index); packet.ReadUInt32("MoveTime", index); moveInfo.Position = packet.ReadVector3("Position", index); moveInfo.Orientation = packet.ReadSingle("Orientation", index); packet.ReadSingle("Pitch", index); packet.ReadSingle("StepUpStartElevation", index); var removeForcesIDsCount = packet.ReadInt32(); packet.ReadInt32("MoveIndex", index); for (var i = 0; i < removeForcesIDsCount; i++) packet.ReadPackedGuid128("RemoveForcesIDs", index, i); moveInfo.Flags = packet.ReadBitsE<MovementFlag>("Movement Flags", 30, index); moveInfo.FlagsExtra = packet.ReadBitsE<MovementFlagExtra>("Extra Movement Flags", 18, index); var hasTransport = packet.ReadBit("Has Transport Data", index); var hasFall = packet.ReadBit("Has Fall Data", index); packet.ReadBit("HasSpline", index); packet.ReadBit("HeightChangeFailed", index); packet.ReadBit("RemoteTimeValid", index); if (hasTransport) { packet.ResetBitReader(); moveInfo.TransportGuid = packet.ReadPackedGuid128("Transport Guid", index); moveInfo.TransportOffset = packet.ReadVector4("Transport Position", index); packet.ReadSByte("Transport Seat", index); packet.ReadInt32("Transport Time", index); var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", index); var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", index); if (hasPrevMoveTime) packet.ReadUInt32("PrevMoveTime", index); if (hasVehicleRecID) packet.ReadUInt32("VehicleRecID", index); } if (hasFall) { packet.ResetBitReader(); packet.ReadUInt32("Fall Time", index); packet.ReadSingle("JumpVelocity", index); var hasFallDirection = packet.ReadBit("Has Fall Direction", index); if (hasFallDirection) { packet.ReadVector2("Fall", index); packet.ReadSingle("Horizontal Speed", index); } } moveInfo.WalkSpeed = packet.ReadSingle("WalkSpeed", index) / 2.5f; moveInfo.RunSpeed = packet.ReadSingle("RunSpeed", index) / 7.0f; packet.ReadSingle("RunBackSpeed", index); packet.ReadSingle("SwimSpeed", index); packet.ReadSingle("SwimBackSpeed", index); packet.ReadSingle("FlightSpeed", index); packet.ReadSingle("FlightBackSpeed", index); packet.ReadSingle("TurnRate", index); packet.ReadSingle("PitchRate", index); var movementForceCount = packet.ReadInt32("MovementForceCount", index); packet.ResetBitReader(); moveInfo.HasSplineData = packet.ReadBit("HasMovementSpline", index); for (var i = 0; i < movementForceCount; ++i) { packet.ResetBitReader(); packet.ReadPackedGuid128("Id", index); packet.ReadVector3("Origin", index); packet.ReadVector3("Direction", index); packet.ReadInt32("TransportID", index); packet.ReadSingle("Magnitude", index); packet.ReadBits("Type", 2, index); } if (moveInfo.HasSplineData) { packet.ResetBitReader(); packet.ReadInt32("ID", index); packet.ReadVector3("Destination", index); var hasMovementSplineMove = packet.ReadBit("MovementSplineMove", index); if (hasMovementSplineMove) { packet.ResetBitReader(); packet.ReadUInt32E<SplineFlag434>("SplineFlags", index); packet.ReadUInt32("Elapsed", index); packet.ReadUInt32("Duration", index); packet.ReadSingle("DurationModifier", index); packet.ReadSingle("NextDurationModifier", index); var face = packet.ReadBits("Face", 2, index); var hasJumpGravity = packet.ReadBit("HasJumpGravity", index); var hasSpecialTime = packet.ReadBit("HasSpecialTime", index); var pointsCount = packet.ReadBits("PointsCount", 16, index); packet.ReadBitsE<SplineMode>("Mode", 2, index); var hasSplineFilterKey = packet.ReadBit("HasSplineFilterKey", index); var hasSpellEffectExtraData = packet.ReadBit("HasSpellEffectExtraData", index); if (hasSplineFilterKey) { packet.ResetBitReader(); var filterKeysCount = packet.ReadUInt32("FilterKeysCount", index); for (var i = 0; i < filterKeysCount; ++i) { packet.ReadSingle("In", index, i); packet.ReadSingle("Out", index, i); } packet.ReadBits("FilterFlags", 2, index); } if (face == 3) packet.ReadSingle("FaceDirection", index); if (face == 2) packet.ReadPackedGuid128("FaceGUID", index); if (face == 1) packet.ReadVector3("FaceSpot", index); if (hasJumpGravity) packet.ReadSingle("JumpGravity", index); if (hasSpecialTime) packet.ReadInt32("SpecialTime", index); for (var i = 0; i < pointsCount; ++i) packet.ReadVector3("Points", index, i); if (hasSpellEffectExtraData) { packet.ReadPackedGuid128("SpellEffectExtraGUID", index); packet.ReadUInt32("SpellEffectExtra int 1", index); packet.ReadUInt32("SpellEffectExtra int 2", index); packet.ReadUInt32("SpellEffectExtra int 3", index); } } } } var pauseTimesCount = packet.ReadUInt32("PauseTimesCount", index); if (hasStationaryPosition) { moveInfo.Position = packet.ReadVector3(); moveInfo.Orientation = packet.ReadSingle(); packet.AddValue("Stationary Position", moveInfo.Position, index); packet.AddValue("Stationary Orientation", moveInfo.Orientation, index); } if (hasCombatVictim) packet.ReadPackedGuid128("CombatVictim Guid", index); if (hasServerTime) packet.ReadUInt32("ServerTime", index); if (hasVehicleCreate) { moveInfo.VehicleId = packet.ReadUInt32("RecID", index); packet.ReadSingle("InitialRawFacing", index); } if (hasAnimKitCreate) { packet.ReadUInt16("AiID", index); packet.ReadUInt16("MovementID", index); packet.ReadUInt16("MeleeID", index); } if (hasRotation) moveInfo.Rotation = packet.ReadPackedQuaternion("GameObject Rotation", index); for (var i = 0; i < pauseTimesCount; ++i) packet.ReadInt32("PauseTimes", index, i); if (hasMovementTransport) { packet.ResetBitReader(); moveInfo.TransportGuid = packet.ReadPackedGuid128("TransportGUID", index); moveInfo.TransportOffset = packet.ReadVector4("TransportPosition", index); var seat = packet.ReadByte("VehicleSeatIndex", index); packet.ReadUInt32("MoveTime", index); var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", index); var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", index); if (hasPrevMoveTime) packet.ReadUInt32("PrevMoveTime", index); if (hasVehicleRecID) packet.ReadInt32("VehicleRecID", index); if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle && guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature) { VehicleTemplateAccessory vehicleAccessory = new VehicleTemplateAccessory { Entry = moveInfo.TransportGuid.GetEntry(), AccessoryEntry = guid.GetEntry(), SeatId = seat }; Storage.VehicleTemplateAccessories.Add(vehicleAccessory, packet.TimeSpan); } } if (hasAreaTrigger) { packet.ResetBitReader(); // CliAreaTrigger packet.ReadInt32("ElapsedMs", index); packet.ReadVector3("RollPitchYaw1", index); packet.ReadBit("HasAbsoluteOrientation", index); packet.ReadBit("HasDynamicShape", index); packet.ReadBit("HasAttached", index); packet.ReadBit("HasFaceMovementDir", index); packet.ReadBit("HasFollowsTerrain", index); packet.ReadBit("Unk bit WoD62x", index); var hasTargetRollPitchYaw = packet.ReadBit("HasTargetRollPitchYaw", index); var hasScaleCurveID = packet.ReadBit("HasScaleCurveID", index); var hasMorphCurveID = packet.ReadBit("HasMorphCurveID", index); var hasFacingCurveID = packet.ReadBit("HasFacingCurveID", index); var hasMoveCurveID = packet.ReadBit("HasMoveCurveID", index); var unkbit4C = packet.ReadBit(); var unkbit50 = packet.ReadBit(); var unkbit58 = packet.ReadBit(); var hasAreaTriggerSphere = packet.ReadBit("HasAreaTriggerSphere", index); var hasAreaTriggerBox = packet.ReadBit("HasAreaTriggerBox", index); var hasAreaTriggerPolygon = packet.ReadBit("HasAreaTriggerPolygon", index); var hasAreaTriggerCylinder = packet.ReadBit("HasAreaTriggerCylinder", index); var hasAreaTriggerSpline = packet.ReadBit("HasAreaTriggerSpline", index); var hasAreaTriggerUnkType = packet.ReadBit("HasAreaTriggerUnkType", index); if (unkbit50) packet.ReadBit(); if (hasAreaTriggerSpline) AreaTriggerHandler.ReadAreaTriggerSpline(packet, index); if (hasTargetRollPitchYaw) packet.ReadVector3("TargetRollPitchYaw", index); if (hasScaleCurveID) packet.ReadInt32("ScaleCurveID", index); if (hasMorphCurveID) packet.ReadInt32("MorphCurveID", index); if (hasFacingCurveID) packet.ReadInt32("FacingCurveID", index); if (hasMoveCurveID) packet.ReadInt32("MoveCurveID", index); if (unkbit4C) packet.ReadInt32(); if (unkbit58) packet.ReadUInt32(); if (hasAreaTriggerSphere) { packet.ReadSingle("Radius", index); packet.ReadSingle("RadiusTarget", index); } if (hasAreaTriggerBox) { packet.ReadVector3("Extents", index); packet.ReadVector3("ExtentsTarget", index); } if (hasAreaTriggerPolygon) { var verticesCount = packet.ReadInt32("VerticesCount", index); var verticesTargetCount = packet.ReadInt32("VerticesTargetCount", index); packet.ReadSingle("Height", index); packet.ReadSingle("HeightTarget", index); for (var i = 0; i < verticesCount; ++i) packet.ReadVector2("Vertices", index, i); for (var i = 0; i < verticesTargetCount; ++i) packet.ReadVector2("VerticesTarget", index, i); } if (hasAreaTriggerCylinder) { packet.ReadSingle("Radius", index); packet.ReadSingle("RadiusTarget", index); packet.ReadSingle("Height", index); packet.ReadSingle("HeightTarget", index); packet.ReadSingle("LocationZOffset", index); packet.ReadSingle("LocationZOffsetTarget", index); } if (hasAreaTriggerUnkType) { packet.ResetBitReader(); var unk1 = packet.ReadBit("AreaTriggerUnk1"); var hasCenter = packet.ReadBit("HasCenter", index); packet.ReadBit("Unk bit 703 1", index); packet.ReadBit("Unk bit 703 2", index); packet.ReadUInt32(); packet.ReadInt32(); packet.ReadUInt32(); packet.ReadSingle("Radius", index); packet.ReadSingle("BlendFromRadius", index); packet.ReadSingle("InitialAngel", index); packet.ReadSingle("ZOffset", index); if (unk1) packet.ReadPackedGuid128("AreaTriggerUnkGUID", index); if (hasCenter) packet.ReadVector3("Center", index); } } if (hasGameObject) { packet.ResetBitReader(); packet.ReadInt32("WorldEffectID", index); var bit8 = packet.ReadBit("bit8", index); if (bit8) packet.ReadInt32("Int1", index); } if (hasSmoothPhasing) { packet.ResetBitReader(); packet.ReadBit("ReplaceActive", index); var replaceObject = packet.ReadBit(); if (replaceObject) packet.ReadGuid("ReplaceObject", index); } if (sceneObjCreate) { packet.ResetBitReader(); var hasSceneLocalScriptData = packet.ReadBit("HasSceneLocalScriptData", index); var petBattleFullUpdate = packet.ReadBit("HasPetBattleFullUpdate", index); if (hasSceneLocalScriptData) { packet.ResetBitReader(); var dataLength = packet.ReadBits(7); packet.ReadWoWString("Data", dataLength, index); } if (petBattleFullUpdate) V6_0_2_19033.Parsers.BattlePetHandler.ReadPetBattleFullUpdate(packet, index); } if (playerCreateData) { packet.ResetBitReader(); var hasSceneInstanceIDs = packet.ReadBit("ScenePendingInstances", index); var hasRuneState = packet.ReadBit("Runes", index); if (hasSceneInstanceIDs) { var sceneInstanceIDs = packet.ReadInt32("SceneInstanceIDsCount"); for (var i = 0; i < sceneInstanceIDs; ++i) packet.ReadInt32("SceneInstanceIDs", index, i); } if (hasRuneState) { packet.ReadByte("RechargingRuneMask", index); packet.ReadByte("UsableRuneMask", index); var runeCount = packet.ReadUInt32(); for (var i = 0; i < runeCount; ++i) packet.ReadByte("RuneCooldown", index, i); } } return moveInfo; }
public static void ReadFallData(Packet packet, params object[] idx) { packet.ReadUInt32("FallTime", idx); packet.ReadSingle("JumpVelocity", idx); packet.ResetBitReader(); var bit20 = packet.ReadBit("HasFallDirection", idx); if (bit20) { packet.ReadVector2("Direction", idx); packet.ReadSingle("HorizontalSpeed", idx); } }
public static void ReadBattlegroundCapturePointInfo(Packet packet, params object[] idx) { packet.ReadPackedGuid128("Guid", idx); packet.ReadVector2("Pos", idx); var state = packet.ReadByte("State", idx); if (state == 2 || state == 3) { packet.ReadUInt32("CaptureTime", idx); packet.ReadUInt32("CaptureTotalDuration", idx); } }
public static void HandleBattlegroundPlayerPositions(Packet packet) { var count1 = packet.ReadUInt32("Count 1"); for (var i = 0; i < count1; ++i) { packet.ReadGuid("GUID", i); packet.ReadVector2("Position", i); } var count2 = packet.ReadUInt32("Count 2"); for (var i = 0; i < count2; ++i) { packet.ReadGuid("GUID", i); packet.ReadVector2("Position", i); } }
private static MovementInfo ReadMovementStatusData(Packet packet, object index) { var moveInfo = new MovementInfo(); packet.ReadPackedGuid128("MoverGUID", index); packet.ReadUInt32("MoveIndex", index); moveInfo.Position = packet.ReadVector3("Position", index); moveInfo.Orientation = packet.ReadSingle("Orientation", index); packet.ReadSingle("Pitch", index); packet.ReadSingle("StepUpStartElevation", index); var int152 = packet.ReadInt32("Int152", index); packet.ReadInt32("Int168", index); for (var i = 0; i < int152; i++) packet.ReadPackedGuid128("RemoveForcesIDs", index, i); packet.ResetBitReader(); packet.ReadBitsE<MovementFlag>("Movement Flags", 30, index); moveInfo.FlagsExtra = packet.ReadBitsE<MovementFlagExtra>("Extra Movement Flags", ClientVersion.AddedInVersion(ClientVersionBuild.V6_2_0_20173) ? 16 : 15, index); var hasTransport = packet.ReadBit("Has Transport Data", index); var hasFall = packet.ReadBit("Has Fall Data", index); packet.ReadBit("HasSpline", index); packet.ReadBit("HeightChangeFailed", index); packet.ReadBit("RemoteTimeValid", index); if (hasTransport) { packet.ReadPackedGuid128("Transport Guid", index); packet.ReadVector4("Transport Position", index); packet.ReadSByte("Transport Seat", index); packet.ReadInt32("Transport Time", index); packet.ResetBitReader(); var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", index); var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", index); if (hasPrevMoveTime) packet.ReadUInt32("PrevMoveTime", index); if (hasVehicleRecID) packet.ReadUInt32("VehicleRecID", index); } if (hasFall) { packet.ReadUInt32("Fall Time", index); packet.ReadSingle("JumpVelocity", index); packet.ResetBitReader(); var bit20 = packet.ReadBit("Has Fall Direction", index); if (bit20) { packet.ReadVector2("Fall", index); packet.ReadSingle("Horizontal Speed", index); } } return moveInfo; }
public static void HandleMoveKnockBack(Packet packet) { packet.ReadPackedGuid128("MoverGUID"); packet.ReadInt32("SequenceIndex"); packet.ReadVector2("Direction"); packet.ReadSingle("HorzSpeed"); packet.ReadSingle("VertSpeed"); }
private static MovementInfo ReadMovementUpdateBlock(Packet packet, WowGuid guid, object index) { var moveInfo = new MovementInfo(); packet.ResetBitReader(); packet.ReadBit("NoBirthAnim", index); packet.ReadBit("EnablePortals", index); packet.ReadBit("PlayHoverAnim", index); packet.ReadBit("IsSuppressingGreetings", index); var hasMovementUpdate = packet.ReadBit("HasMovementUpdate", index); var hasMovementTransport = packet.ReadBit("HasMovementTransport", index); var hasStationaryPosition = packet.ReadBit("Stationary", index); var hasCombatVictim = packet.ReadBit("HasCombatVictim", index); var hasServerTime = packet.ReadBit("HasServerTime", index); var hasVehicleCreate = packet.ReadBit("HasVehicleCreate", index); var hasAnimKitCreate = packet.ReadBit("HasAnimKitCreate", index); var hasRotation = packet.ReadBit("HasRotation", index); var hasAreaTrigger = packet.ReadBit("HasAreaTrigger", index); var hasGameObject = packet.ReadBit("HasGameObject", index); packet.ReadBit("ThisIsYou", index); packet.ReadBit("ReplaceActive", index); var sceneObjCreate = packet.ReadBit("SceneObjCreate", index); var scenePendingInstances = packet.ReadBit("ScenePendingInstances", index); var pauseTimesCount = packet.ReadUInt32("PauseTimesCount", index); if (hasMovementUpdate) // 392 { moveInfo = ReadMovementStatusData(packet, index); moveInfo.WalkSpeed = packet.ReadSingle("WalkSpeed", index) / 2.5f; moveInfo.RunSpeed = packet.ReadSingle("RunSpeed", index) / 7.0f; packet.ReadSingle("RunBackSpeed", index); packet.ReadSingle("SwimSpeed", index); packet.ReadSingle("SwimBackSpeed", index); packet.ReadSingle("FlightSpeed", index); packet.ReadSingle("FlightBackSpeed", index); packet.ReadSingle("TurnRate", index); packet.ReadSingle("PitchRate", index); var movementForceCount = packet.ReadInt32("MovementForceCount", index); for (var i = 0; i < movementForceCount; ++i) { packet.ReadPackedGuid128("Id", index); packet.ReadVector3("Direction", index); if (ClientVersion.AddedInVersion(ClientVersionBuild.V6_1_2_19802)) // correct? packet.ReadVector3("TransportPosition", index); packet.ReadInt32("TransportID", index); packet.ReadSingle("Magnitude", index); packet.ReadByte("Type", index); } packet.ResetBitReader(); moveInfo.HasSplineData = packet.ReadBit("HasMovementSpline", index); if (moveInfo.HasSplineData) { packet.ReadInt32("ID", index); packet.ReadVector3("Destination", index); packet.ResetBitReader(); var hasMovementSplineMove = packet.ReadBit("MovementSplineMove", index); if (hasMovementSplineMove) { packet.ResetBitReader(); packet.ReadBitsE<SplineFlag434>("SplineFlags", ClientVersion.AddedInVersion(ClientVersionBuild.V6_2_0_20173) ? 28 : 25, index); var face = packet.ReadBits("Face", 2, index); var hasJumpGravity = packet.ReadBit("HasJumpGravity", index); var hasSpecialTime = packet.ReadBit("HasSpecialTime", index); packet.ReadBitsE<SplineMode>("Mode", 2, index); var hasSplineFilterKey = packet.ReadBit("HasSplineFilterKey", index); packet.ReadUInt32("Elapsed", index); packet.ReadUInt32("Duration", index); packet.ReadSingle("DurationModifier", index); packet.ReadSingle("NextDurationModifier", index); var pointsCount = packet.ReadUInt32("PointsCount", index); if (face == 3) // FaceDirection packet.ReadSingle("FaceDirection", index); if (face == 2) // FaceGUID packet.ReadPackedGuid128("FaceGUID", index); if (face == 1) // FaceSpot packet.ReadVector3("FaceSpot", index); if (hasJumpGravity) packet.ReadSingle("JumpGravity", index); if (hasSpecialTime) packet.ReadInt32("SpecialTime", index); if (hasSplineFilterKey) { var filterKeysCount = packet.ReadUInt32("FilterKeysCount", index); for (var i = 0; i < filterKeysCount; ++i) { packet.ReadSingle("In", index, i); packet.ReadSingle("Out", index, i); } if (ClientVersion.AddedInVersion(ClientVersionBuild.V6_2_0_20173)) packet.ResetBitReader(); packet.ReadBits("FilterFlags", 2, index); } for (var i = 0; i < pointsCount; ++i) packet.ReadVector3("Points", index, i); } } } if (hasMovementTransport) // 456 { moveInfo.TransportGuid = packet.ReadPackedGuid128("TransportGUID", index); moveInfo.TransportOffset = packet.ReadVector4("TransportPosition", index); var seat = packet.ReadByte("VehicleSeatIndex", index); packet.ReadUInt32("MoveTime", index); packet.ResetBitReader(); var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", index); var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", index); if (hasPrevMoveTime) packet.ReadUInt32("PrevMoveTime", index); if (hasVehicleRecID) packet.ReadInt32("VehicleRecID", index); if (moveInfo.TransportGuid.HasEntry() && moveInfo.TransportGuid.GetHighType() == HighGuidType.Vehicle && guid.HasEntry() && guid.GetHighType() == HighGuidType.Creature) { var vehicleAccessory = new VehicleTemplateAccessory { AccessoryEntry = guid.GetEntry(), SeatId = seat }; Storage.VehicleTemplateAccessorys.Add(moveInfo.TransportGuid.GetEntry(), vehicleAccessory, packet.TimeSpan); } } if (hasStationaryPosition) // 480 { moveInfo.Position = packet.ReadVector3(); moveInfo.Orientation = packet.ReadSingle(); packet.AddValue("Stationary Position", moveInfo.Position, index); packet.AddValue("Stationary Orientation", moveInfo.Orientation, index); } if (hasCombatVictim) // 504 packet.ReadPackedGuid128("CombatVictim Guid", index); if (hasServerTime) // 516 packet.ReadUInt32("ServerTime", index); if (hasVehicleCreate) // 528 { moveInfo.VehicleId = packet.ReadUInt32("RecID", index); packet.ReadSingle("InitialRawFacing", index); } if (hasAnimKitCreate) // 538 { packet.ReadUInt16("AiID", index); packet.ReadUInt16("MovementID", index); packet.ReadUInt16("MeleeID", index); } if (hasRotation) // 552 packet.ReadPackedQuaternion("GameObject Rotation", index); if (hasAreaTrigger) // 772 { // CliAreaTrigger packet.ReadInt32("ElapsedMs", index); packet.ReadVector3("RollPitchYaw1", index); packet.ResetBitReader(); packet.ReadBit("HasAbsoluteOrientation", index); packet.ReadBit("HasDynamicShape", index); packet.ReadBit("HasAttached", index); packet.ReadBit("HasFaceMovementDir", index); packet.ReadBit("HasFollowsTerrain", index); if (ClientVersion.AddedInVersion(ClientVersionBuild.V6_2_0_20173)) packet.ReadBit("Unk bit WoD62x", index); var hasTargetRollPitchYaw = packet.ReadBit("HasTargetRollPitchYaw", index); var hasScaleCurveID = packet.ReadBit("HasScaleCurveID", index); var hasMorphCurveID = packet.ReadBit("HasMorphCurveID", index); var hasFacingCurveID = packet.ReadBit("HasFacingCurveID", index); var hasMoveCurveID = packet.ReadBit("HasMoveCurveID", index); var hasAreaTriggerSphere = packet.ReadBit("HasAreaTriggerSphere", index); var hasAreaTriggerBox = packet.ReadBit("HasAreaTriggerBox", index); var hasAreaTriggerPolygon = packet.ReadBit("HasAreaTriggerPolygon", index); var hasAreaTriggerCylinder = packet.ReadBit("HasAreaTriggerCylinder", index); var hasAreaTriggerSpline = packet.ReadBit("HasAreaTriggerSpline", index); if (hasTargetRollPitchYaw) packet.ReadVector3("TargetRollPitchYaw", index); if (hasScaleCurveID) packet.ReadInt32("ScaleCurveID, index"); if (hasMorphCurveID) packet.ReadInt32("MorphCurveID", index); if (hasFacingCurveID) packet.ReadInt32("FacingCurveID", index); if (hasMoveCurveID) packet.ReadInt32("MoveCurveID", index); if (hasAreaTriggerSphere) { packet.ReadSingle("Radius", index); packet.ReadSingle("RadiusTarget", index); } if (hasAreaTriggerBox) { packet.ReadVector3("Extents", index); packet.ReadVector3("ExtentsTarget", index); } if (hasAreaTriggerPolygon) { var verticesCount = packet.ReadInt32("VerticesCount", index); var verticesTargetCount = packet.ReadInt32("VerticesTargetCount", index); packet.ReadSingle("Height", index); packet.ReadSingle("HeightTarget", index); for (var i = 0; i < verticesCount; ++i) packet.ReadVector2("Vertices", index, i); for (var i = 0; i < verticesTargetCount; ++i) packet.ReadVector2("VerticesTarget", index, i); } if (hasAreaTriggerCylinder) { packet.ReadSingle("Radius", index); packet.ReadSingle("RadiusTarget", index); packet.ReadSingle("Height", index); packet.ReadSingle("HeightTarget", index); packet.ReadSingle("Float4", index); packet.ReadSingle("Float5", index); } if (hasAreaTriggerSpline) AreaTriggerHandler.ReadAreaTriggerSpline(packet, index); } if (hasGameObject) // 788 { packet.ReadInt32("WorldEffectID", index); packet.ResetBitReader(); var bit8 = packet.ReadBit("bit8", index); if (bit8) packet.ReadInt32("Int1", index); } if (sceneObjCreate) // 1184 { packet.ResetBitReader(); var hasSceneLocalScriptData = packet.ReadBit("HasSceneLocalScriptData", index); var petBattleFullUpdate = packet.ReadBit("HasPetBattleFullUpdate", index); if (hasSceneLocalScriptData) { packet.ResetBitReader(); var dataLength = packet.ReadBits(7); packet.ReadWoWString("Data", dataLength, index); } if (petBattleFullUpdate) BattlePetHandler.ReadPetBattleFullUpdate(packet, index); } if (scenePendingInstances) // 1208 { var sceneInstanceIDs = packet.ReadInt32("SceneInstanceIDsCount"); for (var i = 0; i < sceneInstanceIDs; ++i) packet.ReadInt32("SceneInstanceIDs", index, i); } for (var i = 0; i < pauseTimesCount; ++i) packet.ReadInt32("PauseTimes", index, i); return moveInfo; }
public static void ReadMovementStats(Packet packet, params object[] idx) { packet.ReadPackedGuid128("MoverGUID", idx); packet.ReadUInt32("MoveIndex", idx); packet.ReadVector4("Position", idx); packet.ReadSingle("Pitch", idx); packet.ReadSingle("StepUpStartElevation", idx); var int152 = packet.ReadInt32("RemoveForcesCount", idx); packet.ReadInt32("MoveTime", idx); for (var i = 0; i < int152; i++) packet.ReadPackedGuid128("RemoveForcesIDs", idx, i); packet.ResetBitReader(); packet.ReadBitsE<MovementFlag>("Movement Flags", 30, idx); packet.ReadBitsE<MovementFlagExtra>("Extra Movement Flags", 15, idx); var hasTransport = packet.ReadBit("Has Transport Data", idx); var hasFall = packet.ReadBit("Has Fall Data", idx); packet.ReadBit("HasSpline", idx); packet.ReadBit("HeightChangeFailed", idx); packet.ReadBit("RemoteTimeValid", idx); if (hasTransport) { packet.ReadPackedGuid128("TransportGuid", idx); packet.ReadVector4("TransportPosition", idx); packet.ReadByte("TransportSeat", idx); packet.ReadInt32("TransportMoveTime", idx); packet.ResetBitReader(); var hasPrevMoveTime = packet.ReadBit("HasPrevMoveTime", idx); var hasVehicleRecID = packet.ReadBit("HasVehicleRecID", idx); if (hasPrevMoveTime) packet.ReadUInt32("PrevMoveTime", idx); if (hasVehicleRecID) packet.ReadUInt32("VehicleRecID", idx); } if (hasFall) { packet.ReadUInt32("FallTime", idx); packet.ReadSingle("JumpVelocity", idx); packet.ResetBitReader(); var bit20 = packet.ReadBit("HasFallDirection", idx); if (bit20) { packet.ReadVector2("Direction", idx); packet.ReadSingle("HorizontalSpeed", idx); } } }
public static void HandleClientMinimapPing(Packet packet) { packet.ReadVector2("Position"); packet.ReadByte("PartyIndex"); }