aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQAston <none@none>2010-07-20 16:11:49 +0200
committerQAston <none@none>2010-07-20 16:11:49 +0200
commitb59b21fa69bb3a667f49619d231b66f44fc66c6f (patch)
tree152046abd9ee8c71d1b2958cc3f616050cf2b68a
parentfdc4adbfe1d5b0faba3fd10dc6ec298839569cc2 (diff)
*Implement SPELL_EFFECT_QUEST_START (150).
--HG-- branch : trunk
-rw-r--r--src/server/game/Spells/Spell.h1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp21
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)