From ea16c4ac9fcbef26ce28865212af904e2a0f6db8 Mon Sep 17 00:00:00 2001 From: Keader Date: Sat, 17 Aug 2019 11:48:27 -0300 Subject: [PATCH] Scripts/Spells: Implemented Wyvern Sting script - Removed old hack with spell_linked_spell --- .../world/3.3.5/2019_08_17_00_world.sql | 6 +++ src/server/scripts/Spells/spell_hunter.cpp | 41 ++++++++++++++++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 sql/updates/world/3.3.5/2019_08_17_00_world.sql diff --git a/sql/updates/world/3.3.5/2019_08_17_00_world.sql b/sql/updates/world/3.3.5/2019_08_17_00_world.sql new file mode 100644 index 00000000000..860c830e416 --- /dev/null +++ b/sql/updates/world/3.3.5/2019_08_17_00_world.sql @@ -0,0 +1,6 @@ +-- Burn with fire spell_linked_spell hack +DELETE FROM spell_linked_spell WHERE `spell_trigger` IN (-19386, -24132, -24133, -27068, -49011, -49012); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_hun_wyvern_sting'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(-19386,'spell_hun_wyvern_sting'); diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index bb4f38ce06d..6c0eca8911f 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -71,7 +71,13 @@ enum HunterSpells SPELL_HUNTER_GLYPH_OF_MEND_PET_HAPPINESS = 57894, SPELL_HUNTER_EXPLOSIVE_SHOT_DAMAGE = 53352, SPELL_HUNTER_FEEDING_FRENZY_BUFF_R1 = 60096, - SPELL_HUNTER_FEEDING_FRENZY_BUFF_R2 = 60097 + SPELL_HUNTER_FEEDING_FRENZY_BUFF_R2 = 60097, + SPELL_HUNTER_WYVERN_STING_DOT_R1 = 24131, + SPELL_HUNTER_WYVERN_STING_DOT_R2 = 24134, + SPELL_HUNTER_WYVERN_STING_DOT_R3 = 24135, + SPELL_HUNTER_WYVERN_STING_DOT_R4 = 27069, + SPELL_HUNTER_WYVERN_STING_DOT_R5 = 49009, + SPELL_HUNTER_WYVERN_STING_DOT_R6 = 49010 }; // 13161 - Aspect of the Beast @@ -1628,6 +1634,38 @@ class spell_hun_viper_attack_speed : public SpellScriptLoader } }; +// -19386 - Wyvern Sting +class spell_hun_wyvern_sting : public AuraScript +{ + PrepareAuraScript(spell_hun_wyvern_sting); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_HUNTER_WYVERN_STING_DOT_R1, + SPELL_HUNTER_WYVERN_STING_DOT_R2, + SPELL_HUNTER_WYVERN_STING_DOT_R3, + SPELL_HUNTER_WYVERN_STING_DOT_R4, + SPELL_HUNTER_WYVERN_STING_DOT_R5, + SPELL_HUNTER_WYVERN_STING_DOT_R6 + }); + } + + void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) + { + uint8 rank = sSpellMgr->GetSpellRank(GetId()); + uint32 spellId = sSpellMgr->GetSpellWithRank(SPELL_HUNTER_WYVERN_STING_DOT_R1, rank); + if (Unit* caster = GetCaster()) + caster->CastSpell(GetTarget(), spellId, aurEff); + } + + void Register() override + { + AfterEffectRemove += AuraEffectRemoveFn(spell_hun_wyvern_sting::OnRemove, EFFECT_0, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_hunter_spell_scripts() { new spell_hun_aspect_of_the_beast(); @@ -1664,4 +1702,5 @@ void AddSC_hunter_spell_scripts() new spell_hun_thrill_of_the_hunt(); new spell_hun_t9_4p_bonus(); new spell_hun_viper_attack_speed(); + RegisterAuraScript(spell_hun_wyvern_sting); }