aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSorikoff <46191832+Sorikoff@users.noreply.github.com>2019-06-22 14:36:53 +0000
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-06-22 16:36:53 +0200
commitac7c72d63392cc246d2cd4ab64f558f2bf0970bf (patch)
treeecc1012f8c5056d289e0806753d95a87bd0a7df3
parent40b09e3df144304562a63f33d16e25bbde5079fd (diff)
Scripts/Spells: Portal to Orgrimmar & Portal to Stormwind (#23463)
* Scripts/Spells: Portal to Orgrimmar & Portal to Stormwind * Revert "Scripts/Spells: Portal to Orgrimmar & Portal to Stormwind" This reverts commit a8055960 * Revert "Revert "Scripts/Spells: Portal to Orgrimmar & Portal to Stormwind"" This reverts commit a5be792b * Fix NoPCH * Clean up * Clean up * fixup! Clean up * Caster -> Target * Rename 9999_99_99_99_world.sql to 2019_06_22_01_world.sql
-rw-r--r--sql/updates/world/3.3.5/2019_06_22_01_world.sql4
-rw-r--r--src/server/game/Spells/SpellEffects.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp28
3 files changed, 32 insertions, 14 deletions
diff --git a/sql/updates/world/3.3.5/2019_06_22_01_world.sql b/sql/updates/world/3.3.5/2019_06_22_01_world.sql
new file mode 100644
index 00000000000..3ae3cc42291
--- /dev/null
+++ b/sql/updates/world/3.3.5/2019_06_22_01_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 3f277336e4b..130aa55d41e 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 62482: // Grab Crate
{
if (!unitCaster)
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);
}