From bf7efe3ca040f2dcd965e382ff863f0a924af23f Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 28 Aug 2020 23:59:17 +0200 Subject: Core/PacketIO: Fixed structure of "fake" SMSG_SPELL_GO sent when loading pets from db Closes #25354 --- src/server/game/Entities/Pet/Pet.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/server/game/Entities') 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); -- cgit v1.2.3