diff options
author | QAston <none@none> | 2010-07-20 16:11:49 +0200 |
---|---|---|
committer | QAston <none@none> | 2010-07-20 16:11:49 +0200 |
commit | b59b21fa69bb3a667f49619d231b66f44fc66c6f (patch) | |
tree | 152046abd9ee8c71d1b2958cc3f616050cf2b68a | |
parent | fdc4adbfe1d5b0faba3fd10dc6ec298839569cc2 (diff) |
*Implement SPELL_EFFECT_QUEST_START (150).
--HG--
branch : trunk
-rw-r--r-- | src/server/game/Spells/Spell.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 21 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 47ad2035094..2d2f74984d3 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -378,6 +378,7 @@ class Spell void EffectKillCreditPersonal(uint32 i); void EffectKillCredit(uint32 i); void EffectQuestFail(uint32 i); + void EffectQuestStart(uint32 i); void EffectRedirectThreat(uint32 i); void EffectWMODamage(uint32 i); void EffectWMORepair(uint32 i); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 6a9f8ed7e10..c4b34fd4ff3 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -215,7 +215,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectQuestFail, //147 SPELL_EFFECT_QUEST_FAIL quest fail &Spell::EffectUnused, //148 SPELL_EFFECT_148 unused &Spell::EffectChargeDest, //149 SPELL_EFFECT_CHARGE_DEST - &Spell::EffectUnused, //150 SPELL_EFFECT_150 unused + &Spell::EffectQuestStart, //150 SPELL_EFFECT_QUEST_START &Spell::EffectTriggerRitualOfSummoning, //151 SPELL_EFFECT_TRIGGER_SPELL_2 &Spell::EffectNULL, //152 SPELL_EFFECT_152 summon Refer-a-Friend &Spell::EffectNULL, //153 SPELL_EFFECT_CREATE_PET misc value is creature entry @@ -225,10 +225,10 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectCreateItem2, //157 SPELL_EFFECT_CREATE_ITEM_2 create item or create item template and replace by some randon spell loot item &Spell::EffectMilling, //158 SPELL_EFFECT_MILLING milling &Spell::EffectRenamePet, //159 SPELL_EFFECT_ALLOW_RENAME_PET allow rename pet once again - &Spell::EffectNULL, //160 SPELL_EFFECT_160 unused + &Spell::EffectNULL, //160 SPELL_EFFECT_160 1 spell - 45534 &Spell::EffectSpecCount, //161 SPELL_EFFECT_TALENT_SPEC_COUNT second talent spec (learn/revert) &Spell::EffectActivateSpec, //162 SPELL_EFFECT_TALENT_SPEC_SELECT activate primary/secondary spec - &Spell::EffectNULL, //163 + &Spell::EffectNULL, //163 unused &Spell::EffectRemoveAura, //164 SPELL_EFFECT_REMOVE_AURA }; @@ -7795,6 +7795,21 @@ void Spell::EffectQuestFail(uint32 i) unitTarget->ToPlayer()->FailQuest(m_spellInfo->EffectMiscValue[i]); } +void Spell::EffectQuestStart(uint32 i) +{ + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) + return; + + Player * player = unitTarget->ToPlayer(); + if (Quest const* qInfo = objmgr.GetQuestTemplate(m_spellInfo->EffectMiscValue[i])) + { + if (player->CanTakeQuest(qInfo, false) && player->CanAddQuest(qInfo, false)) + { + player->AddQuest(qInfo, NULL); + } + } +} + void Spell::EffectActivateRune(uint32 eff_idx) { if (m_caster->GetTypeId() != TYPEID_PLAYER) |