diff options
author | Malcrom <malcromdev@gmail.com> | 2013-12-01 22:00:10 -0330 |
---|---|---|
committer | Malcrom <malcromdev@gmail.com> | 2013-12-01 22:00:10 -0330 |
commit | 3485656aee95d3e37ea19961f66ff089157e9f7a (patch) | |
tree | f87fa70f757ca129f28fe341aa5d782c6ca7e090 | |
parent | d76e09464878434d43083fda86268f6ed01ffdd0 (diff) |
Core/Player: GetRewSpellCast & GetRewSpell should not be cast by questgiver if effect type SPELL_EFFECT_LEARN_SPELL
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index c61621f3a91..984a9ef8852 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15312,7 +15312,8 @@ 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 (questGiver->isType(TYPEMASK_UNIT)) + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpellCast()); + if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL)) { if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) creature->CastSpell(this, quest->GetRewSpellCast(), true); @@ -15322,7 +15323,8 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, } else if (quest->GetRewSpell() > 0) { - if (questGiver->isType(TYPEMASK_UNIT)) + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(quest->GetRewSpell()); + if (questGiver->isType(TYPEMASK_UNIT) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL)) { if (Creature* creature = GetMap()->GetCreature(questGiver->GetGUID())) creature->CastSpell(this, quest->GetRewSpell(), true); |