From 9b2e317c44bb218b70dc4b4ac6ad7f322e2445d7 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 10 Mar 2022 09:45:48 -0500 Subject: [PATCH] Core/Pets: Fixed automatic resurrecting pets on battleground graveyards Port From (https://github.com/TrinityCore/TrinityCore/commit/914791836318c62d8b206ef3cbffe144e63bf928) --- Source/Game/Entities/Pet.cs | 5 ++++- Source/Scripts/Spells/Generic.cs | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/Game/Entities/Pet.cs b/Source/Game/Entities/Pet.cs index 998afa4e7..eb0d93501 100644 --- a/Source/Game/Entities/Pet.cs +++ b/Source/Game/Entities/Pet.cs @@ -109,7 +109,7 @@ namespace Game.Entities return Tuple.Create(stable.StabledPets[stableSlot], PetSaveMode.FirstStableSlot + stableSlot); foreach (var pet in stable.UnslottedPets) - if (pet.CreatureId == petEntry) + if (pet.PetNumber == petnumber) return Tuple.Create(pet, PetSaveMode.NotInSlot); } else if (current) @@ -280,6 +280,9 @@ namespace Game.Entities petStable.CurrentPet = unslottedPetInfo; petStable.UnslottedPets.Remove(unslottedPetInfo); + + // old petInfo is no longer valid, refresh it + petInfo = petStable.CurrentPet; } // Send fake summon spell cast - this is needed for correct cooldown application for spells diff --git a/Source/Scripts/Spells/Generic.cs b/Source/Scripts/Spells/Generic.cs index 1b9e19280..f5c37cf39 100644 --- a/Source/Scripts/Spells/Generic.cs +++ b/Source/Scripts/Spells/Generic.cs @@ -2366,8 +2366,8 @@ namespace Scripts.Spells.Generic if (newPet.LoadPetFromDB(player, 0, player.GetLastPetNumber(), true)) { // revive the pet if it is dead - if (newPet.GetDeathState() == DeathState.Dead) - newPet.SetDeathState(DeathState.Alive); + if (newPet.GetDeathState() != DeathState.Alive && newPet.GetDeathState() != DeathState.JustRespawned) + newPet.SetDeathState(DeathState.JustRespawned); newPet.SetFullHealth(); newPet.SetFullPower(newPet.GetPowerType());