diff --git a/data/sql/updates/pending_db_world/rev_1687388954869141000.sql b/data/sql/updates/pending_db_world/rev_1687388954869141000.sql new file mode 100644 index 000000000..1a533d68c --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1687388954869141000.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_murmur_touch', 'spell_shockwave_knockback'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(33686, 'spell_shockwave_knockback'); diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 36b10f43f..b1cd844c7 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -208,25 +208,27 @@ class spell_murmur_thundering_storm : public SpellScript } }; -// 33711/38794 - Murmur's Touch -class spell_murmur_touch : public AuraScript +// 33686 - Shockwave (Murmur's Touch final explosion) +class spell_shockwave_knockback : public SpellScript { - PrepareAuraScript(spell_murmur_touch); + PrepareSpellScript(spell_shockwave_knockback); - void HandleAfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + bool Validate(SpellInfo const* /*spellInfo*/) override { - if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) + return ValidateSpellInfo({ SPELL_SHOCKWAVE_SERVERSIDE }); + } + + void HandleOnHit() + { + if (Unit* target = GetHitUnit()) { - if (GetTarget()) - { - GetTarget()->CastSpell(GetTarget(), SPELL_SHOCKWAVE_SERVERSIDE, true); - } + target->CastSpell(target, SPELL_SHOCKWAVE_SERVERSIDE, true); } } void Register() override { - AfterEffectRemove += AuraEffectRemoveFn(spell_murmur_touch::HandleAfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL); + OnHit += SpellHitFn(spell_shockwave_knockback::HandleOnHit); } }; @@ -252,6 +254,6 @@ void AddSC_boss_murmur() { RegisterShadowLabyrinthCreatureAI(boss_murmur); RegisterSpellScript(spell_murmur_thundering_storm); - RegisterSpellScript(spell_murmur_touch); + RegisterSpellScript(spell_shockwave_knockback); RegisterSpellScript(spell_murmur_sonic_boom_effect); }