diff options
author | offl <11556157+offl@users.noreply.github.com> | 2021-06-07 00:26:18 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-07 00:26:18 +0300 |
commit | dadc67c8832a46fe62fa8d4faaed39dde5cc138d (patch) | |
tree | 0166dfcf0c4ad13c27dee2747b54aa237d3b2531 | |
parent | 7b9476ea4b8dd43dcb041ced158bcdd46baeff85 (diff) |
Scripts/Zone: Update Blasted Lands scripts to new register model (#26570)
-rw-r--r-- | src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp | 74 |
1 files changed, 30 insertions, 44 deletions
diff --git a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp index dc9eb16d570..508eb441582 100644 --- a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp @@ -15,68 +15,54 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* -Blasted_Lands -Quest support: 3628. -*/ - #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" #include "SpellScript.h" #include "Player.h" #include "Group.h" -enum DeathlyUsher +/*###### +## Quest 3628: You Are Rakh'likh, Demon +######*/ + +enum TeleportToRazelikh { SPELL_TELEPORT_SINGLE = 12885, - SPELL_TELEPORT_SINGLE_IN_GROUP = 13142, - SPELL_TELEPORT_GROUP = 27686 + SPELL_TELEPORT_SINGLE_IN_GROUP = 13142 }; // 27686 - Teleport to Razelikh (GROUP) -class spell_razelikh_teleport_group : public SpellScriptLoader +class spell_razelikh_teleport_group : public SpellScript { - public: spell_razelikh_teleport_group() : SpellScriptLoader("spell_razelikh_teleport_group") { } - - class spell_razelikh_teleport_group_SpellScript : public SpellScript - { - PrepareSpellScript(spell_razelikh_teleport_group_SpellScript); - - bool Validate(SpellInfo const* /*spell*/) override - { - return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP }); - } + PrepareSpellScript(spell_razelikh_teleport_group); - void HandleScriptEffect(SpellEffIndex /* effIndex */) - { - if (Player* player = GetHitPlayer()) - { - if (Group* group = player->GetGroup()) - { - for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) - if (Player* member = itr->GetSource()) - if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead()) - member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true); - } - else - player->CastSpell(player, SPELL_TELEPORT_SINGLE, true); - } - } + bool Validate(SpellInfo const* /*spell*/) override + { + return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP }); + } - void Register() override + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + if (Player* player = GetHitPlayer()) + { + if (Group* group = player->GetGroup()) { - OnEffectHitTarget += SpellEffectFn(spell_razelikh_teleport_group_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) + if (Player* member = itr->GetSource()) + if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead()) + member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true); } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_razelikh_teleport_group_SpellScript(); + else + player->CastSpell(player, SPELL_TELEPORT_SINGLE, true); } + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_razelikh_teleport_group::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } }; void AddSC_blasted_lands() { - new spell_razelikh_teleport_group(); + RegisterSpellScript(spell_razelikh_teleport_group); } |