From c85e9772a83089b86e7b64150f05aaa0f732da9c Mon Sep 17 00:00:00 2001 From: manstfu <33990720+manstfu@users.noreply.github.com> Date: Sat, 14 Sep 2024 09:12:52 +0200 Subject: [PATCH 1/2] Update PlayerQuest.cpp Fixed spells not granted by quests --- .../game/Entities/Player/PlayerQuest.cpp | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/server/game/Entities/Player/PlayerQuest.cpp b/src/server/game/Entities/Player/PlayerQuest.cpp index 833fd1bd2..de9bf1813 100644 --- a/src/server/game/Entities/Player/PlayerQuest.cpp +++ b/src/server/game/Entities/Player/PlayerQuest.cpp @@ -829,30 +829,36 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, if (quest->GetRewSpellCast() > 0) { if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpellCast())) + { if (questGiver->IsUnit() && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) { - if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) + if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) { - if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) - creature->CastSpell(this, quest->GetRewSpellCast(), true); + creature->CastSpell(this, quest->GetRewSpellCast(), true); } - else - CastSpell(this, quest->GetRewSpellCast(), true); } + else + { + CastSpell(this, quest->GetRewSpellCast(), true); + } + } } else if (quest->GetRewSpell() > 0) { if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpell())) + { if (questGiver->IsUnit() && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) { - if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) + if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) { - if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) - creature->CastSpell(this, quest->GetRewSpell(), true); + creature->CastSpell(this, quest->GetRewSpell(), true); } - else - CastSpell(this, quest->GetRewSpell(), true); } + else + { + CastSpell(this, quest->GetRewSpell(), true); + } + } } if (quest->GetZoneOrSort() > 0) From ddd7c1fb6c687f425631be6acd7ff5b4624f99cd Mon Sep 17 00:00:00 2001 From: manstfu <33990720+manstfu@users.noreply.github.com> Date: Sat, 14 Sep 2024 18:25:46 +0200 Subject: [PATCH 2/2] Updated with master branch --- .../game/Entities/Player/PlayerQuest.cpp | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/src/server/game/Entities/Player/PlayerQuest.cpp b/src/server/game/Entities/Player/PlayerQuest.cpp index de9bf1813..2a95b3e27 100644 --- a/src/server/game/Entities/Player/PlayerQuest.cpp +++ b/src/server/game/Entities/Player/PlayerQuest.cpp @@ -828,37 +828,25 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, // cast spells after mark quest complete (some spells have quest completed state requirements in spell_area data) if (quest->GetRewSpellCast() > 0) { - if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpellCast())) + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpellCast()); + if (questGiver->IsUnit() && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) { - if (questGiver->IsUnit() && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) - { - if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) - { - creature->CastSpell(this, quest->GetRewSpellCast(), true); - } - } - else - { - CastSpell(this, quest->GetRewSpellCast(), true); - } + if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) + creature->CastSpell(this, quest->GetRewSpellCast(), true); } + else + CastSpell(this, quest->GetRewSpellCast(), true); } else if (quest->GetRewSpell() > 0) { - if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpell())) + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpell()); + if (questGiver->IsUnit() && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) { - if (questGiver->IsUnit() && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL) && !spellInfo->HasEffect(SPELL_EFFECT_CREATE_ITEM) && !spellInfo->IsSelfCast()) - { - if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) - { - creature->CastSpell(this, quest->GetRewSpell(), true); - } - } - else - { - CastSpell(this, quest->GetRewSpell(), true); - } + if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) + creature->CastSpell(this, quest->GetRewSpell(), true); } + else + CastSpell(this, quest->GetRewSpell(), true); } if (quest->GetZoneOrSort() > 0)