aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2013-12-01 22:00:10 -0330
committerMalcrom <malcromdev@gmail.com>2013-12-01 22:00:10 -0330
commit3485656aee95d3e37ea19961f66ff089157e9f7a (patch)
treef87fa70f757ca129f28fe341aa5d782c6ca7e090
parentd76e09464878434d43083fda86268f6ed01ffdd0 (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.cpp6
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);