diff options
author | offl <11556157+offl@users.noreply.github.com> | 2022-03-23 23:22:55 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-26 16:08:12 +0100 |
commit | a36e815ac666143f8cb765d63845d9bb7cebd5af (patch) | |
tree | 463d9d6e5826e0d96893a7ec28913655d09e5ba5 | |
parent | 3bf6dcc6756161adee8b2a37df26620d2290e447 (diff) |
Scripts/Quest: Update 'Ample Inspiration' (12828) (#27885)
(cherry picked from commit 45f30ceee27001015e42cafdd9081144910457d4)
-rw-r--r-- | sql/updates/world/master/2022_03_26_34_world_2022_03_23_00_world.sql | 19 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_storm_peaks.cpp | 77 |
2 files changed, 96 insertions, 0 deletions
diff --git a/sql/updates/world/master/2022_03_26_34_world_2022_03_23_00_world.sql b/sql/updates/world/master/2022_03_26_34_world_2022_03_23_00_world.sql new file mode 100644 index 00000000000..d86be053413 --- /dev/null +++ b/sql/updates/world/master/2022_03_26_34_world_2022_03_23_00_world.sql @@ -0,0 +1,19 @@ +-- +DELETE FROM `spell_linked_spell` WHERE `spell_trigger` = 54581; + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_storm_peaks_mammoth_explosion_master','spell_storm_peaks_unstable_explosive_detonation'); +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(54581,'spell_storm_peaks_mammoth_explosion_master'), +(54892,'spell_storm_peaks_unstable_explosive_detonation'); + +UPDATE `smart_scripts` SET `action_param1` = 2000, `comment` = "Ironwool Mammoth - On Spellhit 'Throw U.D.E.D.' - Delayed Despawn" WHERE `entryorguid` = 29402 AND `source_type` = 0 AND `id` = 2; + +UPDATE `smart_scripts` SET `action_type` = 11, `comment` = "U.D.E.D. Dispenser - On Gossip Option 0 Selected - Cast 'Forceitem U.D.E.D.'" WHERE `entryorguid` = 191553 AND `source_type` = 1 AND `id` = 1; + +DELETE FROM `smart_scripts` WHERE `entryorguid` = 29524 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 +(29524,0,0,1,11,0,100,0,0,0,0,0,0,11,54625,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Mammoth Meat Bunny - On Spawn - Cast 'Summon Mammoth Meat'"), +(29524,0,1,0,61,0,100,0,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Mammoth Meat Bunny - On Spawn - Despawn"); + +DELETE FROM `gameobject` WHERE `id` = 191567; +DELETE FROM `spawn_group` WHERE `spawnId` IN (57902,57903,57904,57905,57906,57907) AND `spawnType` = 1; diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index db8e35eecdb..febb0674067 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -1442,6 +1442,81 @@ class spell_bear_flank_fail : public AuraScript } }; +/*###### +## Quest 12828: Ample Inspiration +######*/ + +enum AmpleInspiration +{ + SPELL_QUIET_SUICIDE = 3617, + SPELL_SUMMON_MAIN_MAMMOTH_MEAT = 57444, + SPELL_MAMMOTH_SUMMON_OBJECT_1 = 54627, + SPELL_MAMMOTH_SUMMON_OBJECT_2 = 54628, + SPELL_MAMMOTH_SUMMON_OBJECT_3 = 54623, + + ITEM_EXPLOSIVE_DEVICE = 40686 +}; + +// 54581 - Mammoth Explosion Spell Spawner +class spell_storm_peaks_mammoth_explosion_master : public SpellScript +{ + PrepareSpellScript(spell_storm_peaks_mammoth_explosion_master); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_QUIET_SUICIDE, + SPELL_SUMMON_MAIN_MAMMOTH_MEAT, + SPELL_MAMMOTH_SUMMON_OBJECT_1, + SPELL_MAMMOTH_SUMMON_OBJECT_2, + SPELL_MAMMOTH_SUMMON_OBJECT_3 + }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_QUIET_SUICIDE); + caster->CastSpell(caster, SPELL_SUMMON_MAIN_MAMMOTH_MEAT); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_1); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_1); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_1); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_2); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_2); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_2); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_3); + caster->CastSpell(caster, SPELL_MAMMOTH_SUMMON_OBJECT_3); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_storm_peaks_mammoth_explosion_master::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +// 54892 - Unstable Explosive Detonation +class spell_storm_peaks_unstable_explosive_detonation : public SpellScript +{ + PrepareSpellScript(spell_storm_peaks_unstable_explosive_detonation); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return sObjectMgr->GetItemTemplate(ITEM_EXPLOSIVE_DEVICE); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Player* caster = GetCaster()->ToPlayer()) + caster->DestroyItemCount(ITEM_EXPLOSIVE_DEVICE, 1, true); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_storm_peaks_unstable_explosive_detonation::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_storm_peaks() { new npc_brunnhildar_prisoner(); @@ -1468,4 +1543,6 @@ void AddSC_storm_peaks() RegisterSpellScript(spell_read_pronouncement); RegisterSpellScript(spell_bear_flank_master); RegisterSpellScript(spell_bear_flank_fail); + RegisterSpellScript(spell_storm_peaks_mammoth_explosion_master); + RegisterSpellScript(spell_storm_peaks_unstable_explosive_detonation); } |