aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-05-09 21:18:02 +0300
committerGitHub <noreply@github.com>2025-05-09 20:18:02 +0200
commit71a8e05fed91714373e6c885709867cac77045bb (patch)
treeec970a3f4a2178cd5706177a78be59ee814be9ec
parent5ed83ed27c676ae2dcf661409550ce0fcbffe5c8 (diff)
Scripts/Spells: Implement generic spell script to cancel aura by id from spell effect basepoints (#30908)
-rw-r--r--sql/updates/world/3.3.5/2025_05_09_00_world.sql15
-rw-r--r--src/server/scripts/Events/love_is_in_the_air.cpp22
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp18
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp26
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp21
5 files changed, 36 insertions, 66 deletions
diff --git a/sql/updates/world/3.3.5/2025_05_09_00_world.sql b/sql/updates/world/3.3.5/2025_05_09_00_world.sql
new file mode 100644
index 00000000000..9daa49f9c42
--- /dev/null
+++ b/sql/updates/world/3.3.5/2025_05_09_00_world.sql
@@ -0,0 +1,15 @@
+--
+UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_cancel_aura' WHERE `ScriptName` = 'spell_love_is_in_the_air_fragrant_air_analysis'; -- 70192
+UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_cancel_aura' WHERE `ScriptName` = 'spell_storm_peaks_remove_collapsing_cave_aura'; -- 55693
+UPDATE `spell_script_names` SET `ScriptName` = 'spell_gen_cancel_aura' WHERE `ScriptName` = 'spell_deathbringer_remove_marks'; -- 72257
+
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_gen_cancel_aura' AND `spell_id` IN (45604,56923,59556,60654,69171,69298,70079,69098);
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(45604, 'spell_gen_cancel_aura'),
+(56923, 'spell_gen_cancel_aura'),
+(59556, 'spell_gen_cancel_aura'),
+(60654, 'spell_gen_cancel_aura'),
+(69171, 'spell_gen_cancel_aura'),
+(69298, 'spell_gen_cancel_aura'),
+(70079, 'spell_gen_cancel_aura'),
+(69098, 'spell_gen_cancel_aura');
diff --git a/src/server/scripts/Events/love_is_in_the_air.cpp b/src/server/scripts/Events/love_is_in_the_air.cpp
index c79aea25f16..2eb6c184f62 100644
--- a/src/server/scripts/Events/love_is_in_the_air.cpp
+++ b/src/server/scripts/Events/love_is_in_the_air.cpp
@@ -158,27 +158,6 @@ enum SomethingStinks
SPELL_HEAVILY_PERFUMED = 71507
};
-// 70192 - Fragrant Air Analysis
-class spell_love_is_in_the_air_fragrant_air_analysis : public SpellScript
-{
- PrepareSpellScript(spell_love_is_in_the_air_fragrant_air_analysis);
-
- bool Validate(SpellInfo const* spellInfo) override
- {
- return ValidateSpellInfo({ uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()) });
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
- }
-
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_love_is_in_the_air_fragrant_air_analysis::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
-};
-
// 71507 - Heavily Perfumed
class spell_love_is_in_the_air_heavily_perfumed : public AuraScript
{
@@ -346,7 +325,6 @@ void AddSC_event_love_is_in_the_air()
{
RegisterSpellScript(spell_love_is_in_the_air_romantic_picnic);
RegisterSpellScript(spell_love_is_in_the_air_create_heart_candy);
- RegisterSpellScript(spell_love_is_in_the_air_fragrant_air_analysis);
RegisterSpellScript(spell_love_is_in_the_air_heavily_perfumed);
RegisterSpellScript(spell_love_is_in_the_air_recently_analyzed);
RegisterSpellScript(spell_love_is_in_the_air_sample_satisfaction);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 04ddea79fe6..6b26046ca7d 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -1222,23 +1222,6 @@ class spell_deathbringer_boiling_blood : public SpellScript
}
};
-// 72257 - Remove Marks of the Fallen Champion
-class spell_deathbringer_remove_marks : public SpellScript
-{
- PrepareSpellScript(spell_deathbringer_remove_marks);
-
- void HandleScript(SpellEffIndex effIndex)
- {
- PreventHitDefaultEffect(effIndex);
- GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
- }
-
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_deathbringer_remove_marks::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
-};
-
class achievement_ive_gone_and_made_a_mess : public AchievementCriteriaScript
{
public:
@@ -1272,7 +1255,6 @@ void AddSC_boss_deathbringer_saurfang()
RegisterSpellScript(spell_deathbringer_blood_nova);
RegisterSpellScript(spell_deathbringer_blood_nova_targeting);
RegisterSpellScript(spell_deathbringer_boiling_blood);
- RegisterSpellScript(spell_deathbringer_remove_marks);
// Achievements
new achievement_ive_gone_and_made_a_mess();
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index f2052873bf5..8011dee62a3 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -1048,31 +1048,6 @@ class spell_player_mount_wyrm : public AuraScript
};
/*######
-## Quest 12823: A Flawless Plan
-######*/
-
-// 55693 - Remove Collapsing Cave Aura
-class spell_storm_peaks_remove_collapsing_cave_aura : public SpellScript
-{
- PrepareSpellScript(spell_storm_peaks_remove_collapsing_cave_aura);
-
- bool Validate(SpellInfo const* spellInfo) override
- {
- return ValidateSpellInfo({ uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()) });
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
- }
-
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_storm_peaks_remove_collapsing_cave_aura::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
-};
-
-/*######
## Quest 12987: Mounting Hodir's Helm
######*/
@@ -1293,7 +1268,6 @@ void AddSC_storm_peaks()
RegisterSpellScript(spell_claw_swipe_check);
RegisterSpellScript(spell_fatal_strike);
RegisterSpellScript(spell_player_mount_wyrm);
- RegisterSpellScript(spell_storm_peaks_remove_collapsing_cave_aura);
RegisterSpellScript(spell_storm_peaks_read_pronouncement);
RegisterSpellScript(spell_storm_peaks_bear_flank_master);
RegisterSpellScript(spell_storm_peaks_bear_flank_fail);
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 8edb09cc60a..b1ab38a8020 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -703,6 +703,26 @@ class spell_gen_burning_depths_necrolyte_image : public AuraScript
}
};
+class spell_gen_cancel_aura : public SpellScript
+{
+ PrepareSpellScript(spell_gen_cancel_aura);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return ValidateSpellInfo({ uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()) });
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetHitUnit()->RemoveAurasDueToSpell(uint32(GetEffectValue()));
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_cancel_aura::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
enum CannibalizeSpells
{
SPELL_CANNIBALIZE_TRIGGERED = 20578
@@ -4585,6 +4605,7 @@ void AddSC_generic_spell_scripts()
RegisterSpellScriptWithArgs(spell_gen_break_shield, "spell_gen_break_shield");
RegisterSpellScriptWithArgs(spell_gen_break_shield, "spell_gen_tournament_counterattack");
RegisterSpellScript(spell_gen_burning_depths_necrolyte_image);
+ RegisterSpellScript(spell_gen_cancel_aura);
RegisterSpellScript(spell_gen_cannibalize);
RegisterSpellScript(spell_gen_chains_of_ice);
RegisterSpellScript(spell_gen_chaos_blast);