From a8055960ee3acb4d8ea5ec36c500dbdfb02e435f Mon Sep 17 00:00:00 2001 From: Sorikoff <46191832+Sorikoff@users.noreply.github.com> Date: Fri, 21 Jun 2019 10:54:59 +0300 Subject: [PATCH] Scripts/Spells: Portal to Orgrimmar & Portal to Stormwind --- .../world/3.3.5/9999_99_99_99_world.sql | 4 +++ src/server/game/Spells/SpellEffects.cpp | 14 --------- .../ScarletEnclave/chapter5.cpp | 29 +++++++++++++++++++ 3 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 sql/updates/world/3.3.5/9999_99_99_99_world.sql diff --git a/sql/updates/world/3.3.5/9999_99_99_99_world.sql b/sql/updates/world/3.3.5/9999_99_99_99_world.sql new file mode 100644 index 00000000000..3ae3cc42291 --- /dev/null +++ b/sql/updates/world/3.3.5/9999_99_99_99_world.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_teleport_leaders_blessing'); +INSERT INTO `spell_script_names` VALUES +(58418,'spell_teleport_leaders_blessing'), +(58420,'spell_teleport_leaders_blessing'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index b50be84b7d2..63d18e6566f 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3666,20 +3666,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) return; } - case 58418: // Portal to Orgrimmar - case 58420: // Portal to Stormwind - { - if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER || effIndex != 0) - return; - - uint32 spellID = m_spellInfo->Effects[EFFECT_0].CalcValue(); - uint32 questID = m_spellInfo->Effects[EFFECT_1].CalcValue(); - - if (unitTarget->ToPlayer()->GetQuestStatus(questID) == QUEST_STATUS_COMPLETE) - unitTarget->CastSpell(unitTarget, spellID, true); - - return; - } case 59317: // Teleporting { diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index 1cd958c75cb..1d13f99a44a 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -1664,8 +1664,37 @@ public: }; +// 58418 - Portal to Orgrimmar +// 58420 - Portal to Stormwind +class spell_teleport_leaders_blessing : public SpellScript +{ + PrepareSpellScript(spell_teleport_leaders_blessing); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Player* target = GetHitPlayer(); + + 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); }