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)