Scripts/Spells: Get rid of some database spell scripts (#30915)

This commit is contained in:
offl
2025-05-09 01:10:43 +03:00
committed by GitHub
parent 7b0d1f0913
commit 5ed83ed27c
23 changed files with 1375 additions and 0 deletions

View File

@@ -0,0 +1,225 @@
--
DELETE FROM `spell_scripts` WHERE `id` = 37013;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_gen_despawn_target' AND `spell_id` = 37013;
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(37013, 'spell_gen_despawn_target');
DELETE FROM `spell_scripts` WHERE `id` = 32348;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_mana_tombs_summon_arcane_fiends';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(32348, 'spell_mana_tombs_summon_arcane_fiends');
DELETE FROM `spell_scripts` WHERE `id` IN (29126,29137,29135,29136,29138,29139,46672,46671);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_midsummer_cleansing_flames_darnassus',
'spell_midsummer_cleansing_flames_stormwind',
'spell_midsummer_cleansing_flames_ironforge',
'spell_midsummer_cleansing_flames_orgrimmar',
'spell_midsummer_cleansing_flames_thunder_bluff',
'spell_midsummer_cleansing_flames_the_undercity',
'spell_midsummer_cleansing_flames_silvermoon',
'spell_midsummer_cleansing_flames_the_exodar');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(29126, 'spell_midsummer_cleansing_flames_darnassus'),
(29137, 'spell_midsummer_cleansing_flames_stormwind'),
(29135, 'spell_midsummer_cleansing_flames_ironforge'),
(29136, 'spell_midsummer_cleansing_flames_orgrimmar'),
(29138, 'spell_midsummer_cleansing_flames_thunder_bluff'),
(29139, 'spell_midsummer_cleansing_flames_the_undercity'),
(46672, 'spell_midsummer_cleansing_flames_silvermoon'),
(46671, 'spell_midsummer_cleansing_flames_the_exodar');
DELETE FROM `spell_scripts` WHERE `id` = 52933;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_rampage_summon_zulaman_gods_master';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(52933, 'spell_zuldrak_rampage_summon_zulaman_gods_master');
DELETE FROM `spell_scripts` WHERE `id` = 51862;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_breaking_through_summon_zulaman_gods_master';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(51862, 'spell_zuldrak_breaking_through_summon_zulaman_gods_master');
DELETE FROM `spell_scripts` WHERE `id` IN (29182,29188);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_temple_of_ahnqiraj_teleport_to_twin_emperors',
'spell_temple_of_ahnqiraj_teleport_to_final_chamber');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(29182, 'spell_temple_of_ahnqiraj_teleport_to_twin_emperors'),
(29188, 'spell_temple_of_ahnqiraj_teleport_to_final_chamber');
DELETE FROM `spell_scripts` WHERE `id` IN (51864,51889);
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_summon_nass';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(51864, 'spell_zuldrak_summon_nass'),
(51889, 'spell_zuldrak_summon_nass');
DELETE FROM `spell_scripts` WHERE `id` = 36327;
DELETE FROM `smart_scripts` WHERE `entryorguid` = 21186 AND `source_type` = 0;
DELETE FROM `smart_scripts` WHERE `entryorguid` = -79409 AND `source_type` = 0 AND `id` = 2;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(21186,0,0,0,8,0,100,0,36327,0,0,0,0,11,36521,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Arcane Warder Target - On Spellhit 'Shoot Arcane Explosion Arrow' - Cast 'Summon Arcane Explosion'"),
(-79409,0,2,0,8,0,100,0,36327,0,0,0,0,11,36521,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Arcane Warder Target - On Spellhit 'Shoot Arcane Explosion Arrow' - Cast 'Summon Arcane Explosion'");
DELETE FROM `spell_scripts` WHERE `id` = 45030;
DELETE FROM `smart_scripts` WHERE `entryorguid` = 25003 AND `source_type` = 0 AND `id` = 3;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(25003,0,3,0,8,0,100,0,45030,0,0,0,0,11,45088,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Emissary of Hate - On Spellhit 'Impale Emissary' - Cast 'Emissary of Hate Credit'");
DELETE FROM `spell_scripts` WHERE `id` = 53010;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zuldrak_remove_akalis_stun';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(53010, 'spell_zuldrak_remove_akalis_stun');
DELETE FROM `spell_scripts` WHERE `id` IN (47117,47149,47316,47405,50439);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_grizzly_hills_script_cast_summon_image_of_drakuru_01',
'spell_grizzly_hills_script_cast_summon_image_of_drakuru_02',
'spell_grizzly_hills_script_cast_summon_image_of_drakuru_03',
'spell_grizzly_hills_script_cast_summon_image_of_drakuru_04',
'spell_grizzly_hills_script_cast_summon_image_of_drakuru_05');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(47117, 'spell_grizzly_hills_script_cast_summon_image_of_drakuru_01'),
(47149, 'spell_grizzly_hills_script_cast_summon_image_of_drakuru_02'),
(47316, 'spell_grizzly_hills_script_cast_summon_image_of_drakuru_03'),
(47405, 'spell_grizzly_hills_script_cast_summon_image_of_drakuru_04'),
(50439, 'spell_grizzly_hills_script_cast_summon_image_of_drakuru_05');
DELETE FROM `spell_scripts` WHERE `id` IN (58916,58917);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_icecrown_gift_of_the_lich_king',
'spell_icecrown_consume_minions');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(58916, 'spell_icecrown_gift_of_the_lich_king'),
(58917, 'spell_icecrown_consume_minions');
DELETE FROM `spell_scripts` WHERE `id` = 37028;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_bem_dispelling_analysis';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(37028, 'spell_bem_dispelling_analysis');
DELETE FROM `spell_scripts` WHERE `id` = 37834;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_shadowmoon_unbanish_azaloth';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(37834, 'spell_shadowmoon_unbanish_azaloth');
DELETE FROM `spell_scripts` WHERE `id` = 46550;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_borean_tundra_weakness_to_lightning_on_quest_complete';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(46550, 'spell_borean_tundra_weakness_to_lightning_on_quest_complete');
DELETE FROM `spell_scripts` WHERE `id` IN (37867,37892,37894);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_shadowmoon_arcano_scorp_control_01',
'spell_shadowmoon_arcano_scorp_control_02',
'spell_shadowmoon_arcano_scorp_control_03');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(37867, 'spell_shadowmoon_arcano_scorp_control_01'),
(37892, 'spell_shadowmoon_arcano_scorp_control_02'),
(37894, 'spell_shadowmoon_arcano_scorp_control_03');
DELETE FROM `spell_scripts` WHERE `id` IN (25143,29128,29129,25140);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_terokkar_translocation_firewing_point_building_down',
'spell_terokkar_translocation_firewing_point_building_up',
'spell_terokkar_translocation_firewing_point_tower_down',
'spell_terokkar_translocation_firewing_point_tower_up');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(25143, 'spell_terokkar_translocation_firewing_point_building_down'),
(29128, 'spell_terokkar_translocation_firewing_point_building_up'),
(29129, 'spell_terokkar_translocation_firewing_point_tower_down'),
(25140, 'spell_terokkar_translocation_firewing_point_tower_up');
DELETE FROM `spell_scripts` WHERE `id` IN (25650,25652);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_hellfire_peninsula_translocation_falcon_watch_tower_down',
'spell_hellfire_peninsula_translocation_falcon_watch_tower_up');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(25650, 'spell_hellfire_peninsula_translocation_falcon_watch_tower_down'),
(25652, 'spell_hellfire_peninsula_translocation_falcon_watch_tower_up');
DELETE FROM `spell_scripts` WHERE `id` IN (34448,34452,35376,35727);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_eastern_kingdoms_duskwither_spire_up',
'spell_eastern_kingdoms_duskwither_spire_down',
'spell_eastern_kingdoms_silvermoon_to_undercity',
'spell_eastern_kingdoms_undercity_to_silvermoon');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(34448, 'spell_eastern_kingdoms_duskwither_spire_up'),
(34452, 'spell_eastern_kingdoms_duskwither_spire_down'),
(35376, 'spell_eastern_kingdoms_silvermoon_to_undercity'),
(35727, 'spell_eastern_kingdoms_undercity_to_silvermoon');
DELETE FROM `spell_scripts` WHERE `id` IN (47393,47615,47638);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_dragonblight_focus_on_the_beach_quest_completion_script',
'spell_dragonblight_atop_the_woodlands_quest_completion_script',
'spell_dragonblight_end_of_the_line_quest_completion_script');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(47393, 'spell_dragonblight_focus_on_the_beach_quest_completion_script'),
(47615, 'spell_dragonblight_atop_the_woodlands_quest_completion_script'),
(47638, 'spell_dragonblight_end_of_the_line_quest_completion_script');
DELETE FROM `spell_scripts` WHERE `id` = 24320;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_zulgurub_poisonous_blood';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(24320, 'spell_zulgurub_poisonous_blood');
DELETE FROM `spell_scripts` WHERE `id` = 45071;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_eastern_kingdoms_dead_scar_bombing_run';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(45071, 'spell_eastern_kingdoms_dead_scar_bombing_run');
DELETE FROM `spell_scripts` WHERE `id` = 57753;
DELETE FROM `smart_scripts` WHERE `entryorguid` = 30681 AND `source_type` = 0 AND `id` = 5;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(30681,0,5,0,8,0,100,0,57753,0,0,0,0,11,57752,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Onyx Blaze Mistress - On Spellhit 'Conjure Flame Orb' - Cast 'Flame Orb Summon'");
DELETE FROM `spell_scripts` WHERE `id` = 46237;
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 25861;
DELETE FROM `smart_scripts` WHERE `entryorguid` = 25861 AND `source_type` = 0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(25861,0,0,0,8,0,100,0,46237,0,0,0,0,41,3000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Orphaned Mammoth Calf - On Spellhit 'Dismiss Orphaned Mammoth' - Delayed Despawn"),
(25861,0,1,0,8,0,100,0,46237,0,0,0,0,28,46233,0,0,0,0,0,23,0,0,0,0,0,0,0,0,"Orphaned Mammoth Calf - On Spellhit 'Dismiss Orphaned Mammoth' - Remove Aura 'Call Mammoth Orphan'");
DELETE FROM `spell_scripts` WHERE `id` = 23301;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_icecrown_ebon_blade_banner';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(23301, 'spell_icecrown_ebon_blade_banner');
DELETE FROM `spell_scripts` WHERE `id` IN (54620,58622);
DELETE FROM `spell_script_names` WHERE `ScriptName` IN (
'spell_dalaran_teleport_to_dalaran',
'spell_dalaran_teleport_to_lake_wintergrasp');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(54620, 'spell_dalaran_teleport_to_dalaran'),
(58622, 'spell_dalaran_teleport_to_lake_wintergrasp');
DELETE FROM `spell_scripts` WHERE `id` = 52124;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_chapter1_sky_darkener_assault';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(52124, 'spell_chapter1_sky_darkener_assault');
DELETE FROM `spell_scripts` WHERE `id` = 45188;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_eastern_kingdoms_dawnblade_attack';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(45188, 'spell_eastern_kingdoms_dawnblade_attack');
DELETE FROM `spell_scripts` WHERE `id` = 45958;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_borean_tundra_signal_alliance';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(45958, 'spell_borean_tundra_signal_alliance');
DELETE FROM `spell_scripts` WHERE `id` = 46289;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_muru_negative_energy';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(46289, 'spell_muru_negative_energy');
DELETE FROM `spell_scripts` WHERE `id` = 26393;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_lunar_festival_elunes_blessing';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(26393, 'spell_lunar_festival_elunes_blessing');
DELETE FROM `spell_scripts` WHERE `id` = 49466;
DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_brewfest_mole_machine_portal_schedule';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(49466, 'spell_brewfest_mole_machine_portal_schedule');

View File

@@ -1143,6 +1143,32 @@ class spell_chapter1_runeforging_credit : public SpellScript
}
};
enum SkyDarkenerAssault
{
SPELL_SKY_DARKENER_ASSAULT = 52125
};
// 52124 - Sky Darkener Assault
class spell_chapter1_sky_darkener_assault : public SpellScript
{
PrepareSpellScript(spell_chapter1_sky_darkener_assault);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SKY_DARKENER_ASSAULT });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetHitUnit(), SPELL_SKY_DARKENER_ASSAULT);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_chapter1_sky_darkener_assault::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_the_scarlet_enclave_c1()
{
new npc_unworthy_initiate();
@@ -1160,4 +1186,5 @@ void AddSC_the_scarlet_enclave_c1()
RegisterCreatureAI(npc_scarlet_ghoul);
RegisterSpellScript(spell_gift_of_the_harvester);
RegisterSpellScript(spell_chapter1_runeforging_credit);
RegisterSpellScript(spell_chapter1_sky_darkener_assault);
}

View File

@@ -53,6 +53,7 @@ enum Spells
SPELL_ENTROPIUS_COSMETIC_SPAWN = 46223,
SPELL_DARKNESS_E = 46269,
SPELL_NEGATIVE_ENERGY_PERIODIC_E = 46284,
SPELL_NEGATIVE_ENERGY_DAMAGE = 46285,
SPELL_BLACKHOLE = 46282,
SPELL_SUMMON_DARKFIEND_E = 46263,
@@ -635,6 +636,27 @@ class spell_muru_negative_energy_periodic : public AuraScript
}
};
// 46289 - Negative Energy
class spell_muru_negative_energy : public SpellScript
{
PrepareSpellScript(spell_muru_negative_energy);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_NEGATIVE_ENERGY_DAMAGE });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetHitUnit(), SPELL_NEGATIVE_ENERGY_DAMAGE, true);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_muru_negative_energy::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_boss_muru()
{
RegisterSunwellPlateauCreatureAI(boss_muru);
@@ -649,4 +671,5 @@ void AddSC_boss_muru()
RegisterSpellScript(spell_transform_visual_missile_periodic);
RegisterSpellScript(spell_summon_blood_elves_periodic);
RegisterSpellScript(spell_muru_negative_energy_periodic);
RegisterSpellScript(spell_muru_negative_energy);
}

View File

@@ -16,10 +16,12 @@
*/
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "zulgurub.h"
#include "GameEventMgr.h"
#include "GameObject.h"
#include "GameObjectAI.h"
#include "Unit.h"
/*######
## go_brazier_of_madness
@@ -74,7 +76,34 @@ public:
}
};
enum PoisonousBlood
{
SPELL_POISONOUS_BLOOD = 24321
};
// 24320 - Poisonous Blood
class spell_zulgurub_poisonous_blood : public SpellScript
{
PrepareSpellScript(spell_zulgurub_poisonous_blood);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_POISONOUS_BLOOD });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_POISONOUS_BLOOD);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_zulgurub_poisonous_blood::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_zulgurub()
{
new go_brazier_of_madness();
RegisterSpellScript(spell_zulgurub_poisonous_blood);
}

View File

@@ -0,0 +1,175 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "DBCStores.h"
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "Unit.h"
enum Translocation
{
SPELL_TRANSLOCATION_DUSKWITHER_SPIRE_UP = 26566,
SPELL_TRANSLOCATION_DUSKWITHER_SPIRE_DOWN = 26572,
SPELL_TRANSLOCATION_SILVERMOON_TO_UNDERCITY = 25649,
SPELL_TRANSLOCATION_UNDERCITY_TO_SILVERMOON = 35730
};
// 34448 - Translocate
class spell_eastern_kingdoms_duskwither_spire_up : public SpellScript
{
PrepareSpellScript(spell_eastern_kingdoms_duskwither_spire_up);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TRANSLOCATION_DUSKWITHER_SPIRE_UP });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TRANSLOCATION_DUSKWITHER_SPIRE_UP);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_eastern_kingdoms_duskwither_spire_up::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 34452 - Translocate
class spell_eastern_kingdoms_duskwither_spire_down : public SpellScript
{
PrepareSpellScript(spell_eastern_kingdoms_duskwither_spire_down);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TRANSLOCATION_DUSKWITHER_SPIRE_DOWN });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TRANSLOCATION_DUSKWITHER_SPIRE_DOWN);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_eastern_kingdoms_duskwither_spire_down::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 35376 - Translocate
class spell_eastern_kingdoms_silvermoon_to_undercity : public SpellScript
{
PrepareSpellScript(spell_eastern_kingdoms_silvermoon_to_undercity);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TRANSLOCATION_SILVERMOON_TO_UNDERCITY });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TRANSLOCATION_SILVERMOON_TO_UNDERCITY);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_eastern_kingdoms_silvermoon_to_undercity::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 35727 - Translocate
class spell_eastern_kingdoms_undercity_to_silvermoon : public SpellScript
{
PrepareSpellScript(spell_eastern_kingdoms_undercity_to_silvermoon);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TRANSLOCATION_UNDERCITY_TO_SILVERMOON });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TRANSLOCATION_UNDERCITY_TO_SILVERMOON);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_eastern_kingdoms_undercity_to_silvermoon::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
enum DeadScarBombingRun
{
SOUND_ID_BOMBING_RUN = 12318
};
// 45071 - Quest - Sunwell Daily - Dead Scar Bombing Run
class spell_eastern_kingdoms_dead_scar_bombing_run : public SpellScript
{
PrepareSpellScript(spell_eastern_kingdoms_dead_scar_bombing_run);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return sSoundEntriesStore.LookupEntry(SOUND_ID_BOMBING_RUN);
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->PlayDirectSound(SOUND_ID_BOMBING_RUN);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_eastern_kingdoms_dead_scar_bombing_run::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
enum DawnbladeAttack
{
SPELL_DAWNBLADE_ATTACK = 45189
};
// 45188 - Dawnblade Attack
class spell_eastern_kingdoms_dawnblade_attack : public SpellScript
{
PrepareSpellScript(spell_eastern_kingdoms_dawnblade_attack);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DAWNBLADE_ATTACK });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetHitUnit(), SPELL_DAWNBLADE_ATTACK);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_eastern_kingdoms_dawnblade_attack::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_eastern_kingdoms()
{
RegisterSpellScript(spell_eastern_kingdoms_duskwither_spire_up);
RegisterSpellScript(spell_eastern_kingdoms_duskwither_spire_down);
RegisterSpellScript(spell_eastern_kingdoms_silvermoon_to_undercity);
RegisterSpellScript(spell_eastern_kingdoms_undercity_to_silvermoon);
RegisterSpellScript(spell_eastern_kingdoms_dead_scar_bombing_run);
RegisterSpellScript(spell_eastern_kingdoms_dawnblade_attack);
}

View File

@@ -174,6 +174,7 @@ void AddSC_boss_renataki();
void AddSC_boss_wushoolay();
void AddSC_instance_zulgurub();
void AddSC_zulgurub();
void AddSC_eastern_kingdoms();
//void AddSC_alterac_mountains();
//void AddSC_arathi_highlands();
void AddSC_blasted_lands();
@@ -354,6 +355,7 @@ void AddEasternKingdomsScripts()
AddSC_boss_wushoolay();
AddSC_instance_zulgurub();
AddSC_zulgurub();
AddSC_eastern_kingdoms();
//AddSC_alterac_mountains();
//AddSC_arathi_highlands();
AddSC_blasted_lands();

View File

@@ -663,6 +663,32 @@ class spell_brewfest_botm_empty_bottle_throw_resolve : public SpellScript
}
};
enum MoleMachine
{
SPELL_PORT_TO_GRIM_GUZZLER = 47523
};
// 49466 - Mole Machine Portal Schedule
class spell_brewfest_mole_machine_portal_schedule : public SpellScript
{
PrepareSpellScript(spell_brewfest_mole_machine_portal_schedule);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_PORT_TO_GRIM_GUZZLER });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_PORT_TO_GRIM_GUZZLER);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_brewfest_mole_machine_portal_schedule::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_event_brewfest()
{
RegisterSpellScript(spell_brewfest_giddyup);
@@ -683,4 +709,5 @@ void AddSC_event_brewfest()
RegisterSpellScript(spell_brewfest_botm_teach_language);
RegisterSpellScript(spell_brewfest_botm_weak_alcohol);
RegisterSpellScript(spell_brewfest_botm_empty_bottle_throw_resolve);
RegisterSpellScript(spell_brewfest_mole_machine_portal_schedule);
}

View File

@@ -476,10 +476,37 @@ class spell_lunar_festival_elune_candle : public SpellScript
}
};
enum ElunesBlessing
{
SPELL_ELUNES_BLESSING_QUEST_CREDIT = 26394
};
// 26393 - Elune's Blessing
class spell_lunar_festival_elunes_blessing : public SpellScript
{
PrepareSpellScript(spell_lunar_festival_elunes_blessing);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_ELUNES_BLESSING_QUEST_CREDIT });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_ELUNES_BLESSING_QUEST_CREDIT);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_lunar_festival_elunes_blessing::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_event_lunar_festival()
{
RegisterCreatureAI(npc_firework);
RegisterCreatureAI(npc_omen);
RegisterCreatureAI(npc_giant_spotlight);
RegisterSpellScript(spell_lunar_festival_elune_candle);
RegisterSpellScript(spell_lunar_festival_elunes_blessing);
}

View File

@@ -445,6 +445,51 @@ class spell_midsummer_fling_torch_missed : public SpellScript
}
};
enum CleansingFlames
{
SPELL_CREATE_FLAME_OF_DARNASSUS = 29099,
SPELL_CREATE_FLAME_OF_STORMWIND = 29101,
SPELL_CREATE_FLAME_OF_IRONFORGE = 29102,
SPELL_CREATE_FLAME_OF_ORGRIMMAR = 29130,
SPELL_CREATE_FLAME_OF_THUNDER_BLUFF = 29132,
SPELL_CREATE_FLAME_OF_THE_UNDERCITY = 29133,
SPELL_CREATE_FLAME_OF_SILVERMOON = 46689,
SPELL_CREATE_FLAME_OF_THE_EXODAR = 46690
};
// 29126 - Cleansing Flames
// 29137 - Cleansing Flames
// 29135 - Cleansing Flames
// 29136 - Cleansing Flames
// 29138 - Cleansing Flames
// 29139 - Cleansing Flames
// 46672 - Cleansing Flames
// 46671 - Cleansing Flames
class spell_midsummer_cleansing_flames : public SpellScript
{
PrepareSpellScript(spell_midsummer_cleansing_flames);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ _triggeredSpell });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpell);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_midsummer_cleansing_flames::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
uint32 _triggeredSpell;
public:
explicit spell_midsummer_cleansing_flames(CleansingFlames triggeredSpell) : _triggeredSpell(triggeredSpell) { }
};
void AddSC_event_midsummer()
{
RegisterSpellScript(spell_midsummer_braziers_hit);
@@ -458,4 +503,12 @@ void AddSC_event_midsummer()
RegisterSpellScript(spell_midsummer_fling_torch_triggered);
RegisterSpellScript(spell_midsummer_fling_torch_catch);
RegisterSpellScript(spell_midsummer_fling_torch_missed);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_darnassus", SPELL_CREATE_FLAME_OF_DARNASSUS);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_stormwind", SPELL_CREATE_FLAME_OF_STORMWIND);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_ironforge", SPELL_CREATE_FLAME_OF_IRONFORGE);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_orgrimmar", SPELL_CREATE_FLAME_OF_ORGRIMMAR);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_thunder_bluff", SPELL_CREATE_FLAME_OF_THUNDER_BLUFF);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_the_undercity", SPELL_CREATE_FLAME_OF_THE_UNDERCITY);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_silvermoon", SPELL_CREATE_FLAME_OF_SILVERMOON);
RegisterSpellScriptWithArgs(spell_midsummer_cleansing_flames, "spell_midsummer_cleansing_flames_the_exodar", SPELL_CREATE_FLAME_OF_THE_EXODAR);
}

View File

@@ -0,0 +1,74 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "Unit.h"
enum Spells
{
SPELL_TELEPORT_TO_TWIN_EMPS_EFFECT = 29181,
SPELL_TELEPORT_TO_FINAL_CHAMBER_EFFECT = 29190
};
// 29182 - Teleport to Twin Emperors
class spell_temple_of_ahnqiraj_teleport_to_twin_emperors : public SpellScript
{
PrepareSpellScript(spell_temple_of_ahnqiraj_teleport_to_twin_emperors);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TELEPORT_TO_TWIN_EMPS_EFFECT });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TELEPORT_TO_TWIN_EMPS_EFFECT);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_temple_of_ahnqiraj_teleport_to_twin_emperors::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 29188 - Teleport to Final Chamber
class spell_temple_of_ahnqiraj_teleport_to_final_chamber : public SpellScript
{
PrepareSpellScript(spell_temple_of_ahnqiraj_teleport_to_final_chamber);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TELEPORT_TO_FINAL_CHAMBER_EFFECT });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_TELEPORT_TO_FINAL_CHAMBER_EFFECT);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_temple_of_ahnqiraj_teleport_to_final_chamber::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_temple_of_ahnqiraj()
{
RegisterSpellScript(spell_temple_of_ahnqiraj_teleport_to_twin_emperors);
RegisterSpellScript(spell_temple_of_ahnqiraj_teleport_to_final_chamber);
}

View File

@@ -95,6 +95,7 @@ void AddSC_boss_twinemperors();
void AddSC_boss_ouro();
void AddSC_npc_anubisath_sentinel();
void AddSC_instance_temple_of_ahnqiraj();
void AddSC_temple_of_ahnqiraj();
// Wailing caverns
void AddSC_wailing_caverns();
void AddSC_instance_wailing_caverns();
@@ -208,6 +209,7 @@ void AddKalimdorScripts()
AddSC_boss_ouro();
AddSC_npc_anubisath_sentinel();
AddSC_instance_temple_of_ahnqiraj();
AddSC_temple_of_ahnqiraj();
// Wailing caverns
AddSC_wailing_caverns();
AddSC_instance_wailing_caverns();

View File

@@ -1729,6 +1729,67 @@ class spell_borean_tundra_arcane_prisoner_rescue : public SpellScript
}
};
/*######
## Quest 11896: Weakness to Lightning
######*/
enum WeaknessToLightning
{
SPELL_POWER_OF_THE_STORM = 46424
};
// 46550 - Weakness to Lightning: On Quest Complete
class spell_borean_tundra_weakness_to_lightning_on_quest_complete : public SpellScript
{
PrepareSpellScript(spell_borean_tundra_weakness_to_lightning_on_quest_complete);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_POWER_OF_THE_STORM });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->RemoveAurasDueToSpell(SPELL_POWER_OF_THE_STORM);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_borean_tundra_weakness_to_lightning_on_quest_complete::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 11711: Coward Delivery... Under 30 Minutes or it's Free
######*/
// 45958 - Signal Alliance
class spell_borean_tundra_signal_alliance : public SpellScript
{
PrepareSpellScript(spell_borean_tundra_signal_alliance);
bool Validate(SpellInfo const* spellInfo) override
{
return ValidateSpellInfo(
{
uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()),
uint32(spellInfo->GetEffect(EFFECT_1).CalcValue())
});
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
if (caster->HasAura(uint32(GetEffectInfo(EFFECT_0).CalcValue())))
caster->CastSpell(caster, uint32(GetEffectValue()));
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_borean_tundra_signal_alliance::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
}
};
void AddSC_borean_tundra()
{
RegisterCreatureAI(npc_beryl_sorcerer);
@@ -1756,4 +1817,6 @@ void AddSC_borean_tundra()
RegisterSpellScript(spell_borean_tundra_neural_needle);
RegisterSpellScript(spell_borean_tundra_prototype_neural_needle);
RegisterSpellScript(spell_borean_tundra_arcane_prisoner_rescue);
RegisterSpellScript(spell_borean_tundra_weakness_to_lightning_on_quest_complete);
RegisterSpellScript(spell_borean_tundra_signal_alliance);
}

View File

@@ -32,6 +32,7 @@ Script Data End */
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellScript.h"
#include "WorldSession.h"
/*******************************************************
@@ -255,8 +256,46 @@ private:
EventMap events;
};
// 54620 - Teleport Crystal: Teleport to Dalaran AICast Script
class spell_dalaran_teleport_to_dalaran : public SpellScript
{
PrepareSpellScript(spell_dalaran_teleport_to_dalaran);
void HandleScript(SpellEffIndex /*effIndex*/)
{
/// @todo: replace this with spell
if (Player* target = GetHitUnit()->ToPlayer())
target->TeleportTo(571, 5807.75f, 588.063f, 660.939f, 1.64659f);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_dalaran_teleport_to_dalaran::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 58622 - Teleport to Lake Wintergrasp
class spell_dalaran_teleport_to_lake_wintergrasp : public SpellScript
{
PrepareSpellScript(spell_dalaran_teleport_to_lake_wintergrasp);
void HandleScript(SpellEffIndex /*effIndex*/)
{
/// @todo: replace this with spell
if (Player* target = GetHitUnit()->ToPlayer())
target->TeleportTo(571, 5386.05f, 2840.97f, 418.675f, 3.14159f);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_dalaran_teleport_to_lake_wintergrasp::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_dalaran()
{
RegisterCreatureAI(npc_mageguard_dalaran);
RegisterCreatureAI(npc_minigob_manabonk);
RegisterSpellScript(spell_dalaran_teleport_to_dalaran);
RegisterSpellScript(spell_dalaran_teleport_to_lake_wintergrasp);
}

View File

@@ -974,6 +974,96 @@ class spell_dragonblight_corrosive_spit : public AuraScript
}
};
/*######
## Quest 12065, 12066: The Focus on the Beach
######*/
enum TheFocusOnTheBeach
{
SPELL_LEY_LINE_INFORMATION_01 = 47391
};
// 47393 - The Focus on the Beach: Quest Completion Script
class spell_dragonblight_focus_on_the_beach_quest_completion_script : public SpellScript
{
PrepareSpellScript(spell_dragonblight_focus_on_the_beach_quest_completion_script);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_LEY_LINE_INFORMATION_01 });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->RemoveAurasDueToSpell(SPELL_LEY_LINE_INFORMATION_01);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_dragonblight_focus_on_the_beach_quest_completion_script::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12083, 12084: Atop the Woodlands
######*/
enum AtopTheWoodlands
{
SPELL_LEY_LINE_INFORMATION_02 = 47473
};
// 47615 - Atop the Woodlands: Quest Completion Script
class spell_dragonblight_atop_the_woodlands_quest_completion_script : public SpellScript
{
PrepareSpellScript(spell_dragonblight_atop_the_woodlands_quest_completion_script);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_LEY_LINE_INFORMATION_02 });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->RemoveAurasDueToSpell(SPELL_LEY_LINE_INFORMATION_02);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_dragonblight_atop_the_woodlands_quest_completion_script::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12107, 12110: The End of the Line
######*/
enum TheEndOfTheLine
{
SPELL_LEY_LINE_INFORMATION_03 = 47636
};
// 47638 - The End of the Line: Quest Completion Script
class spell_dragonblight_end_of_the_line_quest_completion_script : public SpellScript
{
PrepareSpellScript(spell_dragonblight_end_of_the_line_quest_completion_script);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_LEY_LINE_INFORMATION_03 });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->RemoveAurasDueToSpell(SPELL_LEY_LINE_INFORMATION_03);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_dragonblight_end_of_the_line_quest_completion_script::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_dragonblight()
{
RegisterCreatureAI(npc_commander_eligor_dawnbringer);
@@ -992,4 +1082,7 @@ void AddSC_dragonblight()
RegisterSpellScript(spell_dragonblight_surge_needle_teleporter);
RegisterSpellScript(spell_dragonblight_fill_blood_unholy_frost_gem);
RegisterSpellScript(spell_dragonblight_corrosive_spit);
RegisterSpellScript(spell_dragonblight_focus_on_the_beach_quest_completion_script);
RegisterSpellScript(spell_dragonblight_atop_the_woodlands_quest_completion_script);
RegisterSpellScript(spell_dragonblight_end_of_the_line_quest_completion_script);
}

View File

@@ -953,6 +953,45 @@ class spell_warhead_fuse : public AuraScript
}
};
enum
{
SPELL_ENVISION_DRAKURU_01 = 47118,
SPELL_ENVISION_DRAKURU_02 = 47150,
SPELL_ENVISION_DRAKURU_03 = 47317,
SPELL_ENVISION_DRAKURU_04 = 47406,
SPELL_ENVISION_DRAKURU_05 = 50440
};
// 47117 - Script Cast Summon Image of Drakuru
// 47149 - Script Cast Summon Image of Drakuru 02
// 47316 - Script Cast Summon Image of Drakuru 03
// 47405 - Script Cast Summon Image of Drakuru 04
// 50439 - Script Cast Summon Image of Drakuru 05
class spell_grizzly_hills_script_cast_summon_image_of_drakuru : public SpellScript
{
PrepareSpellScript(spell_grizzly_hills_script_cast_summon_image_of_drakuru);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ _triggeredSpellId });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_grizzly_hills_script_cast_summon_image_of_drakuru::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
uint32 _triggeredSpellId;
public:
explicit spell_grizzly_hills_script_cast_summon_image_of_drakuru(uint32 triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { }
};
void AddSC_grizzly_hills()
{
RegisterCreatureAI(npc_emily);
@@ -970,4 +1009,9 @@ void AddSC_grizzly_hills()
RegisterSpellScript(spell_warhead_detonate);
RegisterSpellScript(spell_vehicle_warhead_fuse);
RegisterSpellScript(spell_warhead_fuse);
RegisterSpellScriptWithArgs(spell_grizzly_hills_script_cast_summon_image_of_drakuru, "spell_grizzly_hills_script_cast_summon_image_of_drakuru_01", SPELL_ENVISION_DRAKURU_01);
RegisterSpellScriptWithArgs(spell_grizzly_hills_script_cast_summon_image_of_drakuru, "spell_grizzly_hills_script_cast_summon_image_of_drakuru_02", SPELL_ENVISION_DRAKURU_02);
RegisterSpellScriptWithArgs(spell_grizzly_hills_script_cast_summon_image_of_drakuru, "spell_grizzly_hills_script_cast_summon_image_of_drakuru_03", SPELL_ENVISION_DRAKURU_03);
RegisterSpellScriptWithArgs(spell_grizzly_hills_script_cast_summon_image_of_drakuru, "spell_grizzly_hills_script_cast_summon_image_of_drakuru_04", SPELL_ENVISION_DRAKURU_04);
RegisterSpellScriptWithArgs(spell_grizzly_hills_script_cast_summon_image_of_drakuru, "spell_grizzly_hills_script_cast_summon_image_of_drakuru_05", SPELL_ENVISION_DRAKURU_05);
}

View File

@@ -937,6 +937,84 @@ class spell_icecrown_summon_freed_crusader : public SpellScript
}
};
/*######
## Quest 13236, 13395: Army of the Damned
######*/
enum ArmyOfTheDamned
{
SPELL_GIFT_OF_THE_LICH_KING = 58915,
SPELL_CONSUME_MINIONS = 58919
};
// 58916 - Gift of the Lich King
class spell_icecrown_gift_of_the_lich_king : public SpellScript
{
PrepareSpellScript(spell_icecrown_gift_of_the_lich_king);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GIFT_OF_THE_LICH_KING });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetHitUnit(), SPELL_GIFT_OF_THE_LICH_KING);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_icecrown_gift_of_the_lich_king::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// 58917 - Consume Minions
class spell_icecrown_consume_minions : public SpellScript
{
PrepareSpellScript(spell_icecrown_consume_minions);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_CONSUME_MINIONS });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetHitUnit(), SPELL_CONSUME_MINIONS);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_icecrown_consume_minions::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12995: Leave Our Mark
######*/
enum LeaveOurMark
{
NPC_LEAVE_OUR_MARK_KILL_CREDIT_BUNNY = 30220
};
// 23301 - Ebon Blade Banner
class spell_icecrown_ebon_blade_banner : public SpellScript
{
PrepareSpellScript(spell_icecrown_ebon_blade_banner);
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (Player* caster = GetCaster()->ToPlayer())
caster->KilledMonsterCredit(NPC_LEAVE_OUR_MARK_KILL_CREDIT_BUNNY);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_icecrown_ebon_blade_banner::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_icecrown()
{
RegisterCreatureAI(npc_argent_valiant);
@@ -951,4 +1029,7 @@ void AddSC_icecrown()
RegisterSpellScript(spell_icecrown_through_the_eye_the_eye_of_the_lk);
RegisterSpellScript(spell_icecrown_through_the_eye_kill_credit_to_master);
RegisterSpellScript(spell_icecrown_summon_freed_crusader);
RegisterSpellScript(spell_icecrown_gift_of_the_lich_king);
RegisterSpellScript(spell_icecrown_consume_minions);
RegisterSpellScript(spell_icecrown_ebon_blade_banner);
}

View File

@@ -906,6 +906,153 @@ class spell_zuldrak_chains_of_the_scourge : public SpellScript
}
};
/*######
## Quest 12721: Rampage
######*/
enum Rampage
{
SPELL_RAMPAGE_SUMMON_AKILZON = 52934,
SPELL_RAMPAGE_SUMMON_HALAZZI = 52935,
SPELL_RAMPAGE_SUMMON_JANALAI = 52936,
SPELL_RAMPAGE_SUMMON_NALORAKK = 52937
};
// 52933 - Rampage: Summon Zul'Aman Gods Master
class spell_zuldrak_rampage_summon_zulaman_gods_master : public SpellScript
{
PrepareSpellScript(spell_zuldrak_rampage_summon_zulaman_gods_master);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo(
{
SPELL_RAMPAGE_SUMMON_AKILZON,
SPELL_RAMPAGE_SUMMON_HALAZZI,
SPELL_RAMPAGE_SUMMON_JANALAI,
SPELL_RAMPAGE_SUMMON_NALORAKK
});
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
caster->CastSpell(caster, SPELL_RAMPAGE_SUMMON_AKILZON);
caster->CastSpell(caster, SPELL_RAMPAGE_SUMMON_HALAZZI);
caster->CastSpell(caster, SPELL_RAMPAGE_SUMMON_JANALAI);
caster->CastSpell(caster, SPELL_RAMPAGE_SUMMON_NALORAKK);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_zuldrak_rampage_summon_zulaman_gods_master::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12627: Breaking Through Jin'Alai
######*/
enum BreakingThroughJinAlai
{
SPELL_BREAKING_THROUGH_SUMMON_AKILZON = 51861,
SPELL_BREAKING_THROUGH_SUMMON_JANALAI = 52452,
SPELL_BREAKING_THROUGH_SUMMON_HALAZZI = 52453,
SPELL_BREAKING_THROUGH_SUMMON_NALORAKK = 52454
};
// 51862 - Breaking Through Jin'Alai: Summon Zul'Aman Gods Master
class spell_zuldrak_breaking_through_summon_zulaman_gods_master : public SpellScript
{
PrepareSpellScript(spell_zuldrak_breaking_through_summon_zulaman_gods_master);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo(
{
SPELL_BREAKING_THROUGH_SUMMON_AKILZON,
SPELL_BREAKING_THROUGH_SUMMON_JANALAI,
SPELL_BREAKING_THROUGH_SUMMON_HALAZZI,
SPELL_BREAKING_THROUGH_SUMMON_NALORAKK
});
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
caster->CastSpell(caster, SPELL_BREAKING_THROUGH_SUMMON_AKILZON);
caster->CastSpell(caster, SPELL_BREAKING_THROUGH_SUMMON_JANALAI);
caster->CastSpell(caster, SPELL_BREAKING_THROUGH_SUMMON_HALAZZI);
caster->CastSpell(caster, SPELL_BREAKING_THROUGH_SUMMON_NALORAKK);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_zuldrak_breaking_through_summon_zulaman_gods_master::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12630: Kickin' Nass and Takin' Manes
######*/
enum KickinNassAndTakinManes
{
SPELL_SUMMON_NASS = 51865
};
// 51864 - Player Summon Nass
// 51889 - Quest Accept Summon Nass
class spell_zuldrak_summon_nass : public SpellScript
{
PrepareSpellScript(spell_zuldrak_summon_nass);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SUMMON_NASS });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), SPELL_SUMMON_NASS);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_zuldrak_summon_nass::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 12730: Convocation at Zol'Heb
######*/
enum ConvocationAtZolHeb
{
SPELL_AKALIS_STUN = 52989
};
// 53010 - Convocation at Zol'Heb: Removef Akali's Stun
class spell_zuldrak_remove_akalis_stun : public SpellScript
{
PrepareSpellScript(spell_zuldrak_remove_akalis_stun);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_AKALIS_STUN });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->RemoveAurasDueToSpell(SPELL_AKALIS_STUN);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_zuldrak_remove_akalis_stun::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_zuldrak()
{
RegisterCreatureAI(npc_released_offspring_harkoa);
@@ -925,4 +1072,8 @@ void AddSC_zuldrak()
RegisterSpellScript(spell_zuldrak_cocooned_on_quest);
RegisterSpellScript(spell_zuldrak_scourgewagon_explosion);
RegisterSpellScript(spell_zuldrak_chains_of_the_scourge);
RegisterSpellScript(spell_zuldrak_rampage_summon_zulaman_gods_master);
RegisterSpellScript(spell_zuldrak_breaking_through_summon_zulaman_gods_master);
RegisterSpellScript(spell_zuldrak_summon_nass);
RegisterSpellScript(spell_zuldrak_remove_akalis_stun);
}

View File

@@ -0,0 +1,58 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptMgr.h"
#include "SpellScript.h"
#include "Unit.h"
enum
{
SPELL_SUMMON_ARCANE_FIEND_1 = 32349,
SPELL_SUMMON_ARCANE_FIEND_2 = 32353
};
// 32348 - Summon Arcane Fiends
class spell_mana_tombs_summon_arcane_fiends : public SpellScript
{
PrepareSpellScript(spell_mana_tombs_summon_arcane_fiends);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo(
{
SPELL_SUMMON_ARCANE_FIEND_1,
SPELL_SUMMON_ARCANE_FIEND_2
});
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
caster->CastSpell(caster, SPELL_SUMMON_ARCANE_FIEND_1);
caster->CastSpell(caster, SPELL_SUMMON_ARCANE_FIEND_2);
}
void Register() override
{
OnEffectHit += SpellEffectFn(spell_mana_tombs_summon_arcane_fiends::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_mana_tombs()
{
RegisterSpellScript(spell_mana_tombs_summon_arcane_fiends);
}

View File

@@ -25,6 +25,7 @@ void AddSC_instance_auchenai_crypts();
void AddSC_boss_pandemonius();
void AddSC_boss_nexusprince_shaffar();
void AddSC_instance_mana_tombs();
void AddSC_mana_tombs();
// Auchindoun - Sekketh Halls
void AddSC_boss_darkweaver_syth();
@@ -148,6 +149,7 @@ void AddOutlandScripts()
AddSC_boss_pandemonius();
AddSC_boss_nexusprince_shaffar();
AddSC_instance_mana_tombs();
AddSC_mana_tombs();
// Auchindoun - Sekketh Halls
AddSC_boss_darkweaver_syth();

View File

@@ -1013,6 +1013,36 @@ class spell_oscillating_field : public SpellScriptLoader
}
};
/*######
## Quest 10556: Scratches
######*/
enum Scratches
{
SPELL_LASHHAN_CHANNELING = 36904
};
// 37028 - Dispelling Analysis
class spell_bem_dispelling_analysis : public SpellScript
{
PrepareSpellScript(spell_bem_dispelling_analysis);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_LASHHAN_CHANNELING });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->RemoveAurasDueToSpell(SPELL_LASHHAN_CHANNELING);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_bem_dispelling_analysis::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void AddSC_blades_edge_mountains()
{
new npc_nether_drake();
@@ -1022,4 +1052,5 @@ void AddSC_blades_edge_mountains()
new go_apexis_relic();
new npc_oscillating_frequency_scanner_master_bunny();
new spell_oscillating_field();
RegisterSpellScript(spell_bem_dispelling_analysis);
}

View File

@@ -850,6 +850,39 @@ class spell_hellfire_peninsula_send_vengeance_to_player : public SpellScript
}
};
enum Translocation
{
SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_DOWN = 30140,
SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_UP = 30141
};
// 25650 - Translocate
// 25652 - Translocate
class spell_hellfire_peninsula_translocation_falcon_watch : public SpellScript
{
PrepareSpellScript(spell_hellfire_peninsula_translocation_falcon_watch);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ _triggeredSpellId });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_hellfire_peninsula_translocation_falcon_watch::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
uint32 _triggeredSpellId;
public:
explicit spell_hellfire_peninsula_translocation_falcon_watch(Translocation triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { }
};
void AddSC_hellfire_peninsula()
{
new npc_colonel_jules();
@@ -860,4 +893,6 @@ void AddSC_hellfire_peninsula()
RegisterCreatureAI(npc_fear_controller);
RegisterSpellScript(spell_hellfire_peninsula_send_vengeance);
RegisterSpellScript(spell_hellfire_peninsula_send_vengeance_to_player);
RegisterSpellScriptWithArgs(spell_hellfire_peninsula_translocation_falcon_watch, "spell_hellfire_peninsula_translocation_falcon_watch_tower_down", SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_DOWN);
RegisterSpellScriptWithArgs(spell_hellfire_peninsula_translocation_falcon_watch, "spell_hellfire_peninsula_translocation_falcon_watch_tower_up", SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_UP);
}

View File

@@ -1662,6 +1662,75 @@ class spell_shadowmoon_quest_credit_crazed_colossus : public SpellScript
}
};
/*######
## Quest 10637, 10688: A Necessary Distraction
######*/
enum ANecessaryDistraction
{
SPELL_BANISH_AZALOTH = 37833
};
// 37834 - Unbanish Azaloth
class spell_shadowmoon_unbanish_azaloth : public SpellScript
{
PrepareSpellScript(spell_shadowmoon_unbanish_azaloth);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BANISH_AZALOTH });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->RemoveAurasDueToSpell(SPELL_BANISH_AZALOTH);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_shadowmoon_unbanish_azaloth::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
/*######
## Quest 10672: Frankly, It Makes No Sense...
######*/
enum FranklyItMakesNoSense
{
SPELL_ARCANO_SCORP_CONTROL_01 = 37868,
SPELL_ARCANO_SCORP_CONTROL_02 = 37893,
SPELL_ARCANO_SCORP_CONTROL_03 = 37895
};
// 37867 - Arcano-Scorp Control
// 37892 - Arcano-Scorp Control
// 37894 - Arcano-Scorp Control
class spell_shadowmoon_arcano_scorp_control : public SpellScript
{
PrepareSpellScript(spell_shadowmoon_arcano_scorp_control);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ _triggeredSpellId });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_shadowmoon_arcano_scorp_control::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
uint32 _triggeredSpellId;
public:
explicit spell_shadowmoon_arcano_scorp_control(uint32 triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { }
};
void AddSC_shadowmoon_valley()
{
new npc_invis_infernal_caster();
@@ -1678,4 +1747,8 @@ void AddSC_shadowmoon_valley()
new npc_shadowmoon_tuber_node();
RegisterSpellScript(spell_shadowmoon_illidari_agent_illusion);
RegisterSpellScript(spell_shadowmoon_quest_credit_crazed_colossus);
RegisterSpellScript(spell_shadowmoon_unbanish_azaloth);
RegisterSpellScriptWithArgs(spell_shadowmoon_arcano_scorp_control, "spell_shadowmoon_arcano_scorp_control_01", SPELL_ARCANO_SCORP_CONTROL_01);
RegisterSpellScriptWithArgs(spell_shadowmoon_arcano_scorp_control, "spell_shadowmoon_arcano_scorp_control_02", SPELL_ARCANO_SCORP_CONTROL_02);
RegisterSpellScriptWithArgs(spell_shadowmoon_arcano_scorp_control, "spell_shadowmoon_arcano_scorp_control_03", SPELL_ARCANO_SCORP_CONTROL_03);
}

View File

@@ -317,6 +317,43 @@ class spell_terokkar_cancel_shadowy_disguise : public SpellScript
}
};
enum Translocation
{
SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_DOWN = 32572,
SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_UP = 32568,
SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_DOWN = 32569,
SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_UP = 32571
};
// 25143 - Translocate
// 29128 - Translocate
// 29129 - Translocate
// 25140 - Translocate
class spell_terokkar_translocation_firewing_point : public SpellScript
{
PrepareSpellScript(spell_terokkar_translocation_firewing_point);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ _triggeredSpellId });
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_terokkar_translocation_firewing_point::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
uint32 _triggeredSpellId;
public:
explicit spell_terokkar_translocation_firewing_point(Translocation triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { }
};
void AddSC_terokkar_forest()
{
new npc_unkor_the_ruthless();
@@ -326,4 +363,8 @@ void AddSC_terokkar_forest()
RegisterSpellScript(spell_terokkar_shadowy_disguise_cast_from_questgiver);
RegisterSpellScript(spell_terokkar_shadowy_disguise);
RegisterSpellScript(spell_terokkar_cancel_shadowy_disguise);
RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_building_down", SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_DOWN);
RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_building_up", SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_UP);
RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_tower_down", SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_DOWN);
RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_tower_up", SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_UP);
}