diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-08-20 18:44:36 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-08-20 18:44:36 +0200 |
commit | 74a0d579eef07c013cc8deff930a975cf19c487f (patch) | |
tree | d381f67e1bdefd836e06e98d253e2f3d288892a3 | |
parent | fc32c3fd3b2e91702a41798ef962cbc8475c8584 (diff) |
Core/Pets: Fixed automatic resurrecting pets on battleground graveyards
Closes #25289
-rw-r--r-- | src/server/game/Entities/Pet/Pet.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index f1e4fd04311..272f1bdf099 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -110,7 +110,7 @@ std::pair<PetStable::PetInfo const*, PetSaveMode> Pet::GetLoadPetInfo(PetStable return { &stable.StabledPets[stableSlot].value(), PetSaveMode(PET_SAVE_FIRST_STABLE_SLOT + stableSlot) }; for (PetStable::PetInfo const& pet : stable.UnslottedPets) - if (pet.CreatureId == petEntry) + if (pet.PetNumber == petnumber) return { &pet, PET_SAVE_NOT_IN_SLOT }; } else if (current) diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index c9185324957..066fa6ff192 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -2744,8 +2744,8 @@ class spell_gen_pet_summoned : public SpellScript if (newPet->LoadPetFromDB(player, 0, player->GetLastPetNumber(), true)) { // revive the pet if it is dead - if (newPet->getDeathState() == DEAD) - newPet->setDeathState(ALIVE); + if (newPet->getDeathState() != ALIVE && newPet->getDeathState() != JUST_RESPAWNED) + newPet->setDeathState(JUST_RESPAWNED); newPet->SetFullHealth(); newPet->SetPower(newPet->GetPowerType(), newPet->GetMaxPower(newPet->GetPowerType())); |