diff options
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index 1cd958c75cb..3f9b7f814c7 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -23,6 +23,8 @@ #include "Player.h" #include "ScriptedEscortAI.h" #include "ScriptedGossip.h" +#include "SpellInfo.h" +#include "SpellScript.h" #include "TemporarySummon.h" #define LESS_MOB // if you do not have a good server and do not want it to be laggy as hell @@ -1664,8 +1666,34 @@ public: }; +// 58418 - Portal to Orgrimmar +// 58420 - Portal to Stormwind +class spell_teleport_leaders_blessing : public SpellScript +{ + PrepareSpellScript(spell_teleport_leaders_blessing); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Player* target = GetHitPlayer(); + if (!target) + return; + + uint32 spellID = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); + uint32 questID = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); + + if (target->GetQuestStatus(questID) == QUEST_STATUS_COMPLETE) + target->CastSpell(target, spellID, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_teleport_leaders_blessing::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_the_scarlet_enclave_c5() { new npc_highlord_darion_mograine(); new npc_the_lich_king_tirion_dawn(); + RegisterSpellScript(spell_teleport_leaders_blessing); } |
