diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 5e10ef17e..f58797ac4 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -105,6 +105,14 @@ void Pet::AddToWorld() if (GetOwnerGUID().IsPlayer()) { + if (Player* owner = GetOwner()) + { + if (getPetType() == SUMMON_PET && owner->getClass() == CLASS_WARLOCK) + { + owner->SetLastPetSpell(GetUInt32Value(UNIT_CREATED_BY_SPELL)); + } + } + sScriptMgr->OnPetAddToWorld(this); } } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f5d16be4e..a04616cbe 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14164,24 +14164,21 @@ void Player::ResummonPetTemporaryUnSummonedIfAny() bool Player::CanResummonPet(uint32 spellid) { - switch (getClass()) + if (getClass() == CLASS_DEATH_KNIGHT) { - case CLASS_DEATH_KNIGHT: - if (CanSeeDKPet()) - return true; - else if (spellid == 52150) //Raise Dead - return false; - break; - case CLASS_MAGE: - if (HasSpell(31687) && HasAura(70937)) //Has [Summon Water Elemental] spell and [Glyph of Eternal Water]. - return true; - break; - case CLASS_HUNTER: - case CLASS_WARLOCK: + if (CanSeeDKPet()) return true; - break; - default: - break; + else if (spellid == 52150) // Raise Dead + return false; + } + else if (getClass() == CLASS_MAGE) + { + if (HasSpell(31687) && HasAura(70937)) //Has [Summon Water Elemental] spell and [Glyph of Eternal Water]. + return true; + } + else if (getClass() == CLASS_HUNTER) + { + return true; } return HasSpell(spellid);