TrinityCore
Loading...
Searching...
No Matches
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 TRINITYCORE_SPELL_PACKETS_H
19#define TRINITYCORE_SPELL_PACKETS_H
20
23#include "ItemPacketsCommon.h"
24#include "MovementInfo.h"
25#include "ObjectGuid.h"
26#include "Optional.h"
27#include "PacketUtilities.h"
28#include "Position.h"
29#include <array>
30
31namespace UF
32{
34}
35
36namespace WorldPackets
37{
38 namespace Spells
39 {
40 class CancelAura final : public ClientPacket
41 {
42 public:
43 explicit CancelAura(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_AURA, std::move(packet)) { }
44
45 void Read() override;
46
49 };
50
52 {
53 public:
55
56 void Read() override { }
57 };
58
59 class CancelChannelling final : public ClientPacket
60 {
61 public:
62 explicit CancelChannelling(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_CHANNELLING, std::move(packet)) { }
63
64 void Read() override;
65
67 int32 Reason = 0; // 40 = /run SpellStopCasting(), 16 = movement/SpellAuraInterruptFlags::Moving, 41 = turning/SpellAuraInterruptFlags::Turning
68 // does not match SpellCastResult enum
69 };
70
71 class CancelGrowthAura final : public ClientPacket
72 {
73 public:
74 explicit CancelGrowthAura(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_GROWTH_AURA, std::move(packet)) { }
75
76 void Read() override { }
77 };
78
79 class CancelMountAura final : public ClientPacket
80 {
81 public:
82 explicit CancelMountAura(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_MOUNT_AURA, std::move(packet)) { }
83
84 void Read() override { }
85 };
86
88 {
89 public:
91
92 void Read() override;
93
95 };
96
97 class PetCancelAura final : public ClientPacket
98 {
99 public:
100 explicit PetCancelAura(WorldPacket&& packet) : ClientPacket(CMSG_PET_CANCEL_AURA, std::move(packet)) { }
101
102 void Read() override;
103
106 };
107
108 class SendKnownSpells final : public ServerPacket
109 {
110 public:
112
113 WorldPacket const* Write() override;
114
115 bool InitialLogin = false;
116 std::vector<uint32> KnownSpells;
117 std::vector<uint32> FavoriteSpells; // tradeskill recipes
118 };
119
121 {
122 public:
123 static std::size_t constexpr NumActionButtons = 180;
124
126
127 WorldPacket const* Write() override;
128
129 std::array<uint64, NumActionButtons> ActionButtons = { };
131 /*
132 Reason can be 0, 1, 2
133 0 - Sends initial action buttons, client does not validate if we have the spell or not
134 1 - Used used after spec swaps, client validates if a spell is known.
135 2 - Clears the action bars client sided. This is sent during spec swap before unlearning and before sending the new buttons
136 */
137 };
138
139 class SetActionButton final : public ClientPacket
140 {
141 public:
142 explicit SetActionButton(WorldPacket&& packet) : ClientPacket(CMSG_SET_ACTION_BUTTON, std::move(packet)) {}
143
144 void Read() override;
145
148 };
149
150 class SendUnlearnSpells final : public ServerPacket
151 {
152 public:
154
155 WorldPacket const* Write() override;
156
157 std::vector<uint32> Spells;
158 };
159
180
186
187 class AuraUpdate final : public ServerPacket
188 {
189 public:
191
192 WorldPacket const* Write() override;
193
194 bool UpdateAll = false;
196 std::vector<AuraInfo> Auras;
197 };
198
204
218
220 {
221 float Pitch = 0.0f;
222 float Speed = 0.0f;
223 };
224
226 {
230 };
231
239
245
264
265 class CastSpell final : public ClientPacket
266 {
267 public:
268 explicit CastSpell(WorldPacket&& packet) : ClientPacket(CMSG_CAST_SPELL, std::move(packet)) { }
269
270 void Read() override;
271
273 };
274
275 class PetCastSpell final : public ClientPacket
276 {
277 public:
278 explicit PetCastSpell(WorldPacket&& packet) : ClientPacket(CMSG_PET_CAST_SPELL, std::move(packet)) { }
279
280 void Read() override;
281
284 };
285
286 class UseItem final : public ClientPacket
287 {
288 public:
289 explicit UseItem(WorldPacket&& packet) : ClientPacket(CMSG_USE_ITEM, std::move(packet)) { }
290
291 void Read() override;
292
297 };
298
299 class SpellPrepare final : public ServerPacket
300 {
301 public:
303
304 WorldPacket const* Write() override;
305
308 };
309
311 {
313 SpellHitStatus(uint8 reason) : Reason(reason) { }
314
316 };
317
319 {
321 SpellMissStatus(uint8 reason, uint8 reflectStatus) : Reason(reason), ReflectStatus(reflectStatus) { }
322
325 };
326
328 {
331 };
332
333 struct RuneData
334 {
337 std::vector<uint8> Cooldowns;
338 };
339
341 {
343 float Pitch = 0.0f;
344 };
345
347 {
350 };
351
358
385
386 class SpellStart final : public ServerPacket
387 {
388 public:
390
391 WorldPacket const* Write() override;
392
394 };
395
397 {
398 public:
399 explicit SpellGo() : CombatLog::CombatLogServerPacket(SMSG_SPELL_GO) { }
400
401 WorldPacket const* Write() override;
402
404 };
405
414
415 class LearnedSpells final : public ServerPacket
416 {
417 public:
419
420 WorldPacket const* Write() override;
421
422 std::vector<LearnedSpellInfo> ClientLearnedSpellData;
424 bool SuppressMessaging = false;
425 bool TraitGrantedByAura = false;
426 };
427
428 class SupercededSpells final : public ServerPacket
429 {
430 public:
431 explicit SupercededSpells() : ServerPacket(SMSG_SUPERCEDED_SPELLS, 4 + 4 + 4 + 4) { }
432
433 WorldPacket const* Write() override;
434
435 std::vector<LearnedSpellInfo> ClientLearnedSpellData;
436 };
437
438 class SpellFailure final : public ServerPacket
439 {
440 public:
441 explicit SpellFailure() : ServerPacket(SMSG_SPELL_FAILURE, 16 + 4 + 8 + 2 + 16 + 16) { }
442
443 WorldPacket const* Write() override;
444
451 };
452
453 class SpellFailedOther final : public ServerPacket
454 {
455 public:
456 explicit SpellFailedOther() : ServerPacket(SMSG_SPELL_FAILED_OTHER, 16 + 4 + 8 + 1 + 16 + 16) { }
457
458 WorldPacket const* Write() override;
459
466 };
467
469 {
470 public:
471 explicit CastFailed() : ServerPacket(SMSG_CAST_FAILED, 16 + 4 + 8 + 4 + 4 + 4 + 16) { }
472
473 WorldPacket const* Write() override;
474
476 int32 SpellID = 0;
478 int32 Reason = 0;
479 int32 FailedArg1 = -1;
480 int32 FailedArg2 = -1;
482 };
483
485 {
486 public:
487 explicit PetCastFailed() : ServerPacket(SMSG_PET_CAST_FAILED, 16+ 4 + 4 + 4 + 4) { }
488
489 WorldPacket const* Write() override;
490
492 int32 SpellID = 0;
493 int32 Reason = 0;
494 int32 FailedArg1 = -1;
495 int32 FailedArg2 = -1;
496 };
497
499 {
500 float ModifierValue = 0.0f;
502 };
503
505 {
507 std::vector<SpellModifierData> ModifierData;
508 };
509
511 {
512 public:
513 explicit SetSpellModifier(OpcodeServer opcode) : ServerPacket(opcode, 20) { }
514
515 WorldPacket const* Write() override;
516
517 std::vector<SpellModifier> Modifiers;
518 };
519
520 class UnlearnedSpells final : public ServerPacket
521 {
522 public:
524
525 WorldPacket const* Write() override;
526
527 std::vector<uint32> SpellID;
528 bool SuppressMessaging = false;
529 bool TraitGrantedByAura = false;
530 };
531
532 class CooldownEvent final : public ServerPacket
533 {
534 public:
536 explicit CooldownEvent(bool isPet, int32 spellId) : ServerPacket(SMSG_COOLDOWN_EVENT, 1 + 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:
558 explicit ClearCooldown() : ServerPacket(SMSG_CLEAR_COOLDOWN, 1 + 4 + 1) { }
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 bool SkipCategory = false;
578 };
579
580 class UpdateCooldown final : public ServerPacket
581 {
582 public:
584
585 WorldPacket const* Write() override;
586
588 float ModChange = 1.0f;
589 float ModRate = 1.0f;
590 };
591
593 {
595 SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown) : SrecID(spellId), ForcedCooldown(forcedCooldown) { }
596
599 float ModRate = 1.0f;
600 };
601
603 {
604 public:
605 explicit SpellCooldown() : ServerPacket(SMSG_SPELL_COOLDOWN, 4 + 16 + 1) { }
606
607 WorldPacket const* Write() override;
608
609 std::vector<SpellCooldownStruct> SpellCooldowns;
611 uint8 Flags = 0;
612 };
613
626
627 class SendSpellHistory final : public ServerPacket
628 {
629 public:
631
632 WorldPacket const* Write() override;
633
634 std::vector<SpellHistoryEntry> Entries;
635 };
636
638 {
639 public:
641
642 WorldPacket const* Write() override;
643
644 bool IsPet = false;
645 };
646
647 class ClearSpellCharges final : public ServerPacket
648 {
649 public:
651
652 WorldPacket const* Write() override;
653
654 bool IsPet = false;
656 };
657
658 class SetSpellCharges final : public ServerPacket
659 {
660 public:
661 explicit SetSpellCharges() : ServerPacket(SMSG_SET_SPELL_CHARGES, 4 + 4 + 1 + 4 + 1) { }
662
663 WorldPacket const* Write() override;
664
665 bool IsPet = false;
669 float ChargeModRate = 1.0f;
670 };
671
673 {
674 public:
676
677 WorldPacket const* Write() override;
678
680 float ModChange = 1.0f;
681 float ModRate = 1.0f;
682 bool Snapshot = false;
683 };
684
692
693 class SendSpellCharges final : public ServerPacket
694 {
695 public:
697
698 WorldPacket const* Write() override;
699
700 std::vector<SpellChargeEntry> Entries;
701 };
702
703 class ClearTarget final : public ServerPacket
704 {
705 public:
707
708 WorldPacket const* Write() override;
709
711 };
712
714 {
715 public:
717
718 WorldPacket const* Write() override;
719
721 };
722
723 class CancelSpellVisual final : public ServerPacket
724 {
725 public:
727
728 WorldPacket const* Write() override;
729
732 };
733
735 {
736 public:
738
739 WorldPacket const* Write() override;
740
743 bool MountedVisual = false;
744 };
745
747 {
748 public:
749 explicit PlayOrphanSpellVisual() : ServerPacket(SMSG_PLAY_ORPHAN_SPELL_VISUAL, 16 + 3 * 4 + 4 + 1 + 4 + 3 * 4 + 3 * 4) { }
750
751 WorldPacket const* Write() override;
752
753 ObjectGuid Target; // Exclusive with TargetLocation
757 bool SpeedAsTime = false;
758 float TravelSpeed = 0.0f;
759 float LaunchDelay = 0.0f;
760 float MinDuration = 0.0f;
761 TaggedPosition<Position::XYZ> SourceRotation; // Vector of rotations, Orientation is z
763 };
764
765 class PlaySpellVisual final : public ServerPacket
766 {
767 public:
768 explicit PlaySpellVisual() : ServerPacket(SMSG_PLAY_SPELL_VISUAL, 16 + 16 + 2 + 4 + 1 + 2 + 4 + 4 * 4) { }
769
770 WorldPacket const* Write() override;
771
774 ObjectGuid Transport; // Used when Target = Empty && (SpellVisual::Flags & 0x400) == 0
775 TaggedPosition<Position::XYZ> TargetPosition; // Overrides missile destination for SpellVisual::SpellVisualMissileSetID
777 float TravelSpeed = 0.0f;
781 float LaunchDelay = 0.0f;
782 float MinDuration = 0.0f;
783 bool SpeedAsTime = false;
784 };
785
786 class PlaySpellVisualKit final : public ServerPacket
787 {
788 public:
790
791 WorldPacket const* Write() override;
792
797 bool MountedVisual = false;
798 };
799
801 {
802 public:
804 SpellVisualKitID(spellVisualKitId), Delay(delay) { }
805
806 WorldPacket const* Write() override;
807
810 };
811
812 class CancelCast final : public ClientPacket
813 {
814 public:
815 explicit CancelCast(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_CAST, std::move(packet)) { }
816
817 void Read() override;
818
821 };
822
823 class OpenItem final : public ClientPacket
824 {
825 public:
826 explicit OpenItem(WorldPacket&& packet) : ClientPacket(CMSG_OPEN_ITEM, std::move(packet)) { }
827
828 void Read() override;
829
832 };
833
839
845
860
861 class SpellChannelUpdate final : public ServerPacket
862 {
863 public:
865
866 WorldPacket const* Write() override;
867
871 };
872
892
893 class SpellEmpowerUpdate final : public ServerPacket
894 {
895 public:
896 explicit SpellEmpowerUpdate() : ServerPacket(SMSG_SPELL_EMPOWER_UPDATE, 16 + 16 + 4 + 4 + 1) { }
897
898 WorldPacket const* Write() override;
899
903 std::vector<Duration<Milliseconds, uint32>> StageDurations;
906 };
907
909 {
910 public:
912
913 void Read() override;
914
916 };
917
919 {
920 public:
922
923 void Read() override;
924
926 };
927
929 {
930 public:
932
933 void Read() override;
934
936 };
937
939 {
940 public:
942
943 WorldPacket const* Write() override;
944
948 };
949
950 class ResurrectRequest final : public ServerPacket
951 {
952 public:
953 explicit ResurrectRequest() : ServerPacket(SMSG_RESURRECT_REQUEST, 16 + 4 + 4 + 4 + 1) { }
954
955 WorldPacket const* Write() override;
956
961 bool UseTimer = false;
962 bool Sickness = false;
963 std::string Name;
964 };
965
966 class UnlearnSkill final : public ClientPacket
967 {
968 public:
969 explicit UnlearnSkill(WorldPacket&& packet) : ClientPacket(CMSG_UNLEARN_SKILL, std::move(packet)) { }
970
971 void Read() override;
972
974 };
975
976 class SelfRes final : public ClientPacket
977 {
978 public:
979 explicit SelfRes(WorldPacket&& packet) : ClientPacket(CMSG_SELF_RES, std::move(packet)) { }
980
981 void Read() override;
982
984 };
985
986 class GetMirrorImageData final : public ClientPacket
987 {
988 public:
990
991 void Read() override;
992
994 };
995
997 {
998 public:
1001
1002 WorldPacket const* Write() override;
1003
1011 std::vector<UF::ChrCustomizationChoice> Customizations;
1013
1014 std::vector<int32> ItemDisplayID;
1015 };
1016
1018 {
1019 public:
1021
1022 WorldPacket const* Write() override;
1023
1027 };
1028
1029 class SpellClick final : public ClientPacket
1030 {
1031 public:
1032 explicit SpellClick(WorldPacket&& packet) : ClientPacket(CMSG_SPELL_CLICK, std::move(packet)) { }
1033
1034 void Read() override;
1035
1037 bool TryAutoDismount = false;
1038 };
1039
1040 class ResyncRunes final : public ServerPacket
1041 {
1042 public:
1043 explicit ResyncRunes(size_t size) : ServerPacket(SMSG_RESYNC_RUNES, 1 + 1 + 4 + size) { }
1044
1045 WorldPacket const* Write() override;
1046
1048 };
1049
1050 class AddRunePower final : public ServerPacket
1051 {
1052 public:
1054
1055 WorldPacket const* Write() override;
1056
1058 };
1059
1072
1084
1102
1103 class UpdateAuraVisual final : public ClientPacket
1104 {
1105 public:
1107
1108 void Read() override;
1109
1113 };
1114
1115 class SpellDelayed final : public ServerPacket
1116 {
1117 public:
1119
1120 WorldPacket const* Write() override;
1121
1124 };
1125
1126 class DispelFailed final : public ServerPacket
1127 {
1128 public:
1129 explicit DispelFailed() : ServerPacket(SMSG_DISPEL_FAILED, 16 + 16 + 4 + 4 + 4 /* predict a single failure on average */) { }
1130
1131 WorldPacket const* Write() override;
1132
1136 std::vector<int32> FailedSpells;
1137 };
1138
1139 class CustomLoadScreen final : public ServerPacket
1140 {
1141 public:
1142 explicit CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId) : ServerPacket(SMSG_CUSTOM_LOAD_SCREEN, 4 + 4),
1143 TeleportSpellID(teleportSpellId), LoadingScreenID(loadingScreenId) { }
1144
1145 WorldPacket const* Write() override;
1146
1149 };
1150
1151 class MountResult final : public ServerPacket
1152 {
1153 public:
1155
1156 WorldPacket const* Write() override;
1157
1159 };
1160
1162 {
1163 public:
1165 {
1167 Failure = 1
1169
1171
1172 WorldPacket const* Write() override;
1173
1177 };
1178
1179 class MissileCancel final : public ServerPacket
1180 {
1181 public:
1183
1184 WorldPacket const* Write() override;
1185
1187 bool Reverse = false;
1189 };
1190
1192 {
1193 public:
1195
1196 void Read() override;
1197
1199 bool IsFavorite = false;
1200 };
1201
1202 class KeyboundOverride final : public ClientPacket
1203 {
1204 public:
1205 explicit KeyboundOverride(WorldPacket&& packet) : ClientPacket(CMSG_KEYBOUND_OVERRIDE, std::move(packet)) { }
1206
1207 void Read() override;
1208
1210 };
1211
1212 class CancelQueuedSpell final : public ClientPacket
1213 {
1214 public:
1216
1217 void Read() override { }
1218 };
1219
1221 }
1222}
1223
1224#endif // TRINITYCORE_SPELL_PACKETS_H
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int8_t int8
Definition Define.h:152
int32_t int32
Definition Define.h:150
uint64_t uint64
Definition Define.h:153
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
OpcodeServer
Definition Opcodes.h:1085
@ SMSG_SEND_SPELL_HISTORY
Definition Opcodes.h:2265
@ SMSG_SPELL_EMPOWER_UPDATE
Definition Opcodes.h:2329
@ SMSG_CANCEL_ORPHAN_SPELL_VISUAL
Definition Opcodes.h:1270
@ SMSG_SPELL_CHANNEL_UPDATE
Definition Opcodes.h:2322
@ SMSG_SPELL_CHANNEL_START
Definition Opcodes.h:2321
@ SMSG_PLAY_SPELL_VISUAL
Definition Opcodes.h:2114
@ SMSG_SPELL_FAILURE
Definition Opcodes.h:2333
@ SMSG_COOLDOWN_EVENT
Definition Opcodes.h:1375
@ SMSG_SPELL_EMPOWER_START
Definition Opcodes.h:2328
@ SMSG_MISSILE_CANCEL
Definition Opcodes.h:1850
@ SMSG_PLAY_SPELL_VISUAL_KIT
Definition Opcodes.h:2115
@ SMSG_AURA_UPDATE
Definition Opcodes.h:1171
@ SMSG_UNLEARNED_SPELLS
Definition Opcodes.h:2408
@ SMSG_SET_SPELL_CHARGES
Definition Opcodes.h:2299
@ SMSG_CLEAR_TARGET
Definition Opcodes.h:1340
@ SMSG_SEND_SPELL_CHARGES
Definition Opcodes.h:2264
@ SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN
Definition Opcodes.h:2419
@ SMSG_DISPEL_FAILED
Definition Opcodes.h:1417
@ SMSG_MODIFY_COOLDOWN
Definition Opcodes.h:1851
@ SMSG_SPELL_PREPARE
Definition Opcodes.h:2344
@ SMSG_SPELL_COOLDOWN
Definition Opcodes.h:2323
@ SMSG_SPELL_DELAYED
Definition Opcodes.h:2325
@ SMSG_CANCEL_SPELL_VISUAL
Definition Opcodes.h:1274
@ SMSG_CAST_FAILED
Definition Opcodes.h:1279
@ SMSG_APPLY_MOUNT_EQUIPMENT_RESULT
Definition Opcodes.h:1133
@ SMSG_ADD_RUNE_POWER
Definition Opcodes.h:1122
@ SMSG_SPELL_GO
Definition Opcodes.h:2335
@ SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION
Definition Opcodes.h:2017
@ SMSG_CLEAR_COOLDOWN
Definition Opcodes.h:1335
@ SMSG_CUSTOM_LOAD_SCREEN
Definition Opcodes.h:1402
@ SMSG_PLAY_ORPHAN_SPELL_VISUAL
Definition Opcodes.h:2110
@ SMSG_SPELL_VISUAL_LOAD_SCREEN
Definition Opcodes.h:2346
@ SMSG_RESYNC_RUNES
Definition Opcodes.h:2233
@ SMSG_UPDATE_ACTION_BUTTONS
Definition Opcodes.h:2414
@ SMSG_UPDATE_COOLDOWN
Definition Opcodes.h:2420
@ SMSG_SPELL_FAILED_OTHER
Definition Opcodes.h:2332
@ SMSG_RESURRECT_REQUEST
Definition Opcodes.h:2232
@ SMSG_SEND_KNOWN_SPELLS
Definition Opcodes.h:2261
@ SMSG_SEND_UNLEARN_SPELLS
Definition Opcodes.h:2266
@ SMSG_CLEAR_SPELL_CHARGES
Definition Opcodes.h:1339
@ SMSG_LEARNED_SPELLS
Definition Opcodes.h:1773
@ SMSG_CLEAR_ALL_SPELL_CHARGES
Definition Opcodes.h:1333
@ SMSG_PET_CAST_FAILED
Definition Opcodes.h:2069
@ SMSG_CANCEL_SPELL_VISUAL_KIT
Definition Opcodes.h:1275
@ SMSG_SPELL_START
Definition Opcodes.h:2345
@ SMSG_SUPERCEDED_SPELLS
Definition Opcodes.h:2365
@ SMSG_CLEAR_COOLDOWNS
Definition Opcodes.h:1336
@ SMSG_MIRROR_IMAGE_CREATURE_DATA
Definition Opcodes.h:1848
@ SMSG_MOUNT_RESULT
Definition Opcodes.h:1853
@ SMSG_SPELL_EMPOWER_SET_STAGE
Definition Opcodes.h:2327
@ CMSG_PET_CAST_SPELL
Definition Opcodes.h:749
@ CMSG_GET_MIRROR_IMAGE_DATA
Definition Opcodes.h:392
@ CMSG_CANCEL_AURA
Definition Opcodes.h:164
@ CMSG_UPDATE_MISSILE_TRAJECTORY
Definition Opcodes.h:1020
@ CMSG_KEYBOUND_OVERRIDE
Definition Opcodes.h:519
@ CMSG_USE_ITEM
Definition Opcodes.h:1029
@ CMSG_UPDATE_SPELL_VISUAL
Definition Opcodes.h:1022
@ CMSG_OPEN_ITEM
Definition Opcodes.h:714
@ CMSG_CANCEL_GROWTH_AURA
Definition Opcodes.h:168
@ CMSG_SELF_RES
Definition Opcodes.h:885
@ CMSG_CANCEL_CAST
Definition Opcodes.h:166
@ CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT
Definition Opcodes.h:910
@ CMSG_MISSILE_TRAJECTORY_COLLISION
Definition Opcodes.h:582
@ CMSG_SET_ACTION_BUTTON
Definition Opcodes.h:898
@ CMSG_SPELL_EMPOWER_RELEASE
Definition Opcodes.h:957
@ CMSG_CANCEL_CHANNELLING
Definition Opcodes.h:167
@ CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS
Definition Opcodes.h:170
@ CMSG_CANCEL_AUTO_REPEAT_SPELL
Definition Opcodes.h:165
@ CMSG_TRADE_SKILL_SET_FAVORITE
Definition Opcodes.h:996
@ CMSG_SPELL_EMPOWER_RESTART
Definition Opcodes.h:958
@ CMSG_PET_CANCEL_AURA
Definition Opcodes.h:748
@ CMSG_CANCEL_QUEUED_SPELL
Definition Opcodes.h:172
@ CMSG_UNLEARN_SKILL
Definition Opcodes.h:1012
@ CMSG_SPELL_CLICK
Definition Opcodes.h:956
@ CMSG_CAST_SPELL
Definition Opcodes.h:177
@ CMSG_CANCEL_MOUNT_AURA
Definition Opcodes.h:171
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
CancelAura(WorldPacket &&packet)
CancelCast(WorldPacket &&packet)
CancelChannelling(WorldPacket &&packet)
CancelGrowthAura(WorldPacket &&packet)
CancelMountAura(WorldPacket &&packet)
WorldPacket const * Write() override
WorldPacket const * Write() override
ObjectGuid FailedBy
Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3....
CastSpell(WorldPacket &&packet)
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)
WorldPacket const * Write() override
CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId)
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< LearnedSpellInfo > ClientLearnedSpellData
std::vector< UF::ChrCustomizationChoice > Customizations
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > CollisionPos
WorldPacket const * Write() override
WorldPacket const * Write() override
OpenItem(WorldPacket &&packet)
PetCancelAura(WorldPacket &&packet)
PetCastSpell(WorldPacket &&packet)
TaggedPosition< Position::XYZ > SourceRotation
TaggedPosition< Position::XYZ > TargetLocation
TaggedPosition< Position::XYZ > SourceLocation
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > TargetPosition
WorldPacket const * Write() override
WorldPacket const * Write() override
SelfRes(WorldPacket &&packet)
WorldPacket const * Write() override
std::vector< SpellChargeEntry > Entries
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< SpellHistoryEntry > Entries
WorldPacket const * Write() override
SetActionButton(WorldPacket &&packet)
WorldPacket const * Write() override
std::vector< SpellModifier > Modifiers
Optional< SpellTargetedHealPrediction > HealPrediction
Optional< SpellChannelStartInterruptImmunities > InterruptImmunities
WorldPacket const * Write() override
ObjectGuid FailedBy
Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3....
WorldPacket const * Write() override
SpellClick(WorldPacket &&packet)
std::vector< SpellCooldownStruct > SpellCooldowns
WorldPacket const * Write() override
WorldPacket const * Write() override
Optional< SpellTargetedHealPrediction > HealPrediction
Duration< Milliseconds, uint32 > EmpowerDuration
Duration< Milliseconds, uint32 > MinHoldTime
std::vector< Duration< Milliseconds, uint32 > > StageDurations
std::vector< ObjectGuid > Targets
Optional< SpellChannelStartInterruptImmunities > InterruptImmunities
Duration< Milliseconds, uint32 > HoldAtMaxTime
WorldPacket const * Write() override
ObjectGuid FailedBy
Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3....
std::vector< Duration< Milliseconds, uint32 > > StageDurations
Duration< Milliseconds, int32 > TimeRemaining
WorldPacket const * Write() override
ObjectGuid FailedBy
Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3....
WorldPacket const * Write() override
ObjectGuid FailedBy
Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT TODO: port commit from 3....
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
SpellVisualLoadScreen(int32 spellVisualKitId, int32 delay)
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< LearnedSpellInfo > ClientLearnedSpellData
UnlearnSkill(WorldPacket &&packet)
WorldPacket const * Write() override
std::array< uint64, NumActionButtons > ActionButtons
WorldPacket const * Write() override
static std::size_t constexpr NumActionButtons
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > ImpactPos
TaggedPosition< Position::XYZ > FirePos
UseItem(WorldPacket &&packet)
UF::ChrCustomizationChoice ChrCustomizationChoice
ByteBuffer & operator>>(ByteBuffer &data, SpellCastVisual &visual)
STL namespace.
std::vector< float > EstimatedPoints
Optional< ObjectGuid > CastItem
TaggedPosition< Position::XYZ > DstLocation
Optional< ObjectGuid > CastUnit
Optional< ContentTuningParams > ContentTuning
Optional< AuraDataInfo > AuraData
std::vector< uint8 > Cooldowns
std::vector< ObjectGuid > HitTargets
Optional< RuneData > RemainingRunes
std::vector< TargetLocation > TargetPoints
std::vector< SpellMissStatus > MissStatus
MissileTrajectoryResult MissileTrajectory
std::vector< ObjectGuid > MissTargets
std::vector< SpellHitStatus > HitStatus
std::vector< SpellPowerData > RemainingPower
Optional< MovementInfo > MoveUpdate
Array< SpellCraftingReagent, 6 > CraftingReagents
MissileTrajectoryRequest MissileTrajectory
Array< SpellCraftingReagent, 6 > RemovedReagents
std::vector< SpellWeight > Weight
Array< SpellExtraCurrencyCost, 5 > ExtraCurrencyCosts
SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown)
Crafting::CraftingReagentBase Reagent
Optional< int32 > CategoryRecoveryTimeStartOffset
SpellMissStatus(uint8 reason, uint8 reflectStatus)
std::vector< SpellModifierData > ModifierData
Optional< TargetLocation > SrcLocation
Optional< TargetLocation > DstLocation
TaggedPosition< Position::XYZ > Location