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
265
266 class CastSpell final : public ClientPacket
267 {
268 public:
269 explicit CastSpell(WorldPacket&& packet) : ClientPacket(CMSG_CAST_SPELL, std::move(packet)) { }
270
271 void Read() override;
272
274 };
275
276 class PetCastSpell final : public ClientPacket
277 {
278 public:
279 explicit PetCastSpell(WorldPacket&& packet) : ClientPacket(CMSG_PET_CAST_SPELL, std::move(packet)) { }
280
281 void Read() override;
282
285 };
286
287 class UseItem final : public ClientPacket
288 {
289 public:
290 explicit UseItem(WorldPacket&& packet) : ClientPacket(CMSG_USE_ITEM, std::move(packet)) { }
291
292 void Read() override;
293
298 };
299
300 class SpellPrepare final : public ServerPacket
301 {
302 public:
304
305 WorldPacket const* Write() override;
306
309 };
310
312 {
314 SpellHitStatus(uint8 reason) : Reason(reason) { }
315
317 };
318
320 {
322 SpellMissStatus(uint8 reason, uint8 reflectStatus) : Reason(reason), ReflectStatus(reflectStatus) { }
323
326 };
327
329 {
332 };
333
334 struct RuneData
335 {
338 std::vector<uint8> Cooldowns;
339 };
340
342 {
344 float Pitch = 0.0f;
345 };
346
348 {
351 };
352
359
386
387 class SpellStart final : public ServerPacket
388 {
389 public:
391
392 WorldPacket const* Write() override;
393
395 };
396
398 {
399 public:
400 explicit SpellGo() : CombatLog::CombatLogServerPacket(SMSG_SPELL_GO) { }
401
402 WorldPacket const* Write() override;
403
405 };
406
415
416 class LearnedSpells final : public ServerPacket
417 {
418 public:
420
421 WorldPacket const* Write() override;
422
423 std::vector<LearnedSpellInfo> ClientLearnedSpellData;
426 bool SuppressMessaging = false;
427 bool TraitGrantedByAura = false;
428 };
429
430 class SupercededSpells final : public ServerPacket
431 {
432 public:
433 explicit SupercededSpells() : ServerPacket(SMSG_SUPERCEDED_SPELLS, 4 + 4 + 4 + 4) { }
434
435 WorldPacket const* Write() override;
436
437 std::vector<LearnedSpellInfo> ClientLearnedSpellData;
438 };
439
440 class SpellFailure final : public ServerPacket
441 {
442 public:
443 explicit SpellFailure() : ServerPacket(SMSG_SPELL_FAILURE, 16 + 4 + 8 + 2 + 16 + 16) { }
444
445 WorldPacket const* Write() override;
446
453 };
454
455 class SpellFailedOther final : public ServerPacket
456 {
457 public:
458 explicit SpellFailedOther() : ServerPacket(SMSG_SPELL_FAILED_OTHER, 16 + 4 + 8 + 1 + 16 + 16) { }
459
460 WorldPacket const* Write() override;
461
468 };
469
471 {
472 public:
473 explicit CastFailed() : ServerPacket(SMSG_CAST_FAILED, 16 + 4 + 8 + 4 + 4 + 4 + 16) { }
474
475 WorldPacket const* Write() override;
476
478 int32 SpellID = 0;
480 int32 Reason = 0;
481 int32 FailedArg1 = -1;
482 int32 FailedArg2 = -1;
484 };
485
487 {
488 public:
489 explicit PetCastFailed() : ServerPacket(SMSG_PET_CAST_FAILED, 16+ 4 + 4 + 4 + 4) { }
490
491 WorldPacket const* Write() override;
492
494 int32 SpellID = 0;
495 int32 Reason = 0;
496 int32 FailedArg1 = -1;
497 int32 FailedArg2 = -1;
498 };
499
501 {
502 float ModifierValue = 0.0f;
504 };
505
507 {
509 std::vector<SpellModifierData> ModifierData;
510 };
511
513 {
514 public:
515 explicit SetSpellModifier(OpcodeServer opcode) : ServerPacket(opcode, 20) { }
516
517 WorldPacket const* Write() override;
518
519 std::vector<SpellModifier> Modifiers;
520 };
521
522 class UnlearnedSpells final : public ServerPacket
523 {
524 public:
526
527 WorldPacket const* Write() override;
528
529 std::vector<uint32> SpellID;
530 bool SuppressMessaging = false;
531 bool TraitGrantedByAura = false;
532 };
533
534 class CooldownEvent final : public ServerPacket
535 {
536 public:
538 explicit CooldownEvent(bool isPet, int32 spellId) : ServerPacket(SMSG_COOLDOWN_EVENT, 1 + 4), IsPet(isPet), SpellID(spellId) { }
539
540 WorldPacket const* Write() override;
541
542 bool IsPet = false;
544 };
545
546 class ClearCooldowns final : public ServerPacket
547 {
548 public:
550
551 WorldPacket const* Write() override;
552
553 std::vector<int32> SpellID;
554 bool IsPet = false;
555 };
556
557 class ClearCooldown final : public ServerPacket
558 {
559 public:
560 explicit ClearCooldown() : ServerPacket(SMSG_CLEAR_COOLDOWN, 1 + 4 + 1) { }
561
562 WorldPacket const* Write() override;
563
564 bool IsPet = false;
566 bool ClearOnHold = false;
567 };
568
569 class ModifyCooldown final : public ServerPacket
570 {
571 public:
573
574 WorldPacket const* Write() override;
575
576 bool IsPet = false;
577 bool SkipCategory = false;
580 };
581
582 class UpdateCooldown final : public ServerPacket
583 {
584 public:
586
587 WorldPacket const* Write() override;
588
590 float ModChange = 1.0f;
591 float ModRate = 1.0f;
592 };
593
595 {
597 SpellCooldownStruct(uint32 spellId, uint32 forcedCooldown) : SrecID(spellId), ForcedCooldown(forcedCooldown) { }
598
601 float ModRate = 1.0f;
602 };
603
605 {
606 public:
607 explicit SpellCooldown() : ServerPacket(SMSG_SPELL_COOLDOWN, 4 + 16 + 1) { }
608
609 WorldPacket const* Write() override;
610
611 std::vector<SpellCooldownStruct> SpellCooldowns;
613 uint8 Flags = 0;
614 };
615
628
629 class SendSpellHistory final : public ServerPacket
630 {
631 public:
633
634 WorldPacket const* Write() override;
635
636 std::vector<SpellHistoryEntry> Entries;
637 };
638
640 {
641 public:
643
644 WorldPacket const* Write() override;
645
646 bool IsPet = false;
647 };
648
649 class ClearSpellCharges final : public ServerPacket
650 {
651 public:
653
654 WorldPacket const* Write() override;
655
656 bool IsPet = false;
658 };
659
660 class SetSpellCharges final : public ServerPacket
661 {
662 public:
663 explicit SetSpellCharges() : ServerPacket(SMSG_SET_SPELL_CHARGES, 4 + 4 + 1 + 4 + 1) { }
664
665 WorldPacket const* Write() override;
666
667 bool IsPet = false;
671 float ChargeModRate = 1.0f;
672 };
673
675 {
676 public:
678
679 WorldPacket const* Write() override;
680
682 float ModChange = 1.0f;
683 float ModRate = 1.0f;
684 bool Snapshot = false;
685 };
686
694
695 class SendSpellCharges final : public ServerPacket
696 {
697 public:
699
700 WorldPacket const* Write() override;
701
702 std::vector<SpellChargeEntry> Entries;
703 };
704
705 class ClearTarget final : public ServerPacket
706 {
707 public:
709
710 WorldPacket const* Write() override;
711
713 };
714
716 {
717 public:
719
720 WorldPacket const* Write() override;
721
723 };
724
725 class CancelSpellVisual final : public ServerPacket
726 {
727 public:
729
730 WorldPacket const* Write() override;
731
734 };
735
737 {
738 public:
740
741 WorldPacket const* Write() override;
742
745 bool MountedVisual = false;
746 };
747
749 {
750 public:
751 explicit PlayOrphanSpellVisual() : ServerPacket(SMSG_PLAY_ORPHAN_SPELL_VISUAL, 16 + 3 * 4 + 4 + 1 + 4 + 3 * 4 + 3 * 4) { }
752
753 WorldPacket const* Write() override;
754
755 ObjectGuid Target; // Exclusive with TargetLocation
759 bool SpeedAsTime = false;
760 float TravelSpeed = 0.0f;
761 float LaunchDelay = 0.0f;
762 float MinDuration = 0.0f;
763 TaggedPosition<Position::XYZ> SourceRotation; // Vector of rotations, Orientation is z
765 };
766
767 class PlaySpellVisual final : public ServerPacket
768 {
769 public:
770 explicit PlaySpellVisual() : ServerPacket(SMSG_PLAY_SPELL_VISUAL, 16 + 16 + 2 + 4 + 1 + 2 + 4 + 4 * 4) { }
771
772 WorldPacket const* Write() override;
773
776 ObjectGuid Transport; // Used when Target = Empty && (SpellVisual::Flags & 0x400) == 0
777 TaggedPosition<Position::XYZ> TargetPosition; // Overrides missile destination for SpellVisual::SpellVisualMissileSetID
779 float TravelSpeed = 0.0f;
783 float LaunchDelay = 0.0f;
784 float MinDuration = 0.0f;
785 bool SpeedAsTime = false;
786 };
787
788 class PlaySpellVisualKit final : public ServerPacket
789 {
790 public:
792
793 WorldPacket const* Write() override;
794
799 bool MountedVisual = false;
800 };
801
803 {
804 public:
806 SpellVisualKitID(spellVisualKitId), Duration(duration) { }
807
808 WorldPacket const* Write() override;
809
813 bool Unknown_1210 = false;
814 };
815
816 class CancelCast final : public ClientPacket
817 {
818 public:
819 explicit CancelCast(WorldPacket&& packet) : ClientPacket(CMSG_CANCEL_CAST, std::move(packet)) { }
820
821 void Read() override;
822
825 };
826
827 class OpenItem final : public ClientPacket
828 {
829 public:
830 explicit OpenItem(WorldPacket&& packet) : ClientPacket(CMSG_OPEN_ITEM, std::move(packet)) { }
831
832 void Read() override;
833
836 };
837
843
849
864
865 class SpellChannelUpdate final : public ServerPacket
866 {
867 public:
869
870 WorldPacket const* Write() override;
871
875 };
876
896
897 class SpellEmpowerUpdate final : public ServerPacket
898 {
899 public:
900 explicit SpellEmpowerUpdate() : ServerPacket(SMSG_SPELL_EMPOWER_UPDATE, 16 + 16 + 4 + 4 + 1) { }
901
902 WorldPacket const* Write() override;
903
907 std::vector<Duration<Milliseconds, uint32>> StageDurations;
910 };
911
913 {
914 public:
916
917 void Read() override;
918
920 };
921
923 {
924 public:
926
927 void Read() override;
928
930 };
931
933 {
934 public:
936
937 void Read() override;
938
940 };
941
943 {
944 public:
946
947 WorldPacket const* Write() override;
948
952 };
953
954 class ResurrectRequest final : public ServerPacket
955 {
956 public:
957 explicit ResurrectRequest() : ServerPacket(SMSG_RESURRECT_REQUEST, 16 + 4 + 4 + 4 + 1) { }
958
959 WorldPacket const* Write() override;
960
965 bool UseTimer = false;
966 bool Sickness = false;
967 std::string Name;
968 };
969
970 class UnlearnSkill final : public ClientPacket
971 {
972 public:
973 explicit UnlearnSkill(WorldPacket&& packet) : ClientPacket(CMSG_UNLEARN_SKILL, std::move(packet)) { }
974
975 void Read() override;
976
978 };
979
980 class SelfRes final : public ClientPacket
981 {
982 public:
983 explicit SelfRes(WorldPacket&& packet) : ClientPacket(CMSG_SELF_RES, std::move(packet)) { }
984
985 void Read() override;
986
988 };
989
990 class GetMirrorImageData final : public ClientPacket
991 {
992 public:
994
995 void Read() override;
996
999 };
1000
1002 {
1003 public:
1004 explicit MirrorImageComponentedData();
1006
1007 WorldPacket const* Write() override;
1008
1012 float DisplayScale = 1.0f;
1016 std::vector<UF::ChrCustomizationChoice> Customizations;
1018
1019 std::vector<int32> ItemDisplayID;
1020 };
1021
1023 {
1024 public:
1026
1027 WorldPacket const* Write() override;
1028
1032 };
1033
1034 class SpellClick final : public ClientPacket
1035 {
1036 public:
1037 explicit SpellClick(WorldPacket&& packet) : ClientPacket(CMSG_SPELL_CLICK, std::move(packet)) { }
1038
1039 void Read() override;
1040
1042 bool TryAutoDismount = false;
1043 };
1044
1045 class ResyncRunes final : public ServerPacket
1046 {
1047 public:
1048 explicit ResyncRunes(size_t size) : ServerPacket(SMSG_RESYNC_RUNES, 1 + 1 + 4 + size) { }
1049
1050 WorldPacket const* Write() override;
1051
1053 };
1054
1055 class AddRunePower final : public ServerPacket
1056 {
1057 public:
1059
1060 WorldPacket const* Write() override;
1061
1063 };
1064
1077
1089
1107
1108 class UpdateAuraVisual final : public ClientPacket
1109 {
1110 public:
1112
1113 void Read() override;
1114
1118 };
1119
1120 class SpellDelayed final : public ServerPacket
1121 {
1122 public:
1124
1125 WorldPacket const* Write() override;
1126
1129 };
1130
1131 class DispelFailed final : public ServerPacket
1132 {
1133 public:
1134 explicit DispelFailed() : ServerPacket(SMSG_DISPEL_FAILED, 16 + 16 + 4 + 4 + 4 /* predict a single failure on average */) { }
1135
1136 WorldPacket const* Write() override;
1137
1141 std::vector<int32> FailedSpells;
1142 };
1143
1144 class CustomLoadScreen final : public ServerPacket
1145 {
1146 public:
1147 explicit CustomLoadScreen(uint32 teleportSpellId, uint32 loadingScreenId) : ServerPacket(SMSG_CUSTOM_LOAD_SCREEN, 4 + 4),
1148 TeleportSpellID(teleportSpellId), LoadingScreenID(loadingScreenId) { }
1149
1150 WorldPacket const* Write() override;
1151
1154 };
1155
1156 class MountResult final : public ServerPacket
1157 {
1158 public:
1160
1161 WorldPacket const* Write() override;
1162
1164 };
1165
1167 {
1168 public:
1170 {
1172 Failure = 1
1174
1176
1177 WorldPacket const* Write() override;
1178
1182 };
1183
1184 class MissileCancel final : public ServerPacket
1185 {
1186 public:
1188
1189 WorldPacket const* Write() override;
1190
1192 bool Reverse = false;
1194 };
1195
1197 {
1198 public:
1200
1201 void Read() override;
1202
1204 bool IsFavorite = false;
1205 };
1206
1207 class KeyboundOverride final : public ClientPacket
1208 {
1209 public:
1210 explicit KeyboundOverride(WorldPacket&& packet) : ClientPacket(CMSG_KEYBOUND_OVERRIDE, std::move(packet)) { }
1211
1212 void Read() override;
1213
1215 };
1216
1217 class CancelQueuedSpell final : public ClientPacket
1218 {
1219 public:
1221
1222 void Read() override { }
1223 };
1224
1226 }
1227}
1228
1229#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
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
Definition Duration.h:24
OpcodeServer
Definition Opcodes.h:1105
@ SMSG_SEND_SPELL_HISTORY
Definition Opcodes.h:2299
@ SMSG_SPELL_EMPOWER_UPDATE
Definition Opcodes.h:2363
@ SMSG_CANCEL_ORPHAN_SPELL_VISUAL
Definition Opcodes.h:1291
@ SMSG_SPELL_CHANNEL_UPDATE
Definition Opcodes.h:2356
@ SMSG_SPELL_CHANNEL_START
Definition Opcodes.h:2355
@ SMSG_PLAY_SPELL_VISUAL
Definition Opcodes.h:2146
@ SMSG_SPELL_FAILURE
Definition Opcodes.h:2367
@ SMSG_COOLDOWN_EVENT
Definition Opcodes.h:1397
@ SMSG_SPELL_EMPOWER_START
Definition Opcodes.h:2362
@ SMSG_MISSILE_CANCEL
Definition Opcodes.h:1882
@ SMSG_PLAY_SPELL_VISUAL_KIT
Definition Opcodes.h:2147
@ SMSG_AURA_UPDATE
Definition Opcodes.h:1191
@ SMSG_UNLEARNED_SPELLS
Definition Opcodes.h:2442
@ SMSG_SET_SPELL_CHARGES
Definition Opcodes.h:2333
@ SMSG_CLEAR_TARGET
Definition Opcodes.h:1362
@ SMSG_SEND_SPELL_CHARGES
Definition Opcodes.h:2298
@ SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN
Definition Opcodes.h:2453
@ SMSG_DISPEL_FAILED
Definition Opcodes.h:1439
@ SMSG_MODIFY_COOLDOWN
Definition Opcodes.h:1883
@ SMSG_SPELL_PREPARE
Definition Opcodes.h:2378
@ SMSG_SPELL_COOLDOWN
Definition Opcodes.h:2357
@ SMSG_SPELL_DELAYED
Definition Opcodes.h:2359
@ SMSG_CANCEL_SPELL_VISUAL
Definition Opcodes.h:1295
@ SMSG_CAST_FAILED
Definition Opcodes.h:1300
@ SMSG_APPLY_MOUNT_EQUIPMENT_RESULT
Definition Opcodes.h:1153
@ SMSG_ADD_RUNE_POWER
Definition Opcodes.h:1142
@ SMSG_SPELL_GO
Definition Opcodes.h:2369
@ SMSG_NOTIFY_MISSILE_TRAJECTORY_COLLISION
Definition Opcodes.h:2049
@ SMSG_CLEAR_COOLDOWN
Definition Opcodes.h:1357
@ SMSG_CUSTOM_LOAD_SCREEN
Definition Opcodes.h:1424
@ SMSG_PLAY_ORPHAN_SPELL_VISUAL
Definition Opcodes.h:2142
@ SMSG_SPELL_VISUAL_LOAD_SCREEN
Definition Opcodes.h:2380
@ SMSG_RESYNC_RUNES
Definition Opcodes.h:2267
@ SMSG_UPDATE_ACTION_BUTTONS
Definition Opcodes.h:2448
@ SMSG_UPDATE_COOLDOWN
Definition Opcodes.h:2454
@ SMSG_SPELL_FAILED_OTHER
Definition Opcodes.h:2366
@ SMSG_RESURRECT_REQUEST
Definition Opcodes.h:2266
@ SMSG_SEND_KNOWN_SPELLS
Definition Opcodes.h:2295
@ SMSG_SEND_UNLEARN_SPELLS
Definition Opcodes.h:2300
@ SMSG_CLEAR_SPELL_CHARGES
Definition Opcodes.h:1361
@ SMSG_LEARNED_SPELLS
Definition Opcodes.h:1804
@ SMSG_CLEAR_ALL_SPELL_CHARGES
Definition Opcodes.h:1355
@ SMSG_PET_CAST_FAILED
Definition Opcodes.h:2101
@ SMSG_CANCEL_SPELL_VISUAL_KIT
Definition Opcodes.h:1296
@ SMSG_SPELL_START
Definition Opcodes.h:2379
@ SMSG_SUPERCEDED_SPELLS
Definition Opcodes.h:2399
@ SMSG_CLEAR_COOLDOWNS
Definition Opcodes.h:1358
@ SMSG_MIRROR_IMAGE_CREATURE_DATA
Definition Opcodes.h:1880
@ SMSG_MOUNT_RESULT
Definition Opcodes.h:1885
@ SMSG_SPELL_EMPOWER_SET_STAGE
Definition Opcodes.h:2361
@ CMSG_PET_CAST_SPELL
Definition Opcodes.h:766
@ CMSG_GET_MIRROR_IMAGE_DATA
Definition Opcodes.h:398
@ CMSG_CANCEL_AURA
Definition Opcodes.h:165
@ CMSG_UPDATE_MISSILE_TRAJECTORY
Definition Opcodes.h:1039
@ CMSG_KEYBOUND_OVERRIDE
Definition Opcodes.h:535
@ CMSG_USE_ITEM
Definition Opcodes.h:1048
@ CMSG_UPDATE_SPELL_VISUAL
Definition Opcodes.h:1041
@ CMSG_OPEN_ITEM
Definition Opcodes.h:731
@ CMSG_CANCEL_GROWTH_AURA
Definition Opcodes.h:169
@ CMSG_SELF_RES
Definition Opcodes.h:903
@ CMSG_CANCEL_CAST
Definition Opcodes.h:167
@ CMSG_SET_EMPOWER_MIN_HOLD_STAGE_PERCENT
Definition Opcodes.h:929
@ CMSG_MISSILE_TRAJECTORY_COLLISION
Definition Opcodes.h:599
@ CMSG_SET_ACTION_BUTTON
Definition Opcodes.h:917
@ CMSG_SPELL_EMPOWER_RELEASE
Definition Opcodes.h:976
@ CMSG_CANCEL_CHANNELLING
Definition Opcodes.h:168
@ CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS
Definition Opcodes.h:171
@ CMSG_CANCEL_AUTO_REPEAT_SPELL
Definition Opcodes.h:166
@ CMSG_TRADE_SKILL_SET_FAVORITE
Definition Opcodes.h:1015
@ CMSG_SPELL_EMPOWER_RESTART
Definition Opcodes.h:977
@ CMSG_PET_CANCEL_AURA
Definition Opcodes.h:765
@ CMSG_CANCEL_QUEUED_SPELL
Definition Opcodes.h:173
@ CMSG_UNLEARN_SKILL
Definition Opcodes.h:1031
@ CMSG_SPELL_CLICK
Definition Opcodes.h:975
@ CMSG_CAST_SPELL
Definition Opcodes.h:178
@ CMSG_CANCEL_MOUNT_AURA
Definition Opcodes.h:172
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.
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
int32 MinActionBarSlot
Where to start pushing spells on action bar.
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.
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.
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.
WorldPacket const * Write() override
ObjectGuid FailedBy
Unit that caused the spell to fail, set for SPELL_FAILED_INTERRUPTED_COMBAT.
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPackets::Duration< Milliseconds, int32 > Duration
WorldPacket const * Write() override
SpellVisualLoadScreen(int32 spellVisualKitId, Milliseconds duration)
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
Optional< Duration< Milliseconds, uint32 > > ReceiveTime
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