Advertisement
mojito-ice

Untitled

Nov 6th, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. [Parser(Opcode.CMSG_CAST_SPELL)]
  2. public static void HandleCastSpell(Packet packet)
  3. {
  4. packet.ReadByte("CastID");
  5. packet.ReadUInt32("SpellID");
  6. packet.ReadUInt32("Misc");
  7.  
  8. // SpellTargetData
  9. packet.ResetBitReader();
  10.  
  11. packet.ReadEnum<TargetFlag>("Flags", 21);
  12. var bit72 = packet.ReadBit("HasSrcLocation");
  13. var bit112 = packet.ReadBit("HasDstLocation");
  14. var bit124 = packet.ReadBit("HasOrientation");
  15. var bits128 = packet.ReadBits(7);
  16.  
  17. packet.ReadPackedGuid128("Unit Guid");
  18. packet.ReadPackedGuid128("Item Guid");
  19.  
  20. if (bit72)
  21. {
  22. packet.ReadPackedGuid128("SrcLocation Guid");
  23. packet.ReadVector3("SrcLocation");
  24. }
  25.  
  26. if (bit112)
  27. {
  28. packet.ReadPackedGuid128("DstLocation Guid");
  29. packet.ReadVector3("DstLocation");
  30. }
  31.  
  32. if (bit124)
  33. packet.ReadSingle("Orientation");
  34.  
  35. packet.ReadWoWString("Name", bits128);
  36.  
  37. // MissileTrajectoryRequest
  38. packet.ReadSingle("Pitch");
  39. packet.ReadSingle("Speed");
  40.  
  41. packet.ReadPackedGuid128("Guid");
  42.  
  43. packet.ResetBitReader();
  44.  
  45. packet.ReadBits("SendCastFlags", 5);
  46. var bit456 = packet.ReadBit("HasMoveUpdate"); // MoveUpdate
  47.  
  48. var bits116 = packet.ReadBits("SpellWeightCount", 2); // SpellWeight
  49.  
  50. // MoveUpdate
  51. if (bit456)
  52. MovementHandler.ReadMovementStats(ref packet);
  53.  
  54. // SpellWeight
  55. for (var i = 0; i < bits116; ++i)
  56. {
  57. packet.ResetBitReader();
  58. packet.ReadBits("Type", 2, i);
  59. packet.ReadInt32("ID", i);
  60. packet.ReadInt32("Quantity", i);
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement