TrinityCore
SpellPackets.h
Go to the documentation of this file.
1 /*
2  * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the
6  * Free Software Foundation; either version 2 of the License, or (at your
7  * option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef SpellPackets_h__
19 #define SpellPackets_h__
20 
21 #include "CharacterPackets.h"
22 #include "CombatLogPacketsCommon.h"
23 #include "MovementInfo.h"
24 #include "ObjectGuid.h"
25 #include "Optional.h"
26 #include "PacketUtilities.h"
27 #include "Position.h"
28 #include "SharedDefines.h"
29 #include <array>
30 
31 namespace WorldPackets
32 {
33  namespace Spells
34  {
35  class CancelAura final : public ClientPacket
36  {
37  public:
38  CancelAura(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_AURA, std::move(packet)) { }
39 
40  void Read() override;
41 
44  };
45 
46  class CancelAutoRepeatSpell final : public ClientPacket
47  {
48  public:
50 
51  void Read() override { }
52  };
53 
54  class CancelChannelling final : public ClientPacket
55  {
56  public:
58 
59  void Read() override;
60 
61  int32 ChannelSpell = 0;
62  int32 Reason = 0; // 40 = /run SpellStopCasting(), 16 = movement/SpellAuraInterruptFlags::Moving, 41 = turning/SpellAuraInterruptFlags::Turning
63  // does not match SpellCastResult enum
64  };
65 
66  class CancelGrowthAura final : public ClientPacket
67  {
68  public:
70 
71  void Read() override { }
72  };
73 
74  class CancelMountAura final : public ClientPacket
75  {
76  public:
78 
79  void Read() override { }
80  };
81 
82  class PetCancelAura final : public ClientPacket
83  {
84  public:
86 
87  void Read() override;
88 
91  };
92 
94  {
95  public:
97 
98  void Read() override { }
99  };
100 
101  class CategoryCooldown final : public ServerPacket
102  {
103  public:
105  {
106  CategoryCooldownInfo(uint32 category, int32 cooldown)
107  : Category(category), ModCooldown(cooldown) { }
108 
109  uint32 Category = 0;
110  int32 ModCooldown = 0;
111  };
112 
114 
115  WorldPacket const* Write() override;
116 
117  std::vector<CategoryCooldownInfo> CategoryCooldowns;
118  };
119 
120  class SendKnownSpells final : public ServerPacket
121  {
122  public:
124 
125  WorldPacket const* Write() override;
126 
127  bool InitialLogin = false;
128  std::vector<uint32> KnownSpells;
129  std::vector<uint32> FavoriteSpells; // tradeskill recipes
130  };
131 
132  class UpdateActionButtons final : public ServerPacket
133  {
134  public:
135  static std::size_t constexpr NumActionButtons = 132;
136 
138  {
139  ActionButtons.fill(0);
140  }
141 
142  WorldPacket const* Write() override;
143 
144  std::array<uint64, NumActionButtons> ActionButtons;
145  uint8 Reason = 0;
146  /*
147  Reason can be 0, 1, 2
148  0 - Sends initial action buttons, client does not validate if we have the spell or not
149  1 - Used used after spec swaps, client validates if a spell is known.
150  2 - Clears the action bars client sided. This is sent during spec swap before unlearning and before sending the new buttons
151  */
152  };
153 
154  class SetActionButton final : public ClientPacket
155  {
156  public:
158 
159  void Read() override;
160 
162  uint8 Index = 0;
163  };
164 
165  class SendUnlearnSpells final : public ServerPacket
166  {
167  public:
169 
170  WorldPacket const* Write() override;
171 
172  std::vector<uint32> Spells;
173  };
174 
176  {
180  uint16 Flags = 0;
181  uint32 ActiveFlags = 0;
182  uint16 CastLevel = 1;
183  uint8 Applications = 1;
184  int32 ContentTuningID = 0;
190  std::vector<float> Points;
191  std::vector<float> EstimatedPoints;
192  };
193 
194  struct AuraInfo
195  {
196  uint8 Slot = 0;
198  };
199 
200  class AuraUpdate final : public ServerPacket
201  {
202  public:
204 
205  WorldPacket const* Write() override;
206 
207  bool UpdateAll = false;
209  std::vector<AuraInfo> Auras;
210  };
211 
213  {
216  };
217 
219  {
220  uint32 Flags = 0;
227  std::string Name;
228  };
229 
231  {
232  float Pitch = 0.0f;
233  float Speed = 0.0f;
234  };
235 
236  struct SpellWeight
237  {
239  int32 ID = 0;
240  uint32 Quantity = 0;
241  };
242 
244  {
245  int32 ItemID = 0;
246  int32 Slot = 0;
247  };
248 
250  {
251  int32 CurrencyID = 0;
252  int32 Count = 0;
253  };
254 
256  {
260  uint8 SendCastFlags = 0;
264  std::vector<SpellWeight> Weight;
266  Array<SpellExtraCurrencyCost, 5 /*MAX_ITEM_EXT_COST_CURRENCIES*/> OptionalCurrencies;
268  int32 Misc[2] = { };
269  };
270 
271  class CastSpell final : public ClientPacket
272  {
273  public:
274  CastSpell(WorldPacket&& packet) : ClientPacket(CMSG_CAST_SPELL, std::move(packet)) { }
275 
276  void Read() override;
277 
279  };
280 
281  class PetCastSpell final : public ClientPacket
282  {
283  public:
285 
286  void Read() override;
287 
290  };
291 
292  class UseItem final : public ClientPacket
293  {
294  public:
295  UseItem(WorldPacket&& packet) : ClientPacket(CMSG_USE_ITEM, std::move(packet)) { }
296 
297  void Read() override;
298 
299  uint8 PackSlot = 0;
300  uint8 Slot = 0;
303  };
304 
305  class SpellPrepare final : public ServerPacket
306  {
307  public:
309 
310  WorldPacket const* Write() override;
311 
314  };
315 
317  {
319  SpellHitStatus(uint8 reason) : Reason(reason) { }
320 
322  };
323 
325  {
327  SpellMissStatus(uint8 reason, uint8 reflectStatus) : Reason(reason), ReflectStatus(reflectStatus) { }
328 
329  uint8 Reason = 0;
330  uint8 ReflectStatus = 0;
331  };
332 
334  {
335  int32 Cost = 0;
336  int8 Type = 0;
337  };
338 
339  struct RuneData
340  {
341  uint8 Start = 0;
342  uint8 Count = 0;
343  std::vector<uint8> Cooldowns;
344  };
345 
347  {
348  uint32 TravelTime = 0;
349  float Pitch = 0.0f;
350  };
351 
352  struct SpellAmmo
353  {
354  int32 DisplayID = 0;
356  };
357 
359  {
360  uint32 School = 0;
361  uint32 Value = 0;
362  };
363 
365  {
368  uint8 Type = 0;
369  };
370 
372  {
379  uint32 CastFlags = 0;
380  uint32 CastFlagsEx = 0;
381  uint32 CastTime = 0;
382  std::vector<ObjectGuid> HitTargets;
383  std::vector<ObjectGuid> MissTargets;
384  std::vector<SpellHitStatus> HitStatus;
385  std::vector<SpellMissStatus> MissStatus;
387  std::vector<SpellPowerData> RemainingPower;
391  uint8 DestLocSpellCastIndex = 0;
392  std::vector<TargetLocation> TargetPoints;
395  };
396 
398  {
399  public:
400  SpellGo() : CombatLog::CombatLogServerPacket(SMSG_SPELL_GO) { }
401 
402  WorldPacket const* Write() override;
403 
405  };
406 
407  class SpellStart final : public ServerPacket
408  {
409  public:
411 
412  WorldPacket const* Write() override;
413 
415  };
416 
417  class LearnedSpells final : public ServerPacket
418  {
419  public:
421 
422  WorldPacket const* Write() override;
423 
424  std::vector<int32> SpellID;
425  std::vector<int32> FavoriteSpellID;
426  uint32 SpecializationID = 0;
427  bool SuppressMessaging = false;
428  };
429 
430  class SupercededSpells final : public ServerPacket
431  {
432  public:
434 
435  WorldPacket const* Write() override;
436 
437  std::vector<int32> SpellID;
438  std::vector<int32> Superceded;
439  std::vector<int32> FavoriteSpellID;
440  };
441 
442  class SpellFailure final : public ServerPacket
443  {
444  public:
445  SpellFailure() : ServerPacket(SMSG_SPELL_FAILURE, 16 + 4 + 8 + 2 + 16) { }
446 
447  WorldPacket const* Write() override;
448 
452  uint16 Reason = 0;
454  };
455 
456  class SpellFailedOther final : public ServerPacket
457  {
458  public:
460 
461  WorldPacket const* Write() override;
462 
466  uint8 Reason = 0;
468  };
469 
470  class TC_GAME_API CastFailed final : public ServerPacket
471  {
472  public:
473  CastFailed() : ServerPacket(SMSG_CAST_FAILED, 4 + 4 + 4 + 4 + 1) { }
474 
475  WorldPacket const* Write() override;
476 
480  int32 Reason = 0;
481  int32 FailedArg1 = -1;
482  int32 FailedArg2 = -1;
483  };
484 
486  {
487  public:
489 
490  WorldPacket const* Write() override;
491 
494  int32 Reason = 0;
495  int32 FailedArg1 = -1;
496  int32 FailedArg2 = -1;
497  };
498 
500  {
501  float ModifierValue = 0.0f;
502  uint8 ClassIndex = 0;
503  };
504 
506  {
507  uint8 ModIndex = 0;
508  std::vector<SpellModifierData> ModifierData;
509  };
510 
512  {
513  public:
514  SetSpellModifier(OpcodeServer opcode) : ServerPacket(opcode, 20) { }
515 
516  WorldPacket const* Write() override;
517 
518  std::vector<SpellModifier> Modifiers;
519  };
520 
521  class UnlearnedSpells final : public ServerPacket
522  {
523  public:
525 
526  WorldPacket const* Write() override;
527 
528  std::vector<uint32> SpellID;
529  bool SuppressMessaging = false;
530  };
531 
532  class CooldownEvent final : public ServerPacket
533  {
534  public:
536  CooldownEvent(bool isPet, int32 spellId) : ServerPacket(SMSG_COOLDOWN_EVENT, 16 + 4), IsPet(isPet), SpellID(spellId) { }
537 
538  WorldPacket const* Write() override;
539 
540  bool IsPet = false;
542  };
543 
544  class ClearCooldowns final : public ServerPacket
545  {
546  public:
548 
549  WorldPacket const* Write() override;
550 
551  std::vector<int32> SpellID;
552  bool IsPet = false;
553  };
554 
555  class ClearCooldown final : public ServerPacket
556  {
557  public:
559 
560  WorldPacket const* Write() override;
561 
562  bool IsPet = false;
564  bool ClearOnHold = false;
565  };
566 
567  class ModifyCooldown final : public ServerPacket
568  {
569  public:
571 
572  WorldPacket const* Write() override;
573 
574  bool IsPet = false;
575  int32 DeltaTime = 0;
577  };
578 
580  {
582  SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown) : SrecID(spellId), ForcedCooldown(forcedCooldown) { }
583 
584  uint32 SrecID = 0;
585  uint32 ForcedCooldown = 0;
586  float ModRate = 1.0f;
587  };
588 
590  {
591  public:
593 
594  WorldPacket const* Write() override;
595 
596  std::vector<SpellCooldownStruct> SpellCooldowns;
598  uint8 Flags = 0;
599  };
600 
602  {
604  uint32 ItemID = 0;
605  uint32 Category = 0;
606  int32 RecoveryTime = 0;
607  int32 CategoryRecoveryTime = 0;
608  float ModRate = 1.0f;
609  bool OnHold = false;
612  };
613 
614  class SendSpellHistory final : public ServerPacket
615  {
616  public:
618 
619  WorldPacket const* Write() override;
620 
621  std::vector<SpellHistoryEntry> Entries;
622  };
623 
624  class ClearAllSpellCharges final : public ServerPacket
625  {
626  public:
628 
629  WorldPacket const* Write() override;
630 
631  bool IsPet = false;
632  };
633 
634  class ClearSpellCharges final : public ServerPacket
635  {
636  public:
638 
639  WorldPacket const* Write() override;
640 
641  bool IsPet = false;
642  int32 Category = 0;
643  };
644 
645  class SetSpellCharges final : public ServerPacket
646  {
647  public:
649 
650  WorldPacket const* Write() override;
651 
652  bool IsPet = false;
653  uint32 Category = 0;
654  uint32 NextRecoveryTime = 0;
655  uint8 ConsumedCharges = 0;
656  float ChargeModRate = 1.0f;
657  };
658 
660  {
661  uint32 Category = 0;
662  uint32 NextRecoveryTime = 0;
663  float ChargeModRate = 1.0f;
664  uint8 ConsumedCharges = 0;
665  };
666 
667  class SendSpellCharges final : public ServerPacket
668  {
669  public:
671 
672  WorldPacket const* Write() override;
673 
674  std::vector<SpellChargeEntry> Entries;
675  };
676 
677  class ClearTarget final : public ServerPacket
678  {
679  public:
681 
682  WorldPacket const* Write() override;
683 
685  };
686 
688  {
689  public:
691 
692  WorldPacket const* Write() override;
693 
694  int32 SpellVisualID = 0;
695  };
696 
697  class CancelSpellVisual final : public ServerPacket
698  {
699  public:
701 
702  WorldPacket const* Write() override;
703 
705  int32 SpellVisualID = 0;
706  };
707 
708  class CancelSpellVisualKit final : public ServerPacket
709  {
710  public:
712 
713  WorldPacket const* Write() override;
714 
716  int32 SpellVisualKitID = 0;
717  bool MountedVisual = false;
718  };
719 
720  class PlayOrphanSpellVisual final : public ServerPacket
721  {
722  public:
723  PlayOrphanSpellVisual() : ServerPacket(SMSG_PLAY_ORPHAN_SPELL_VISUAL, 16 + 3 * 4 + 4 + 1 + 4 + 3 * 4 + 3 * 4) { }
724 
725  WorldPacket const* Write() override;
726 
727  ObjectGuid Target; // Exclusive with TargetLocation
729  int32 SpellVisualID = 0;
730  bool SpeedAsTime = false;
731  float TravelSpeed = 0.0f;
732  float LaunchDelay = 0.0f;
733  float MinDuration = 0.0f;
734  TaggedPosition<Position::XYZ> SourceRotation; // Vector of rotations, Orientation is z
736  };
737 
738  class PlaySpellVisual final : public ServerPacket
739  {
740  public:
741  PlaySpellVisual() : ServerPacket(SMSG_PLAY_SPELL_VISUAL, 16 + 16 + 2 + 4 + 1 + 2 + 4 + 4 * 4) { }
742 
743  WorldPacket const* Write() override;
744 
746  ObjectGuid Target; // Exclusive with TargetPosition
747  ObjectGuid Transport; // Used when Target = Empty && (SpellVisual::Flags & 0x400) == 0
749  uint32 SpellVisualID = 0;
750  float TravelSpeed = 0.0f;
751  uint16 HitReason = 0;
752  uint16 MissReason = 0;
753  uint16 ReflectStatus = 0;
754  float LaunchDelay = 0.0f;
755  float MinDuration = 0.0f;
756  bool SpeedAsTime = false;
757  };
758 
759  class PlaySpellVisualKit final : public ServerPacket
760  {
761  public:
763 
764  WorldPacket const* Write() override;
765 
767  int32 KitRecID = 0;
768  int32 KitType = 0;
770  bool MountedVisual = false;
771  };
772 
773  class CancelCast final : public ClientPacket
774  {
775  public:
776  CancelCast(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_CAST, std::move(packet)) { }
777 
778  void Read() override;
779 
782  };
783 
784  class OpenItem final : public ClientPacket
785  {
786  public:
787  OpenItem(WorldPacket&& packet) : ClientPacket(CMSG_OPEN_ITEM, std::move(packet)) { }
788 
789  void Read() override;
790 
791  uint8 Slot = 0;
792  uint8 PackSlot = 0;
793  };
794 
796  {
797  int32 SchoolImmunities = 0;
798  int32 Immunities = 0;
799  };
800 
802  {
805  };
806 
807  class SpellChannelStart final : public ServerPacket
808  {
809  public:
811 
812  WorldPacket const* Write() override;
813 
819  uint32 ChannelDuration = 0;
820  };
821 
822  class SpellChannelUpdate final : public ServerPacket
823  {
824  public:
826 
827  WorldPacket const* Write() override;
828 
830  int32 TimeRemaining = 0;
831  };
832 
833  class ResurrectRequest final : public ServerPacket
834  {
835  public:
837 
838  WorldPacket const* Write() override;
839 
841  uint32 ResurrectOffererVirtualRealmAddress = 0;
842  uint32 PetNumber = 0;
844  bool UseTimer = false;
845  bool Sickness = false;
846  std::string Name;
847  };
848 
849  class UnlearnSkill final : public ClientPacket
850  {
851  public:
853 
854  void Read() override;
855 
856  uint32 SkillLine = 0;
857  };
858 
859  class SelfRes final : public ClientPacket
860  {
861  public:
862  SelfRes(WorldPacket&& packet) : ClientPacket(CMSG_SELF_RES, std::move(packet)) { }
863 
864  void Read() override;
865 
867  };
868 
869  class GetMirrorImageData final : public ClientPacket
870  {
871  public:
873 
874  void Read() override;
875 
877  uint32 DisplayID = 0;
878  };
879 
881  {
882  public:
884 
885  WorldPacket const* Write() override;
886 
888  int32 DisplayID = 0;
889  int32 SpellVisualKitID = 0;
890  uint8 RaceID = 0;
892  uint8 ClassID = 0;
893  std::vector<Character::ChrCustomizationChoice> Customizations;
895 
896  std::vector<int32> ItemDisplayID;
897  };
898 
900  {
901  public:
903 
904  WorldPacket const* Write() override;
905 
907  int32 DisplayID = 0;
908  int32 SpellVisualKitID = 0;
909  };
910 
911  class SpellClick final : public ClientPacket
912  {
913  public:
914  SpellClick(WorldPacket&& packet) : ClientPacket(CMSG_SPELL_CLICK, std::move(packet)) { }
915 
916  void Read() override;
917 
919  bool TryAutoDismount = false;
920  };
921 
922  class ResyncRunes final : public ServerPacket
923  {
924  public:
925  ResyncRunes(size_t size) : ServerPacket(SMSG_RESYNC_RUNES, 1 + 1 + 4 + size) { }
926 
927  WorldPacket const* Write() override;
928 
930  };
931 
932  class AddRunePower final : public ServerPacket
933  {
934  public:
936 
937  WorldPacket const* Write() override;
938 
939  uint32 AddedRunesMask = 0;
940  };
941 
943  {
944  public:
946 
947  void Read() override;
948 
953  };
954 
956  {
957  public:
959 
960  WorldPacket const* Write() override;
961 
965  };
966 
968  {
969  public:
971 
972  void Read() override;
973 
975  uint16 MoveMsgID = 0;
977  float Pitch = 0.0f;
978  float Speed = 0.0f;
982  };
983 
984  class SpellDelayed final : public ServerPacket
985  {
986  public:
988 
989  WorldPacket const* Write() override;
990 
992  int32 ActualDelay = 0;
993  };
994 
995  class DispelFailed final : public ServerPacket
996  {
997  public:
998  DispelFailed() : ServerPacket(SMSG_DISPEL_FAILED, 16 + 16 + 4 + 4 + 4 /* predict a single failure on average */) { }
999 
1000  WorldPacket const* Write() override;
1001 
1005  std::vector<int32> FailedSpells;
1006  };
1007 
1008  class CustomLoadScreen final : public ServerPacket
1009  {
1010  public:
1011  CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId) : ServerPacket(SMSG_CUSTOM_LOAD_SCREEN), TeleportSpellID(teleportSpellId), LoadingScreenID(loadingScreenId) { }
1012 
1013  WorldPacket const* Write() override;
1014 
1017  };
1018 
1019  class MountResult final : public ServerPacket
1020  {
1021  public:
1023 
1024  WorldPacket const* Write() override;
1025 
1026  uint32 Result = 0;
1027  };
1028 
1029  class MissileCancel final : public ServerPacket
1030  {
1031  public:
1033 
1034  WorldPacket const* Write() override;
1035 
1037  bool Reverse = false;
1039  };
1040  }
1041 }
1042 
1044 
1045 #endif // SpellPackets_h__
Definition: Opcodes.h:1867
SpellPrepare()
Definition: SpellPackets.h:308
CancelGrowthAura(WorldPacket &&packet)
Definition: SpellPackets.h:69
SendUnlearnSpells()
Definition: SpellPackets.h:168
Definition: Opcodes.h:1837
void Read() override
Definition: SpellPackets.h:98
TaggedPosition< Position::XYZ > SourceRotation
Definition: SpellPackets.h:734
ObjectGuid CasterGUID
Definition: SpellPackets.h:1002
SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown)
Definition: SpellPackets.h:582
Definition: Opcodes.h:165
Definition: SpellPackets.h:316
std::vector< uint32 > KnownSpells
Definition: SpellPackets.h:128
Definition: SpellPackets.h:358
Optional< AuraDataInfo > AuraData
Definition: SpellPackets.h:197
Definition: Opcodes.h:1778
SpellCooldown()
Definition: SpellPackets.h:592
std::vector< SpellCooldownStruct > SpellCooldowns
Definition: SpellPackets.h:596
Definition: Opcodes.h:1775
std::vector< uint32 > FavoriteSpells
Definition: SpellPackets.h:129
ObjectGuid Caster
Definition: SpellPackets.h:962
std::vector< int32 > ItemDisplayID
Definition: SpellPackets.h:896
std::vector< int32 > FailedSpells
Definition: SpellPackets.h:1005
ObjectGuid CastID
Definition: SpellPackets.h:492
ObjectGuid CastID
Definition: SpellPackets.h:453
Definition: SpellPackets.h:292
ObjectGuid Caster
Definition: SpellPackets.h:597
Definition: Opcodes.h:802
Definition: ByteBuffer.h:53
int8_t int8
Definition: Define.h:150
CategoryCooldown()
Definition: SpellPackets.h:113
std::vector< SpellHitStatus > HitStatus
Definition: SpellPackets.h:384
std::vector< uint32 > SpellID
Definition: SpellPackets.h:528
UnlearnedSpells()
Definition: SpellPackets.h:524
SetSpellModifier(OpcodeServer opcode)
Definition: SpellPackets.h:514
Definition: Opcodes.h:753
void Read() override
Definition: SpellPackets.h:71
Definition: SpellPackets.h:74
ObjectGuid VictimGUID
Definition: SpellPackets.h:1003
Optional< TargetLocation > SrcLocation
Definition: SpellPackets.h:223
ByteBuffer & operator>>(ByteBuffer &data, SpellCastVisual &visual)
Definition: CombatLogPacketsCommon.cpp:186
Definition: SpellPackets.h:281
ObjectGuid GuildGUID
Definition: SpellPackets.h:894
ResyncRunes(size_t size)
Definition: SpellPackets.h:925
std::vector< int32 > SpellID
Definition: SpellPackets.h:424
std::vector< SpellMissStatus > MissStatus
Definition: SpellPackets.h:385
CancelAura(WorldPacket &&packet)
Definition: SpellPackets.h:38
TaggedPosition< Position::XYZ > CollisionPos
Definition: SpellPackets.h:952
SpellChannelUpdate()
Definition: SpellPackets.h:825
TaggedPosition< Position::XYZ > SourceLocation
Definition: SpellPackets.h:728
Points
Definition: ScriptedEscortAI.cpp:30
Definition: Opcodes.h:1008
std::vector< ObjectGuid > HitTargets
Definition: SpellPackets.h:382
Definition: Opcodes.h:550
Definition: Opcodes.h:1748
Definition: SpellPackets.h:759
Definition: Opcodes.h:1127
PlayOrphanSpellVisual()
Definition: SpellPackets.h:723
Definition: Opcodes.h:1811
int32 SpellID
Definition: SpellPackets.h:43
ObjectGuid PetGUID
Definition: SpellPackets.h:89
CancelOrphanSpellVisual()
Definition: SpellPackets.h:690
Definition: SpellPackets.h:417
LearnedSpells()
Definition: SpellPackets.h:420
Definition: SpellPackets.h:697
TaggedPosition< Position::XYZ > FirePos
Definition: SpellPackets.h:979
Optional< int32 > Remaining
Definition: SpellPackets.h:188
ObjectGuid BeaconGUID
Definition: SpellPackets.h:366
SpellGo()
Definition: SpellPackets.h:400
Definition: Opcodes.h:1648
Definition: Opcodes.h:857
Array< SpellExtraCurrencyCost, 5 > OptionalCurrencies
Definition: SpellPackets.h:266
Definition: Opcodes.h:166
ObjectGuid Unit
Definition: SpellPackets.h:221
Definition: SpellPackets.h:645
Definition: SpellPackets.h:859
ObjectGuid Target
Definition: SpellPackets.h:727
Definition: SpellPackets.h:849
ObjectGuid CasterUnit
Definition: SpellPackets.h:463
MissileTrajectoryRequest MissileTrajectory
Definition: SpellPackets.h:262
Definition: SpellPackets.h:659
std::vector< int32 > SpellID
Definition: SpellPackets.h:551
Definition: SpellPackets.h:165
uint32 LoadingScreenID
Definition: SpellPackets.h:1016
std::vector< SpellPowerData > RemainingPower
Definition: SpellPackets.h:387
Definition: SpellPackets.h:738
Definition: SpellPackets.h:773
Definition: SpellPackets.h:352
SetSpellCharges()
Definition: SpellPackets.h:648
Action
Definition: boss_balinda.cpp:39
PetCastFailed()
Definition: SpellPackets.h:488
Definition: Opcodes.h:169
Definition: Opcodes.h:808
Definition: SpellPackets.h:807
Definition: SpellPackets.h:194
Optional< MovementInfo > MoveUpdate
Definition: SpellPackets.h:263
SpellCastData Cast
Definition: SpellPackets.h:414
std::vector< int32 > Superceded
Definition: SpellPackets.h:438
SpellCastRequest Cast
Definition: SpellPackets.h:302
Definition: Opcodes.h:1014
Definition: Opcodes.h:1459
STL namespace.
Definition: SpellPackets.h:54
PetCastSpell(WorldPacket &&packet)
Definition: SpellPackets.h:284
SpellCastVisual Visual
Definition: SpellPackets.h:259
ObjectGuid Source
Definition: SpellPackets.h:745
Definition: Opcodes.h:1009
SpellCooldownStruct()
Definition: SpellPackets.h:581
MissileTrajectoryCollision(WorldPacket &&packet)
Definition: SpellPackets.h:945
Definition: Opcodes.h:1849
ObjectGuid ClientCastID
Definition: SpellPackets.h:312
ObjectGuid TargetGUID
Definition: SpellPackets.h:803
CancelCast(WorldPacket &&packet)
Definition: SpellPackets.h:776
SpellHealPrediction Predict
Definition: SpellPackets.h:804
Definition: Opcodes.h:1829
Definition: SpellPackets.h:35
Definition: SpellPackets.h:120
ObjectGuid Transport
Definition: SpellPackets.h:747
SpellTargetData Target
Definition: SpellPackets.h:261
std::vector< int32 > SpellID
Definition: SpellPackets.h:437
SendSpellHistory()
Definition: SpellPackets.h:617
PlaySpellVisual()
Definition: SpellPackets.h:741
Definition: SpellPackets.h:212
Definition: Opcodes.h:1848
Definition: Opcodes.h:1062
ClearAllSpellCharges()
Definition: SpellPackets.h:627
ObjectGuid CastID
Definition: SpellPackets.h:467
Definition: SpellPackets.h:511
Definition: SpellPackets.h:101
SpellMissStatus(uint8 reason, uint8 reflectStatus)
Definition: SpellPackets.h:327
Optional< float > TimeMod
Definition: SpellPackets.h:189
SpellChannelStart()
Definition: SpellPackets.h:810
Definition: SpellPackets.h:521
ObjectGuid ResurrectOffererGUID
Definition: SpellPackets.h:840
Definition: Opcodes.h:1461
ObjectGuid OwnerGUID
Definition: SpellPackets.h:1036
MissileTrajectoryResult MissileTrajectory
Definition: SpellPackets.h:389
UnlearnSkill(WorldPacket &&packet)
Definition: SpellPackets.h:852
Definition: Opcodes.h:1832
ObjectGuid CasterUnit
Definition: SpellPackets.h:449
Definition: Opcodes.h:1839
Optional< ContentTuningParams > ContentTuning
Definition: SpellPackets.h:185
DispelFailed()
Definition: SpellPackets.h:998
Definition: SpellPackets.h:364
AuraUpdate()
Definition: SpellPackets.h:203
ObjectGuid CastID
Definition: SpellPackets.h:177
UseItem(WorldPacket &&packet)
Definition: SpellPackets.h:295
Optional< uint32 > unused622_1
This field is not used for anything in the client in 6.2.2.20444.
Definition: SpellPackets.h:610
Definition: SpellPackets.h:911
Definition: SpellPackets.h:442
Definition: SpellPackets.h:567
ObjectGuid CastID
Definition: SpellPackets.h:375
CreatureImmunities Immunities
Definition: SpellPackets.h:393
Definition: SpellPackets.h:624
Optional< int32 > Duration
Definition: SpellPackets.h:187
ObjectGuid ServerCastID
Definition: SpellPackets.h:313
SpellTargetData Target
Definition: SpellPackets.h:386
NotifyMissileTrajectoryCollision()
Definition: SpellPackets.h:958
std::vector< SpellModifierData > ModifierData
Definition: SpellPackets.h:508
ObjectGuid SpellClickUnitGuid
Definition: SpellPackets.h:918
CooldownEvent()
Definition: SpellPackets.h:535
Definition: Opcodes.h:1905
Definition: Opcodes.h:1059
TaggedPosition< Position::XYZ > TargetLocation
Definition: SpellPackets.h:735
Definition: Opcodes.h:1830
SpellHealPrediction Predict
Definition: SpellPackets.h:394
Optional< TargetLocation > DstLocation
Definition: SpellPackets.h:224
Definition: Packet.h:59
ObjectGuid CasterGUID
Definition: SpellPackets.h:42
Definition: SpellPackets.h:899
Definition: SpellPackets.h:1008
std::vector< AuraInfo > Auras
Definition: SpellPackets.h:209
Definition: SpellPackets.h:305
Definition: Opcodes.h:1643
MirrorImageComponentedData()
Definition: SpellPackets.h:883
Definition: SpellPackets.h:532
ObjectGuid Unit
Definition: SpellPackets.h:766
Definition: SpellPackets.h:397
SupercededSpells()
Definition: SpellPackets.h:433
ObjectGuid Item
Definition: SpellPackets.h:222
Definition: Opcodes.h:1464
Definition: SpellPackets.h:708
std::vector< SpellModifier > Modifiers
Definition: SpellPackets.h:518
Definition: Opcodes.h:699
Definition: Opcodes.h:471
CastFailed()
Definition: SpellPackets.h:473
std::vector< float > EstimatedPoints
Definition: SpellPackets.h:191
Definition: SpellPackets.h:82
Gender
Definition: SharedDefines.h:126
SpellStart()
Definition: SpellPackets.h:410
SendSpellCharges()
Definition: SpellPackets.h:670
SpellClick(WorldPacket &&packet)
Definition: SpellPackets.h:914
constexpr auto size(const C &c)
Definition: advstd.h:89
Misc
Definition: boss_garothi_worldbreaker.cpp:122
SpellCastVisual Visual
Definition: SpellPackets.h:179
Definition: Packet.h:46
ObjectGuid UnitGUID
Definition: SpellPackets.h:876
ObjectGuid CastID
Definition: SpellPackets.h:477
std::vector< uint8 > Cooldowns
Definition: SpellPackets.h:343
Definition: Opcodes.h:708
Optional< ObjectGuid > CastUnit
Definition: SpellPackets.h:186
Definition: SpellPackets.h:869
Definition: SpellPackets.h:499
Definition: Opcodes.h:1780
Array< SpellOptionalReagent, 3 > OptionalReagents
Definition: SpellPackets.h:265
Spells
Definition: PlayerAI.cpp:31
ClearTarget()
Definition: SpellPackets.h:680
int32_t int32
Definition: Define.h:148
Definition: SpellPackets.h:601
RuneData Runes
Definition: SpellPackets.h:929
Definition: SpellPackets.h:243
MissileCancel()
Definition: SpellPackets.h:1032
ObjectGuid Source
Definition: SpellPackets.h:704
uint32_t uint32
Definition: Define.h:152
Optional< SpellTargetedHealPrediction > HealPrediction
Definition: SpellPackets.h:818
uint64_t uint64
Definition: Define.h:151
Definition: Opcodes.h:817
CancelAutoRepeatSpell(WorldPacket &&packet)
Definition: SpellPackets.h:49
SpellCastRequest Cast
Definition: SpellPackets.h:278
SpellCastData Cast
Definition: SpellPackets.h:404
uint16_t uint16
Definition: Define.h:153
Definition: Opcodes.h:1112
Definition: Opcodes.h:1836
Definition: SpellPackets.h:485
Definition: SpellPackets.h:470
ObjectGuid CastID
Definition: SpellPackets.h:951
Optional< float > Orientation
Definition: SpellPackets.h:225
std::vector< int32 > FavoriteSpellID
Definition: SpellPackets.h:425
SpellCastVisual Visual
Definition: SpellPackets.h:815
CancelSpellVisualKit()
Definition: SpellPackets.h:711
Definition: SpellPackets.h:218
ClearCooldowns()
Definition: SpellPackets.h:547
CooldownEvent(bool isPet, int32 spellId)
Definition: SpellPackets.h:536
Position Location
Definition: SpellPackets.h:215
TaggedPosition< Position::XYZ > CollisionPos
Definition: SpellPackets.h:964
Definition: Opcodes.h:909
ClearSpellCharges()
Definition: SpellPackets.h:637
void Read() override
Definition: SpellPackets.h:79
Definition: Opcodes.h:1828
Definition: SpellPackets.h:922
SetActionButton(WorldPacket &&packet)
Definition: SpellPackets.h:157
Definition: Opcodes.h:1749
Definition: SpellPackets.h:667
Definition: SpellPackets.h:249
MirrorImageCreatureData()
Definition: SpellPackets.h:902
Definition: CombatLogPacketsCommon.h:98
Definition: Opcodes.h:1647
ObjectGuid CraftingNPC
Definition: SpellPackets.h:267
Definition: SpellPackets.h:555
UpdateActionButtons()
Definition: SpellPackets.h:137
Definition: Opcodes.h:162
Definition: SpellPackets.h:339
Definition: SpellPackets.h:456
UpdateMissileTrajectory(WorldPacket &&packet)
Definition: SpellPackets.h:970
Definition: AuctionHouseMgr.h:36
CancelMountAura(WorldPacket &&packet)
Definition: SpellPackets.h:77
Definition: CombatLogPacketsCommon.h:84
Definition: SpellPackets.h:579
Definition: Opcodes.h:346
ObjectGuid UnitGUID
Definition: SpellPackets.h:906
std::vector< SpellChargeEntry > Entries
Definition: SpellPackets.h:674
OpenItem(WorldPacket &&packet)
Definition: SpellPackets.h:787
Definition: Opcodes.h:1058
SpellDelayed()
Definition: SpellPackets.h:987
Definition: SpellPackets.h:932
Definition: SpellPackets.h:346
Definition: Opcodes.h:1608
ObjectGuid CasterGUID
Definition: SpellPackets.h:817
RequestCategoryCooldowns(WorldPacket &&packet)
Definition: SpellPackets.h:96
Definition: Opcodes.h:1006
SpellCastVisual Visual
Definition: SpellPackets.h:479
Definition: Opcodes.h:656
InventoryType
Definition: ItemTemplate.h:370
Definition: SpellPackets.h:677
Definition: Opcodes.h:576
ObjectGuid UnitGUID
Definition: SpellPackets.h:208
Definition: SpellPackets.h:1029
Definition: SpellPackets.h:784
ClearCooldown()
Definition: SpellPackets.h:558
Definition: SpellPackets.h:505
int32 SpellID
Definition: SpellPackets.h:541
Definition: SpellPackets.h:66
Definition: SpellPackets.h:324
ObjectGuid Transport
Definition: SpellPackets.h:214
std::string Name
Definition: SpellPackets.h:846
Definition: SpellPackets.h:430
ObjectGuid CastID
Definition: SpellPackets.h:257
Definition: SpellPackets.h:614
CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId)
Definition: SpellPackets.h:1011
SpellCastVisual Visual
Definition: SpellPackets.h:378
std::vector< uint32 > Spells
Definition: SpellPackets.h:172
Definition: SpellPackets.h:407
ObjectGuid Target
Definition: SpellPackets.h:746
Definition: SpellPackets.h:833
ModifyCooldown()
Definition: SpellPackets.h:570
Optional< int32 > MapID
Definition: SpellPackets.h:226
uint32 TeleportSpellID
Definition: SpellPackets.h:1015
Definition: Opcodes.h:1388
PlaySpellVisualKit()
Definition: SpellPackets.h:762
Definition: SpellPackets.h:154
ObjectGuid CasterUnit
Definition: SpellPackets.h:374
#define TC_GAME_API
Definition: Define.h:136
Definition: SpellPackets.h:634
ObjectGuid PetGUID
Definition: SpellPackets.h:288
TaggedPosition< Position::XYZ > TargetPosition
Definition: SpellPackets.h:748
SpellMissStatus()
Definition: SpellPackets.h:326
Definition: Opcodes.h:1902
Optional< RuneData > RemainingRunes
Definition: SpellPackets.h:388
ObjectGuid Source
Definition: SpellPackets.h:715
SpellHitStatus()
Definition: SpellPackets.h:318
Definition: PacketUtilities.h:153
Definition: Opcodes.h:164
ObjectGuid Guid
Definition: SpellPackets.h:974
Definition: SpellPackets.h:255
std::vector< Character::ChrCustomizationChoice > Customizations
Definition: SpellPackets.h:893
ResurrectRequest()
Definition: SpellPackets.h:836
Definition: SpellPackets.h:200
Definition: SpellPackets.h:271
uint8_t uint8
Definition: Define.h:154
Definition: Position.h:28
ObjectGuid CastID
Definition: SpellPackets.h:781
MountResult()
Definition: SpellPackets.h:1022
Definition: SpellPackets.h:132
Definition: Opcodes.h:1460
SpellFailedOther()
Definition: SpellPackets.h:459
Definition: ObjectGuid.h:248
Definition: SpellPackets.h:720
SpellCastRequest Cast
Definition: SpellPackets.h:289
Definition: SpellPackets.h:995
SpellHitStatus(uint8 reason)
Definition: SpellPackets.h:319
SelfRes(WorldPacket &&packet)
Definition: SpellPackets.h:862
std::vector< SpellHistoryEntry > Entries
Definition: SpellPackets.h:621
void Read() override
Definition: SpellPackets.h:51
Definition: SpellPackets.h:175
SpellCastVisual Visual
Definition: SpellPackets.h:465
std::vector< SpellWeight > Weight
Definition: SpellPackets.h:264
Definition: Opcodes.h:175
Definition: SpellPackets.h:822
CancelSpellVisual()
Definition: SpellPackets.h:700
Type
Definition: Trainer.h:32
std::string Name
Definition: SpellPackets.h:227
SpellFailure()
Definition: SpellPackets.h:445
std::array< uint64, NumActionButtons > ActionButtons
Definition: SpellPackets.h:144
Definition: Opcodes.h:1099
WorldPacket const * Write() override final
Definition: Packet.cpp:44
Definition: SpellPackets.h:371
ObjectGuid CastID
Definition: SpellPackets.h:963
Definition: Opcodes.h:1779
CancelChannelling(WorldPacket &&packet)
Definition: SpellPackets.h:57
Definition: SpellPackets.h:544
Definition: SpellPackets.h:333
SpellCastVisual Visual
Definition: SpellPackets.h:451
SpellAmmo Ammo
Definition: SpellPackets.h:390
OpcodeServer
Definition: Opcodes.h:838
Definition: SpellPackets.h:236
Definition: SpellPackets.h:589
AddRunePower()
Definition: SpellPackets.h:935
Optional< uint32 > unused622_2
This field is not used for anything in the client in 6.2.2.20444.
Definition: SpellPackets.h:611
Definition: Opcodes.h:163
Definition: Opcodes.h:1063
Optional< SpellChannelStartInterruptImmunities > InterruptImmunities
Definition: SpellPackets.h:816
Definition: Opcodes.h:1056
Definition: OptionalFwd.h:24
ObjectGuid Caster
Definition: SpellPackets.h:991
CastSpell(WorldPacket &&packet)
Definition: SpellPackets.h:274
Definition: SpellPackets.h:687
Definition: WorldPacket.h:24
std::vector< ObjectGuid > MissTargets
Definition: SpellPackets.h:383
std::vector< int32 > FavoriteSpellID
Definition: SpellPackets.h:439
ObjectGuid CasterGUID
Definition: SpellPackets.h:373
Definition: SpellPackets.h:984
Definition: Opcodes.h:1462
SendKnownSpells()
Definition: SpellPackets.h:123
Definition: Opcodes.h:1013
ObjectGuid Guid
Definition: SpellPackets.h:684
Definition: SpellPackets.h:967
ObjectGuid CasterGUID
Definition: SpellPackets.h:829
std::vector< CategoryCooldownInfo > CategoryCooldowns
Definition: SpellPackets.h:117
std::vector< TargetLocation > TargetPoints
Definition: SpellPackets.h:392
CategoryCooldownInfo(uint32 category, int32 cooldown)
Definition: SpellPackets.h:106
void Read() override
Definition: SpellPackets.cpp:21
GetMirrorImageData(WorldPacket &&packet)
Definition: SpellPackets.h:872
std::vector< float > Points
Definition: SpellPackets.h:190
ObjectGuid CastItem
Definition: SpellPackets.h:301
Definition: SpellPackets.h:46
Definition: Opcodes.h:577
uint8 Reason
Definition: SpellPackets.h:321
Definition: PacketUtilities.h:38
Optional< MovementInfo > Status
Definition: SpellPackets.h:981
ObjectGuid Target
Definition: SpellPackets.h:949
ObjectGuid OriginalCastID
Definition: SpellPackets.h:376
ObjectGuid UnitGUID
Definition: SpellPackets.h:887
Definition: SpellPackets.h:1019
TaggedPosition< Position::XYZ > ImpactPos
Definition: SpellPackets.h:980
PetCancelAura(WorldPacket &&packet)
Definition: SpellPackets.h:85