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

(cherry picked from commit ac7c72d633)
This commit is contained in:
Sorikoff
2019-06-22 14:36:53 +00:00
committed by Shauren
parent aa407adf3e
commit 799fba7fd1
3 changed files with 40 additions and 16 deletions

View File

@@ -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');

View File

@@ -3233,22 +3233,6 @@ void Spell::EffectScriptEffect()
return;
}
case 58418: // Portal to Orgrimmar
case 58420: // Portal to Stormwind
{
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER || effectInfo->EffectIndex != 0)
return;
// Effects for 58418 and 58420 are all DIFFICULTY_NONE so always valid
uint32 spellID = m_spellInfo->GetEffect(EFFECT_0).CalcValue();
uint32 questID = m_spellInfo->GetEffect(EFFECT_1).CalcValue();
if (unitTarget->ToPlayer()->GetQuestStatus(questID) == QUEST_STATUS_COMPLETE)
unitTarget->CastSpell(unitTarget, spellID, CastSpellExtraArgs(TRIGGERED_FULL_MASK)
.SetOriginalCastId(m_castId));
return;
}
case 62482: // Grab Crate
{
if (!unitCaster)

View File

@@ -20,9 +20,12 @@
#include "Map.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
#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 +1667,41 @@ public:
};
// 58418 - Portal to Orgrimmar
// 58420 - Portal to Stormwind
class spell_teleport_leaders_blessing : public SpellScript
{
PrepareSpellScript(spell_teleport_leaders_blessing);
bool Validate(SpellInfo const* spellInfo) override
{
return spellInfo->GetEffects().size() > EFFECT_1
&& ValidateSpellInfo({ uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()) })
&& sObjectMgr->GetQuestTemplate(spellInfo->GetEffect(EFFECT_1).CalcValue()) != nullptr;
}
void HandleScriptEffect(SpellEffIndex /* effIndex */)
{
Player* target = GetHitPlayer();
if (!target)
return;
uint32 spellID = GetSpellInfo()->GetEffect(EFFECT_0).CalcValue();
uint32 questID = GetSpellInfo()->GetEffect(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);
}