diff options
author | Keader <keader.android@gmail.com> | 2019-08-17 11:48:27 -0300 |
---|---|---|
committer | Keader <keader.android@gmail.com> | 2019-08-17 11:48:27 -0300 |
commit | ea16c4ac9fcbef26ce28865212af904e2a0f6db8 (patch) | |
tree | a7eb471294fdb3e57365bfd001011313d8b3e09c | |
parent | a054ce864d29127cef2cb68e1c19328e28e5e90b (diff) |
Scripts/Spells: Implemented Wyvern Sting script
- Removed old hack with spell_linked_spell
-rw-r--r-- | sql/updates/world/3.3.5/2019_08_17_00_world.sql | 6 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_hunter.cpp | 41 |
2 files changed, 46 insertions, 1 deletions
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); } |