From 3b13fe620762c76d0bd6b0f4cf4f8bacffe82e05 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Sun, 29 Jun 2025 13:28:21 +0200 Subject: [PATCH] fix(Scripts/Spells): add script to GM spell CooldownAll (#22383) --- .../rev_1751148569961282780.sql | 3 +++ src/server/scripts/Spells/spell_generic.cpp | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1751148569961282780.sql diff --git a/data/sql/updates/pending_db_world/rev_1751148569961282780.sql b/data/sql/updates/pending_db_world/rev_1751148569961282780.sql new file mode 100644 index 000000000..6af092896 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1751148569961282780.sql @@ -0,0 +1,3 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 29313 AND `ScriptName` = 'spell_gen_cooldown_all'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (29313 , 'spell_gen_cooldown_all'); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 0678db1e4..3c879a3e0 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -5431,6 +5431,22 @@ private: uint32 _spellId; }; +class spell_gen_cooldown_all : public SpellScript +{ + PrepareSpellScript(spell_gen_cooldown_all); + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Player* player = GetHitPlayer()) + player->RemoveAllSpellCooldown(); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_gen_cooldown_all::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_generic_spell_scripts() { RegisterSpellScript(spell_silithyst); @@ -5593,4 +5609,5 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_proc_on_victim); RegisterSpellScriptWithArgs(spell_gen_translocate, "spell_gen_translocate_down", SPELL_TRANSLOCATION_DOWN); RegisterSpellScriptWithArgs(spell_gen_translocate, "spell_gen_translocate_up", SPELL_TRANSLOCATION_UP); + RegisterSpellScript(spell_gen_cooldown_all); }