aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-08-28 23:59:17 +0200
committerShauren <shauren.trinity@gmail.com>2020-08-28 23:59:17 +0200
commitbf7efe3ca040f2dcd965e382ff863f0a924af23f (patch)
tree836cbb478c34b3e035a28453a3311bb53d0cd8ac /src/server/game/Entities
parentb928955185f62194307b36cbd136f32bf4517959 (diff)
Core/PacketIO: Fixed structure of "fake" SMSG_SPELL_GO sent when loading pets from db
Closes #25354
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 272f1bdf099..6de742f9353 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -31,6 +31,7 @@
#include "SpellAuras.h"
#include "SpellHistory.h"
#include "SpellMgr.h"
+#include "SpellPackets.h"
#include "Unit.h"
#include "Util.h"
#include "WorldPacket.h"
@@ -338,14 +339,13 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
/// @todo pets should be summoned from real cast instead of just faking it?
if (petInfo->CreatedBySpellId)
{
- WorldPacket data(SMSG_SPELL_GO, (8+8+4+4+2));
- data << owner->GetPackGUID();
- data << owner->GetPackGUID();
- data << uint8(0);
- data << uint32(petInfo->CreatedBySpellId);
- data << uint32(256); // CAST_FLAG_UNKNOWN3
- data << uint32(0);
- owner->SendMessageToSet(&data, true);
+ WorldPackets::Spells::SpellGo spellGo;
+ spellGo.Cast.CasterGUID = owner->GetGUID();
+ spellGo.Cast.CasterUnit = owner->GetGUID();
+ spellGo.Cast.SpellID = petInfo->CreatedBySpellId;
+ spellGo.Cast.CastFlags = CAST_FLAG_UNKNOWN_9;
+ spellGo.Cast.CastTime = GameTime::GetGameTimeMS();
+ owner->SendMessageToSet(spellGo.Write(), true);
}
owner->SetMinion(this, true);