From f9f71fff36de7ee374c463de2494e16b35dbf6ec Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 1 Jan 2024 10:56:32 -0300 Subject: [PATCH] =?UTF-8?q?fix(Core/Player):=20Check=20if=20the=20player?= =?UTF-8?q?=20can=20summon=20the=20warlock=20pet=20on=20B=E2=80=A6=20(#180?= =?UTF-8?q?64)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Core/Player): Check if the player can summon the warlock pet on BG ress --- src/server/game/Entities/Pet/Pet.cpp | 8 ++++++ src/server/game/Entities/Player/Player.cpp | 29 ++++++++++------------ 2 files changed, 21 insertions(+), 16 deletions(-) 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);