diff options
| -rw-r--r-- | sql/updates/world/2013_07_20_00_world_spell_script_misc_434.sql | 8 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 22 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 4 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 40 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_hunter.cpp | 5 |
5 files changed, 53 insertions, 26 deletions
diff --git a/sql/updates/world/2013_07_20_00_world_spell_script_misc_434.sql b/sql/updates/world/2013_07_20_00_world_spell_script_misc_434.sql new file mode 100644 index 00000000000..cde03c0ad69 --- /dev/null +++ b/sql/updates/world/2013_07_20_00_world_spell_script_misc_434.sql @@ -0,0 +1,8 @@ +DELETE FROM `spell_script_names` WHERE `spell_id` IN (-48979); +INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES +(-48979,'spell_dk_butchery'); + +DELETE FROM `spell_ranks` WHERE `first_spell_id`=48979; +INSERT INTO `spell_ranks` (`first_spell_id`, `spell_id`, `rank`) VALUES +(48979, 48979, 1), +(48979, 49483, 2); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ea89d869785..75668bc3b3a 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5912,20 +5912,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere triggered_spell_id = 24406; break; } - case 2236: // Thrill of the Hunt - { - if (!procSpell) - return false; - - basepoints0 = CalculatePct(procSpell->CalcPowerCost(this, SpellSchoolMask(procSpell->SchoolMask)), triggerAmount); - - if (basepoints0 <= 0) - return false; - - target = this; - triggered_spell_id = 34720; - break; - } } break; } @@ -6511,14 +6497,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere triggered_spell_id = dummySpell->Effects[effIndex].TriggerSpell; break; } - // Butchery - if (dummySpell->SpellIconID == 2664) - { - basepoints0 = triggerAmount; - triggered_spell_id = 50163; - target = this; - break; - } // Dancing Rune Weapon if (dummySpell->Id == 49028) { diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 284b45eb8be..cedafc08883 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3093,8 +3093,8 @@ void SpellMgr::LoadSpellInfoCorrections() case 20336: case 20337: case 63320: // Glyph of Life Tap - case 53228: // Rapid Killing (Rang 1) - case 53232: // Rapid Killing (Rang 2) + case 53228: // Rapid Killing (Rank 1) + case 53232: // Rapid Killing (Rank 2) // Entries were not updated after spell effect change, we have to do that manually :/ spellInfo->AttributesEx3 |= SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED; break; diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index f0dca9a8a82..ff226760e1c 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -33,6 +33,7 @@ enum DeathKnightSpells SPELL_DK_BLOOD_BOIL_TRIGGERED = 65658, SPELL_DK_BLOOD_GORGED_HEAL = 50454, SPELL_DK_BLOOD_PRESENCE = 48266, + SPELL_DK_BUTCHERY = 50163, SPELL_DK_CORPSE_EXPLOSION_TRIGGERED = 43999, SPELL_DK_CORPSE_EXPLOSION_VISUAL = 51270, SPELL_DK_DEATH_COIL_DAMAGE = 47632, @@ -306,6 +307,44 @@ class spell_dk_blood_gorged : public SpellScriptLoader } }; +// -48979 - Butchery +class spell_dk_butchery : public SpellScriptLoader +{ + public: + spell_dk_butchery() : SpellScriptLoader("spell_dk_butchery") { } + + class spell_dk_blood_gorged_AuraScript : public AuraScript + { + PrepareAuraScript(spell_dk_blood_gorged_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(SPELL_DK_BUTCHERY)) + return false; + return true; + } + + void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) + { + PreventDefaultAction(); + int32 rune = aurEff->GetAmount(); + + GetTarget()->CastCustomSpell(SPELL_DK_BUTCHERY, SPELLVALUE_BASE_POINT0, rune, GetTarget(), true, NULL, aurEff); + + } + + void Register() OVERRIDE + { + OnEffectProc += AuraEffectProcFn(spell_dk_blood_gorged_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + } + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_dk_blood_gorged_AuraScript(); + } +}; + // 49158 - Corpse Explosion (51325, 51326, 51327, 51328) class spell_dk_corpse_explosion : public SpellScriptLoader { @@ -1049,6 +1088,7 @@ void AddSC_deathknight_spell_scripts() new spell_dk_anti_magic_zone(); new spell_dk_blood_boil(); new spell_dk_blood_gorged(); + new spell_dk_butchery(); new spell_dk_corpse_explosion(); new spell_dk_death_coil(); new spell_dk_death_gate(); diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index e3e9f9f3a57..4f8dbdff1ae 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -39,6 +39,7 @@ enum HunterSpells SPELL_HUNTER_CHIMERA_SHOT_VIPER = 53358, SPELL_HUNTER_CHIMERA_SHOT_SCORPID = 53359, SPELL_HUNTER_GLYPH_OF_ASPECT_OF_THE_VIPER = 56851, + SPELL_HUNTER_IMPROVED_MEND_PET = 24406, SPELL_HUNTER_INVIGORATION_TRIGGERED = 53398, SPELL_HUNTER_MASTERS_CALL_TRIGGERED = 62305, SPELL_HUNTER_MISDIRECTION_PROC = 35079, @@ -597,7 +598,7 @@ class spell_hun_rapid_recuperation : public SpellScriptLoader { // This effect only from Rapid Fire (ability cast) if (!(eventInfo.GetDamageInfo()->GetSpellInfo()->SpellFamilyFlags[0] & 0x20)) - return; + PreventDefaultAction(); } void HandleFocusRegen(AuraEffect const* aurEff, ProcEventInfo& eventInfo) @@ -613,7 +614,7 @@ class spell_hun_rapid_recuperation : public SpellScriptLoader void Register() OVERRIDE { - OnEffectProc += AuraEffectProcFn(spell_hun_rapid_recuperation_AuraScript::HandleAbilityCast, EFFECT_0, SPELL_AURA_DUMMY); + OnEffectProc += AuraEffectProcFn(spell_hun_rapid_recuperation_AuraScript::HandleAbilityCast, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); OnEffectProc += AuraEffectProcFn(spell_hun_rapid_recuperation_AuraScript::HandleFocusRegen, EFFECT_1, SPELL_AURA_DUMMY); } }; |
