Core/Spells: corrected implementation of SPELL_EFFECT_QUEST_START

This commit is contained in:
joschiwald
2014-04-21 16:48:05 +02:00
parent e3e342b0f7
commit 6b52cef5bc

View File

@@ -5468,13 +5468,23 @@ void Spell::EffectQuestStart(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
if (!unitTarget)
return;
Player* player = unitTarget->ToPlayer();
if (Quest const* qInfo = sObjectMgr->GetQuestTemplate(m_spellInfo->Effects[effIndex].MiscValue))
if (player->CanTakeQuest(qInfo, false) && player->CanAddQuest(qInfo, false))
player->AddQuestAndCheckCompletion(qInfo, NULL);
if (!player)
return;
if (Quest const* quest = sObjectMgr->GetQuestTemplate(m_spellInfo->Effects[effIndex].MiscValue))
{
if (!player->CanTakeQuest(quest, false))
return;
if (quest->IsAutoAccept() && player->CanAddQuest(quest, false))
player->AddQuestAndCheckCompletion(quest, player);
player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, player->GetGUID(), true);
}
}
void Spell::EffectActivateRune(SpellEffIndex effIndex)