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
22#include "MovementInfo.h"
23#include "ObjectGuid.h"
24#include "Optional.h"
25#include "PacketUtilities.h"
26#include "Position.h"
27#include <array>
28
29namespace UF
30{
32}
33
34namespace WorldPackets
35{
36 namespace Spells
37 {
38 class CancelAura final : public ClientPacket
39 {
40 public:
41 CancelAura(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_AURA, std::move(packet)) { }
42
43 void Read() override;
44
47 };
48
50 {
51 public:
53
54 void Read() override { }
55 };
56
57 class CancelChannelling final : public ClientPacket
58 {
59 public:
61
62 void Read() override;
63
65 int32 Reason = 0; // 40 = /run SpellStopCasting(), 16 = movement/SpellAuraInterruptFlags::Moving, 41 = turning/SpellAuraInterruptFlags::Turning
66 // does not match SpellCastResult enum
67 };
68
69 class CancelGrowthAura final : public ClientPacket
70 {
71 public:
73
74 void Read() override { }
75 };
76
77 class CancelMountAura final : public ClientPacket
78 {
79 public:
81
82 void Read() override { }
83 };
84
86 {
87 public:
89
90 void Read() override;
91
93 };
94
95 class PetCancelAura final : public ClientPacket
96 {
97 public:
99
100 void Read() override;
101
104 };
105
106 class SendKnownSpells final : public ServerPacket
107 {
108 public:
110
111 WorldPacket const* Write() override;
112
113 bool InitialLogin = false;
114 std::vector<uint32> KnownSpells;
115 std::vector<uint32> FavoriteSpells; // tradeskill recipes
116 };
117
119 {
120 public:
121 static std::size_t constexpr NumActionButtons = 180;
122
124
125 WorldPacket const* Write() override;
126
127 std::array<uint64, NumActionButtons> ActionButtons = { };
129 /*
130 Reason can be 0, 1, 2
131 0 - Sends initial action buttons, client does not validate if we have the spell or not
132 1 - Used used after spec swaps, client validates if a spell is known.
133 2 - Clears the action bars client sided. This is sent during spec swap before unlearning and before sending the new buttons
134 */
135 };
136
137 class SetActionButton final : public ClientPacket
138 {
139 public:
141
142 void Read() override;
143
146 };
147
148 class SendUnlearnSpells final : public ServerPacket
149 {
150 public:
152
153 WorldPacket const* Write() override;
154
155 std::vector<uint32> Spells;
156 };
157
159 {
173 std::vector<float> Points;
174 std::vector<float> EstimatedPoints;
175 };
176
177 struct AuraInfo
178 {
181 };
182
183 class AuraUpdate final : public ServerPacket
184 {
185 public:
187
188 WorldPacket const* Write() override;
189
190 bool UpdateAll = false;
192 std::vector<AuraInfo> Auras;
193 };
194
196 {
199 };
200
202 {
210 std::string Name;
211 };
212
214 {
215 float Pitch = 0.0f;
216 float Speed = 0.0f;
217 };
218
220 {
224 };
225
227 {
232 };
233
235 {
238 };
239
241 {
249 std::vector<SpellWeight> Weight;
252 Array<SpellExtraCurrencyCost, 5 /*MAX_ITEM_EXT_COST_CURRENCIES*/> OptionalCurrencies;
255 int32 Misc[2] = { };
256 };
257
258 class CastSpell final : public ClientPacket
259 {
260 public:
261 CastSpell(WorldPacket&& packet) : ClientPacket(CMSG_CAST_SPELL, std::move(packet)) { }
262
263 void Read() override;
264
266 };
267
268 class PetCastSpell final : public ClientPacket
269 {
270 public:
272
273 void Read() override;
274
277 };
278
279 class UseItem final : public ClientPacket
280 {
281 public:
282 UseItem(WorldPacket&& packet) : ClientPacket(CMSG_USE_ITEM, std::move(packet)) { }
283
284 void Read() override;
285
290 };
291
292 class SpellPrepare final : public ServerPacket
293 {
294 public:
296
297 WorldPacket const* Write() override;
298
301 };
302
304 {
306 SpellHitStatus(uint8 reason) : Reason(reason) { }
307
309 };
310
312 {
314 SpellMissStatus(uint8 reason, uint8 reflectStatus) : Reason(reason), ReflectStatus(reflectStatus) { }
315
318 };
319
321 {
324 };
325
326 struct RuneData
327 {
330 std::vector<uint8> Cooldowns;
331 };
332
334 {
336 float Pitch = 0.0f;
337 };
338
340 {
343 };
344
346 {
350 };
351
353 {
363 std::vector<ObjectGuid> HitTargets;
364 std::vector<ObjectGuid> MissTargets;
365 std::vector<SpellHitStatus> HitStatus;
366 std::vector<SpellMissStatus> MissStatus;
368 std::vector<SpellPowerData> RemainingPower;
373 std::vector<TargetLocation> TargetPoints;
376 };
377
379 {
380 public:
382
383 WorldPacket const* Write() override;
384
386 };
387
388 class SpellStart final : public ServerPacket
389 {
390 public:
392
393 WorldPacket const* Write() override;
394
396 };
397
399 {
401 bool IsFavorite = false;
405 };
406
407 class LearnedSpells final : public ServerPacket
408 {
409 public:
411
412 WorldPacket const* Write() override;
413
414 std::vector<LearnedSpellInfo> ClientLearnedSpellData;
416 bool SuppressMessaging = false;
417 };
418
419 class SupercededSpells final : public ServerPacket
420 {
421 public:
423
424 WorldPacket const* Write() override;
425
426 std::vector<LearnedSpellInfo> ClientLearnedSpellData;
427 };
428
429 class SpellFailure final : public ServerPacket
430 {
431 public:
432 SpellFailure() : ServerPacket(SMSG_SPELL_FAILURE, 16 + 4 + 8 + 2 + 16) { }
433
434 WorldPacket const* Write() override;
435
441 };
442
443 class SpellFailedOther final : public ServerPacket
444 {
445 public:
447
448 WorldPacket const* Write() override;
449
455 };
456
458 {
459 public:
460 CastFailed() : ServerPacket(SMSG_CAST_FAILED, 4 + 4 + 4 + 4 + 1) { }
461
462 WorldPacket const* Write() override;
463
465 int32 SpellID = 0;
467 int32 Reason = 0;
468 int32 FailedArg1 = -1;
469 int32 FailedArg2 = -1;
470 };
471
473 {
474 public:
476
477 WorldPacket const* Write() override;
478
480 int32 SpellID = 0;
481 int32 Reason = 0;
482 int32 FailedArg1 = -1;
483 int32 FailedArg2 = -1;
484 };
485
487 {
488 float ModifierValue = 0.0f;
490 };
491
493 {
495 std::vector<SpellModifierData> ModifierData;
496 };
497
499 {
500 public:
502
503 WorldPacket const* Write() override;
504
505 std::vector<SpellModifier> Modifiers;
506 };
507
508 class UnlearnedSpells final : public ServerPacket
509 {
510 public:
512
513 WorldPacket const* Write() override;
514
515 std::vector<uint32> SpellID;
516 bool SuppressMessaging = false;
517 };
518
519 class CooldownEvent final : public ServerPacket
520 {
521 public:
523 CooldownEvent(bool isPet, int32 spellId) : ServerPacket(SMSG_COOLDOWN_EVENT, 16 + 4), IsPet(isPet), SpellID(spellId) { }
524
525 WorldPacket const* Write() override;
526
527 bool IsPet = false;
529 };
530
531 class ClearCooldowns final : public ServerPacket
532 {
533 public:
535
536 WorldPacket const* Write() override;
537
538 std::vector<int32> SpellID;
539 bool IsPet = false;
540 };
541
542 class ClearCooldown final : public ServerPacket
543 {
544 public:
546
547 WorldPacket const* Write() override;
548
549 bool IsPet = false;
551 bool ClearOnHold = false;
552 };
553
554 class ModifyCooldown final : public ServerPacket
555 {
556 public:
558
559 WorldPacket const* Write() override;
560
561 bool IsPet = false;
565 };
566
568 {
570 SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown) : SrecID(spellId), ForcedCooldown(forcedCooldown) { }
571
574 float ModRate = 1.0f;
575 };
576
578 {
579 public:
581
582 WorldPacket const* Write() override;
583
584 std::vector<SpellCooldownStruct> SpellCooldowns;
586 uint8 Flags = 0;
587 };
588
590 {
596 float ModRate = 1.0f;
597 bool OnHold = false;
600 };
601
602 class SendSpellHistory final : public ServerPacket
603 {
604 public:
606
607 WorldPacket const* Write() override;
608
609 std::vector<SpellHistoryEntry> Entries;
610 };
611
613 {
614 public:
616
617 WorldPacket const* Write() override;
618
619 bool IsPet = false;
620 };
621
622 class ClearSpellCharges final : public ServerPacket
623 {
624 public:
626
627 WorldPacket const* Write() override;
628
629 bool IsPet = false;
631 };
632
633 class SetSpellCharges final : public ServerPacket
634 {
635 public:
637
638 WorldPacket const* Write() override;
639
640 bool IsPet = false;
644 float ChargeModRate = 1.0f;
645 };
646
648 {
651 float ChargeModRate = 1.0f;
653 };
654
655 class SendSpellCharges final : public ServerPacket
656 {
657 public:
659
660 WorldPacket const* Write() override;
661
662 std::vector<SpellChargeEntry> Entries;
663 };
664
665 class ClearTarget final : public ServerPacket
666 {
667 public:
669
670 WorldPacket const* Write() override;
671
673 };
674
676 {
677 public:
679
680 WorldPacket const* Write() override;
681
683 };
684
685 class CancelSpellVisual final : public ServerPacket
686 {
687 public:
689
690 WorldPacket const* Write() override;
691
694 };
695
697 {
698 public:
700
701 WorldPacket const* Write() override;
702
705 bool MountedVisual = false;
706 };
707
709 {
710 public:
711 PlayOrphanSpellVisual() : ServerPacket(SMSG_PLAY_ORPHAN_SPELL_VISUAL, 16 + 3 * 4 + 4 + 1 + 4 + 3 * 4 + 3 * 4) { }
712
713 WorldPacket const* Write() override;
714
715 ObjectGuid Target; // Exclusive with TargetLocation
718 bool SpeedAsTime = false;
719 float TravelSpeed = 0.0f;
720 float LaunchDelay = 0.0f;
721 float MinDuration = 0.0f;
722 TaggedPosition<Position::XYZ> SourceRotation; // Vector of rotations, Orientation is z
724 };
725
726 class PlaySpellVisual final : public ServerPacket
727 {
728 public:
729 PlaySpellVisual() : ServerPacket(SMSG_PLAY_SPELL_VISUAL, 16 + 16 + 2 + 4 + 1 + 2 + 4 + 4 * 4) { }
730
731 WorldPacket const* Write() override;
732
735 ObjectGuid Transport; // Used when Target = Empty && (SpellVisual::Flags & 0x400) == 0
736 TaggedPosition<Position::XYZ> TargetPosition; // Overrides missile destination for SpellVisual::SpellVisualMissileSetID
738 float TravelSpeed = 0.0f;
742 float LaunchDelay = 0.0f;
743 float MinDuration = 0.0f;
744 bool SpeedAsTime = false;
745 };
746
747 class PlaySpellVisualKit final : public ServerPacket
748 {
749 public:
751
752 WorldPacket const* Write() override;
753
758 bool MountedVisual = false;
759 };
760
762 {
763 public:
765 SpellVisualKitID(spellVisualKitId), Delay(delay) { }
766
767 WorldPacket const* Write() override;
768
771 };
772
773 class CancelCast final : public ClientPacket
774 {
775 public:
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
793 };
794
796 {
799 };
800
802 {
805 };
806
807 class SpellChannelStart final : public ServerPacket
808 {
809 public:
811
812 WorldPacket const* Write() override;
813
820 };
821
822 class SpellChannelUpdate final : public ServerPacket
823 {
824 public:
826
827 WorldPacket const* Write() override;
828
831 };
832
833 class ResurrectRequest final : public ServerPacket
834 {
835 public:
837
838 WorldPacket const* Write() override;
839
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
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 };
878
880 {
881 public:
884
885 WorldPacket const* Write() override;
886
893 std::vector<UF::ChrCustomizationChoice> Customizations;
895
896 std::vector<int32> ItemDisplayID;
897 };
898
900 {
901 public:
903
904 WorldPacket const* Write() override;
905
909 };
910
911 class SpellClick final : public ClientPacket
912 {
913 public:
915
916 void Read() override;
917
919 bool TryAutoDismount = false;
920 };
921
922 class ResyncRunes final : public ServerPacket
923 {
924 public:
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
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
978 float Pitch = 0.0f;
979 float Speed = 0.0f;
983 };
984
985 class SpellDelayed final : public ServerPacket
986 {
987 public:
989
990 WorldPacket const* Write() override;
991
994 };
995
996 class DispelFailed final : public ServerPacket
997 {
998 public:
999 DispelFailed() : ServerPacket(SMSG_DISPEL_FAILED, 16 + 16 + 4 + 4 + 4 /* predict a single failure on average */) { }
1000
1001 WorldPacket const* Write() override;
1002
1006 std::vector<int32> FailedSpells;
1007 };
1008
1009 class CustomLoadScreen final : public ServerPacket
1010 {
1011 public:
1012 CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId) : ServerPacket(SMSG_CUSTOM_LOAD_SCREEN), TeleportSpellID(teleportSpellId), LoadingScreenID(loadingScreenId) { }
1013
1014 WorldPacket const* Write() override;
1015
1018 };
1019
1020 class MountResult final : public ServerPacket
1021 {
1022 public:
1024
1025 WorldPacket const* Write() override;
1026
1028 };
1029
1030 class MissileCancel final : public ServerPacket
1031 {
1032 public:
1034
1035 WorldPacket const* Write() override;
1036
1038 bool Reverse = false;
1040 };
1041
1043 {
1044 public:
1046
1047 void Read() override;
1048
1050 bool IsFavorite = false;
1051 };
1052
1053 class KeyboundOverride final : public ClientPacket
1054 {
1055 public:
1057
1058 void Read() override;
1059
1061 };
1062
1063 class CancelQueuedSpell final : public ClientPacket
1064 {
1065 public:
1067
1068 void Read() override { }
1069 };
1070
1072 }
1073}
1074
1075#endif // SpellPackets_h__
#define TC_GAME_API
Definition: Define.h:123
uint8_t uint8
Definition: Define.h:144
int8_t int8
Definition: Define.h:140
int32_t int32
Definition: Define.h:138
uint64_t uint64
Definition: Define.h:141
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
Spells
Definition: PlayerAI.cpp:32
Gender
Action
CombatLogServerPacket(OpcodeServer opcode, size_t initialSize=200, ConnectionType connection=CONNECTION_TYPE_DEFAULT)
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< AuraInfo > Auras
Definition: SpellPackets.h:192
CancelAura(WorldPacket &&packet)
Definition: SpellPackets.h:41
CancelCast(WorldPacket &&packet)
Definition: SpellPackets.h:776
CancelChannelling(WorldPacket &&packet)
Definition: SpellPackets.h:60
CancelGrowthAura(WorldPacket &&packet)
Definition: SpellPackets.h:72
CancelMountAura(WorldPacket &&packet)
Definition: SpellPackets.h:80
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
CastSpell(WorldPacket &&packet)
Definition: SpellPackets.h:261
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
CooldownEvent(bool isPet, int32 spellId)
Definition: SpellPackets.h:523
WorldPacket const * Write() override
CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId)
WorldPacket const * Write() override
std::vector< int32 > FailedSpells
WorldPacket const * Write() override
GetMirrorImageData(WorldPacket &&packet)
Definition: SpellPackets.h:872
KeyboundOverride(WorldPacket &&packet)
WorldPacket const * Write() override
std::vector< LearnedSpellInfo > ClientLearnedSpellData
Definition: SpellPackets.h:414
std::vector< UF::ChrCustomizationChoice > Customizations
Definition: SpellPackets.h:893
WorldPacket const * Write() override
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > CollisionPos
Definition: SpellPackets.h:952
WorldPacket const * Write() override
WorldPacket const * Write() override
OpenItem(WorldPacket &&packet)
Definition: SpellPackets.h:787
PetCancelAura(WorldPacket &&packet)
Definition: SpellPackets.h:98
PetCastSpell(WorldPacket &&packet)
Definition: SpellPackets.h:271
TaggedPosition< Position::XYZ > SourceRotation
Definition: SpellPackets.h:722
TaggedPosition< Position::XYZ > TargetLocation
Definition: SpellPackets.h:723
TaggedPosition< Position::XYZ > SourceLocation
Definition: SpellPackets.h:716
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > TargetPosition
Definition: SpellPackets.h:736
WorldPacket const * Write() override
WorldPacket const * Write() override
SelfRes(WorldPacket &&packet)
Definition: SpellPackets.h:862
WorldPacket const * Write() override
std::vector< uint32 > FavoriteSpells
Definition: SpellPackets.h:115
std::vector< SpellChargeEntry > Entries
Definition: SpellPackets.h:662
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< SpellHistoryEntry > Entries
Definition: SpellPackets.h:609
WorldPacket const * Write() override
SetActionButton(WorldPacket &&packet)
Definition: SpellPackets.h:140
WorldPacket const * Write() override
std::vector< SpellModifier > Modifiers
Definition: SpellPackets.h:505
Optional< SpellTargetedHealPrediction > HealPrediction
Definition: SpellPackets.h:818
Optional< SpellChannelStartInterruptImmunities > InterruptImmunities
Definition: SpellPackets.h:816
WorldPacket const * Write() override
WorldPacket const * Write() override
SpellClick(WorldPacket &&packet)
Definition: SpellPackets.h:914
std::vector< SpellCooldownStruct > SpellCooldowns
Definition: SpellPackets.h:584
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
SpellVisualLoadScreen(int32 spellVisualKitId, int32 delay)
Definition: SpellPackets.h:764
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< LearnedSpellInfo > ClientLearnedSpellData
Definition: SpellPackets.h:426
UnlearnSkill(WorldPacket &&packet)
Definition: SpellPackets.h:852
WorldPacket const * Write() override
std::array< uint64, NumActionButtons > ActionButtons
Definition: SpellPackets.h:127
WorldPacket const * Write() override
static std::size_t constexpr NumActionButtons
Definition: SpellPackets.h:121
TaggedPosition< Position::XYZ > ImpactPos
Definition: SpellPackets.h:981
TaggedPosition< Position::XYZ > FirePos
Definition: SpellPackets.h:980
UseItem(WorldPacket &&packet)
Definition: SpellPackets.h:282
OpcodeServer
Definition: Opcodes.h:901
@ CMSG_PET_CAST_SPELL
Definition: Opcodes.h:628
@ CMSG_GET_MIRROR_IMAGE_DATA
Definition: Opcodes.h:378
@ CMSG_CANCEL_AURA
Definition: Opcodes.h:170
@ CMSG_UPDATE_MISSILE_TRAJECTORY
Definition: Opcodes.h:874
@ CMSG_KEYBOUND_OVERRIDE
Definition: Opcodes.h:448
@ CMSG_USE_ITEM
Definition: Opcodes.h:883
@ CMSG_OPEN_ITEM
Definition: Opcodes.h:596
@ CMSG_CANCEL_GROWTH_AURA
Definition: Opcodes.h:174
@ CMSG_SELF_RES
Definition: Opcodes.h:753
@ CMSG_CANCEL_CAST
Definition: Opcodes.h:172
@ CMSG_MISSILE_TRAJECTORY_COLLISION
Definition: Opcodes.h:496
@ CMSG_SET_ACTION_BUTTON
Definition: Opcodes.h:765
@ CMSG_CANCEL_CHANNELLING
Definition: Opcodes.h:173
@ CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS
Definition: Opcodes.h:176
@ CMSG_CANCEL_AUTO_REPEAT_SPELL
Definition: Opcodes.h:171
@ CMSG_TRADE_SKILL_SET_FAVORITE
Definition: Opcodes.h:855
@ CMSG_PET_CANCEL_AURA
Definition: Opcodes.h:627
@ CMSG_CANCEL_QUEUED_SPELL
Definition: Opcodes.h:178
@ CMSG_UNLEARN_SKILL
Definition: Opcodes.h:866
@ CMSG_SPELL_CLICK
Definition: Opcodes.h:816
@ CMSG_CAST_SPELL
Definition: Opcodes.h:183
@ CMSG_CANCEL_MOUNT_AURA
Definition: Opcodes.h:177
@ SMSG_SEND_SPELL_HISTORY
Definition: Opcodes.h:1896
@ SMSG_CANCEL_ORPHAN_SPELL_VISUAL
Definition: Opcodes.h:1073
@ SMSG_SPELL_CHANNEL_UPDATE
Definition: Opcodes.h:1944
@ SMSG_SPELL_CHANNEL_START
Definition: Opcodes.h:1943
@ SMSG_PLAY_SPELL_VISUAL
Definition: Opcodes.h:1753
@ SMSG_SPELL_FAILURE
Definition: Opcodes.h:1955
@ SMSG_COOLDOWN_EVENT
Definition: Opcodes.h:1166
@ SMSG_MISSILE_CANCEL
Definition: Opcodes.h:1539
@ SMSG_PLAY_SPELL_VISUAL_KIT
Definition: Opcodes.h:1754
@ SMSG_AURA_UPDATE
Definition: Opcodes.h:977
@ SMSG_UNLEARNED_SPELLS
Definition: Opcodes.h:2020
@ SMSG_SET_SPELL_CHARGES
Definition: Opcodes.h:1927
@ SMSG_CLEAR_TARGET
Definition: Opcodes.h:1131
@ SMSG_SEND_SPELL_CHARGES
Definition: Opcodes.h:1895
@ SMSG_DISPEL_FAILED
Definition: Opcodes.h:1204
@ SMSG_MODIFY_COOLDOWN
Definition: Opcodes.h:1540
@ SMSG_SPELL_PREPARE
Definition: Opcodes.h:1966
@ SMSG_SPELL_COOLDOWN
Definition: Opcodes.h:1945
@ SMSG_SPELL_DELAYED
Definition: Opcodes.h:1947
@ SMSG_CANCEL_SPELL_VISUAL
Definition: Opcodes.h:1077
@ SMSG_CAST_FAILED
Definition: Opcodes.h:1082
@ SMSG_ADD_RUNE_POWER
Definition: Opcodes.h:924
@ SMSG_SPELL_GO
Definition: Opcodes.h:1957
@ SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION
Definition: Opcodes.h:1661
@ SMSG_CLEAR_COOLDOWN
Definition: Opcodes.h:1127
@ SMSG_CUSTOM_LOAD_SCREEN
Definition: Opcodes.h:1190
@ SMSG_PLAY_ORPHAN_SPELL_VISUAL
Definition: Opcodes.h:1749
@ SMSG_SPELL_VISUAL_LOAD_SCREEN
Definition: Opcodes.h:1968
@ SMSG_RESYNC_RUNES
Definition: Opcodes.h:1865
@ SMSG_UPDATE_ACTION_BUTTONS
Definition: Opcodes.h:2024
@ SMSG_SPELL_FAILED_OTHER
Definition: Opcodes.h:1954
@ SMSG_RESURRECT_REQUEST
Definition: Opcodes.h:1864
@ SMSG_SEND_KNOWN_SPELLS
Definition: Opcodes.h:1892
@ SMSG_SEND_UNLEARN_SPELLS
Definition: Opcodes.h:1897
@ SMSG_CLEAR_SPELL_CHARGES
Definition: Opcodes.h:1130
@ SMSG_LEARNED_SPELLS
Definition: Opcodes.h:1469
@ SMSG_CLEAR_ALL_SPELL_CHARGES
Definition: Opcodes.h:1125
@ SMSG_PET_CAST_FAILED
Definition: Opcodes.h:1711
@ SMSG_CANCEL_SPELL_VISUAL_KIT
Definition: Opcodes.h:1078
@ SMSG_SPELL_START
Definition: Opcodes.h:1967
@ SMSG_SUPERCEDED_SPELLS
Definition: Opcodes.h:1987
@ SMSG_CLEAR_COOLDOWNS
Definition: Opcodes.h:1128
@ SMSG_MIRROR_IMAGE_CREATURE_DATA
Definition: Opcodes.h:1538
@ SMSG_MOUNT_RESULT
Definition: Opcodes.h:1541
Definition: Object.h:109
constexpr std::size_t size()
Definition: UpdateField.h:796
UF::ChrCustomizationChoice ChrCustomizationChoice
ByteBuffer & operator>>(ByteBuffer &data, SpellCastVisual &visual)
STL namespace.
std::vector< float > EstimatedPoints
Definition: SpellPackets.h:174
Optional< ObjectGuid > CastUnit
Definition: SpellPackets.h:169
Optional< ContentTuningParams > ContentTuning
Definition: SpellPackets.h:168
Optional< AuraDataInfo > AuraData
Definition: SpellPackets.h:180
std::vector< uint8 > Cooldowns
Definition: SpellPackets.h:330
std::vector< ObjectGuid > HitTargets
Definition: SpellPackets.h:363
Optional< RuneData > RemainingRunes
Definition: SpellPackets.h:369
std::vector< TargetLocation > TargetPoints
Definition: SpellPackets.h:373
std::vector< SpellMissStatus > MissStatus
Definition: SpellPackets.h:366
MissileTrajectoryResult MissileTrajectory
Definition: SpellPackets.h:370
std::vector< ObjectGuid > MissTargets
Definition: SpellPackets.h:364
std::vector< SpellHitStatus > HitStatus
Definition: SpellPackets.h:365
std::vector< SpellPowerData > RemainingPower
Definition: SpellPackets.h:368
Optional< MovementInfo > MoveUpdate
Definition: SpellPackets.h:248
Array< SpellCraftingReagent, 6 > OptionalReagents
Definition: SpellPackets.h:250
Array< SpellExtraCurrencyCost, 5 > OptionalCurrencies
Definition: SpellPackets.h:252
Array< SpellCraftingReagent, 6 > RemovedModifications
Definition: SpellPackets.h:251
MissileTrajectoryRequest MissileTrajectory
Definition: SpellPackets.h:247
std::vector< SpellWeight > Weight
Definition: SpellPackets.h:249
SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown)
Definition: SpellPackets.h:570
Optional< uint32 > unused622_1
This field is not used for anything in the client in 6.2.2.20444.
Definition: SpellPackets.h:598
Optional< uint32 > unused622_2
This field is not used for anything in the client in 6.2.2.20444.
Definition: SpellPackets.h:599
SpellMissStatus(uint8 reason, uint8 reflectStatus)
Definition: SpellPackets.h:314
std::vector< SpellModifierData > ModifierData
Definition: SpellPackets.h:495
Optional< TargetLocation > SrcLocation
Definition: SpellPackets.h:206
Optional< TargetLocation > DstLocation
Definition: SpellPackets.h:207
TaggedPosition< Position::XYZ > Location
Definition: SpellPackets.h:198