Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Parser(Opcode.CMSG_CAST_SPELL)]
- public static void HandleCastSpell(Packet packet)
- {
- packet.ReadByte("CastID");
- packet.ReadUInt32("SpellID");
- packet.ReadUInt32("Misc");
- // SpellTargetData
- packet.ResetBitReader();
- packet.ReadEnum<TargetFlag>("Flags", 21);
- var bit72 = packet.ReadBit("HasSrcLocation");
- var bit112 = packet.ReadBit("HasDstLocation");
- var bit124 = packet.ReadBit("HasOrientation");
- var bits128 = packet.ReadBits(7);
- packet.ReadPackedGuid128("Unit Guid");
- packet.ReadPackedGuid128("Item Guid");
- if (bit72)
- {
- packet.ReadPackedGuid128("SrcLocation Guid");
- packet.ReadVector3("SrcLocation");
- }
- if (bit112)
- {
- packet.ReadPackedGuid128("DstLocation Guid");
- packet.ReadVector3("DstLocation");
- }
- if (bit124)
- packet.ReadSingle("Orientation");
- packet.ReadWoWString("Name", bits128);
- // MissileTrajectoryRequest
- packet.ReadSingle("Pitch");
- packet.ReadSingle("Speed");
- packet.ReadPackedGuid128("Guid");
- packet.ResetBitReader();
- packet.ReadBits("SendCastFlags", 5);
- var bit456 = packet.ReadBit("HasMoveUpdate"); // MoveUpdate
- var bits116 = packet.ReadBits("SpellWeightCount", 2); // SpellWeight
- // MoveUpdate
- if (bit456)
- MovementHandler.ReadMovementStats(ref packet);
- // SpellWeight
- for (var i = 0; i < bits116; ++i)
- {
- packet.ResetBitReader();
- packet.ReadBits("Type", 2, i);
- packet.ReadInt32("ID", i);
- packet.ReadInt32("Quantity", i);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement