mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
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 commita8055960* Revert "Revert "Scripts/Spells: Portal to Orgrimmar & Portal to Stormwind"" This reverts commita5be792b* 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 commitac7c72d633)
This commit is contained in:
@@ -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');
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user