From 435761b28402eef3badec6208f185ead25fcbe0c Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Fri, 13 Aug 2021 12:02:21 +0200 Subject: [PATCH] fix(Core/Pets): do not summon pet if owner is being teleported (#7275) - Closes #7159 --- src/server/game/Handlers/PetHandler.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index b546df264..5d5028c5e 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -88,8 +88,11 @@ uint8 WorldSession::HandleLoadPetFromDBFirstCallback(PreparedQueryResult result, if (!result) return PET_LOAD_NO_RESULT; - if (!GetPlayer() || GetPlayer()->GetPet() || GetPlayer()->GetVehicle() || GetPlayer()->IsSpectator()) + Player* owner = GetPlayer(); + if (!owner || owner->GetPet() || owner->GetVehicle() || owner->IsSpectator() || owner->IsBeingTeleportedFar()) + { return PET_LOAD_ERROR; + } Field* fields = result->Fetch(); @@ -97,8 +100,6 @@ uint8 WorldSession::HandleLoadPetFromDBFirstCallback(PreparedQueryResult result, if (!fields) return PET_LOAD_ERROR; - Player* owner = GetPlayer(); - // update for case of current pet "slot = 0" uint32 petentry = fields[1].GetUInt32(); if (!petentry)