diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-07-23 16:28:23 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-07-23 16:28:23 +0200 |
| commit | 98f51b47b0306d7811c7407d479404b8c0417802 (patch) | |
| tree | ffcc5e04ea0cf7d94360f10a21e59552e6ec6562 | |
| parent | 059d23de2d0b9b8b5d63ffde050dbbed9bcf0cf3 (diff) | |
DB/Spells: Fix paladin talent "Sanctuary" for 4.3.4
| -rw-r--r-- | sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql | 7 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 128 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 62 |
3 files changed, 69 insertions, 128 deletions
diff --git a/sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql b/sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql new file mode 100644 index 00000000000..9c5cac5ea43 --- /dev/null +++ b/sql/updates/world/2013_07_23_04_world_spell_spell_misc_434.sql @@ -0,0 +1,7 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_pal_blessing_of_sanctuary'; + +DELETE FROM `spell_proc_event` WHERE `entry` IN (20911,84628,84629); +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES +(20911, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0), +(84628, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0), +(84629, 0, 0, 0, 0, 0, 0, 0x50, 0, 0, 0), diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index ccd0ced8049..752f3823210 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -33,6 +33,8 @@ enum DeathKnightSpells SPELL_DK_BLOOD_BOIL_TRIGGERED = 65658, SPELL_DK_BLOOD_GORGED_HEAL = 50454, SPELL_DK_BLOOD_PRESENCE = 48266, + SPELL_DK_BLOOD_SHIELD_MASTERY = 77513, + SPELL_DK_BLOOD_SHIELD_ABSORB = 77535, SPELL_DK_BUTCHERY = 50163, SPELL_DK_CORPSE_EXPLOSION_TRIGGERED = 43999, SPELL_DK_CORPSE_EXPLOSION_VISUAL = 51270, @@ -52,15 +54,7 @@ enum DeathKnightSpells SPELL_DK_SCOURGE_STRIKE_TRIGGERED = 70890, SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1 = 49189, SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1 = 52284, - SPELL_DK_UNHOLY_PRESENCE = 48265, - - SPELL_DK_BLOOD_SHIELD_MASTERY = 77513, - SPELL_DK_BLOOD_SHIELD_ABSORB = 77535 -}; - -enum DeathKnightSpellIcons -{ - DK_ICON_ID_IMPROVED_DEATH_STRIKE = 2751 + SPELL_DK_UNHOLY_PRESENCE = 48265 }; // 50462 - Anti-Magic Shell (on raid member) @@ -609,8 +603,10 @@ class spell_dk_death_strike : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE { - if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_ENABLER) - || !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_HEAL)) + if (!sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_ENABLER) || + !sSpellMgr->GetSpellInfo(SPELL_DK_DEATH_STRIKE_HEAL) || + !sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_SHIELD_MASTERY) || + !sSpellMgr->GetSpellInfo(SPELL_DK_BLOOD_SHIELD_ABSORB)) return false; return true; } @@ -651,75 +647,75 @@ class spell_dk_death_strike : public SpellScriptLoader // 89832 - Death Strike (Save damage taken in last 5 sec) class spell_dk_death_strike_enabler : public SpellScriptLoader { -public: - spell_dk_death_strike_enabler() : SpellScriptLoader("spell_dk_death_strike_enabler") { } - - class spell_dk_death_strike_enabler_AuraScript : public AuraScript - { - PrepareAuraScript(spell_dk_death_strike_enabler_AuraScript); + public: + spell_dk_death_strike_enabler() : SpellScriptLoader("spell_dk_death_strike_enabler") { } - bool Load() OVERRIDE + class spell_dk_death_strike_enabler_AuraScript : public AuraScript { - for (uint8 i = 0; i < 5; ++i) - _damagePerSecond[i] = 0; - return true; - } + PrepareAuraScript(spell_dk_death_strike_enabler_AuraScript); - void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) - { - if (!GetUnitOwner()->HasAura(SPELL_DK_BLOOD_PRESENCE)) + bool Load() OVERRIDE { for (uint8 i = 0; i < 5; ++i) _damagePerSecond[i] = 0; + return true; } - else - _damagePerSecond[0] += eventInfo.GetDamageInfo()->GetDamage(); - } - bool CheckProc(ProcEventInfo& eventInfo) - { - return eventInfo.GetDamageInfo(); - } + bool CheckProc(ProcEventInfo& eventInfo) + { + return eventInfo.GetDamageInfo(); + } - // Cheap hack to have update calls - void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude) - { - isPeriodic = true; - amplitude = 1000; - } + void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) + { + if (!GetUnitOwner()->HasAura(SPELL_DK_BLOOD_PRESENCE)) + { + for (uint8 i = 0; i < 5; ++i) + _damagePerSecond[i] = 0; + } + else + _damagePerSecond[0] += eventInfo.GetDamageInfo()->GetDamage(); + } - void Update(AuraEffect* aurEff) - { - // Move backwards all datas by one - for (uint8 i = 4; i > 0; --i) - _damagePerSecond[i] = _damagePerSecond[i - 1]; - _damagePerSecond[0] = 0; - } + // Cheap hack to have update calls + void CalcPeriodic(AuraEffect const* /*aurEff*/, bool& isPeriodic, int32& amplitude) + { + isPeriodic = true; + amplitude = 1000; + } - void HandleCalcAmount(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated) - { - canBeRecalculated = true; - amount = 0; - for (uint8 i = 0; i < 5; ++i) - amount += int32(_damagePerSecond[i]); - } + void Update(AuraEffect* /*aurEff*/) + { + // Move backwards all datas by one + for (uint8 i = 4; i > 0; --i) + _damagePerSecond[i] = _damagePerSecond[i - 1]; + _damagePerSecond[0] = 0; + } - void Register() OVERRIDE - { - DoCheckProc += AuraCheckProcFn(spell_dk_death_strike_enabler_AuraScript::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_dk_death_strike_enabler_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_dk_death_strike_enabler_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dk_death_strike_enabler_AuraScript::Update, EFFECT_0, SPELL_AURA_DUMMY); - DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_death_strike_enabler_AuraScript::HandleCalcAmount, EFFECT_0, SPELL_AURA_DUMMY); - } + void HandleCalcAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated) + { + canBeRecalculated = true; + amount = 0; + for (uint8 i = 0; i < 5; ++i) + amount += int32(_damagePerSecond[i]); + } - uint32 _damagePerSecond[5]; - }; + void Register() OVERRIDE + { + DoCheckProc += AuraCheckProcFn(spell_dk_death_strike_enabler_AuraScript::CheckProc); + OnEffectProc += AuraEffectProcFn(spell_dk_death_strike_enabler_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); + DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_dk_death_strike_enabler_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY); + OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dk_death_strike_enabler_AuraScript::Update, EFFECT_0, SPELL_AURA_DUMMY); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dk_death_strike_enabler_AuraScript::HandleCalcAmount, EFFECT_0, SPELL_AURA_DUMMY); + } - AuraScript* GetAuraScript() const OVERRIDE - { - return new spell_dk_death_strike_enabler_AuraScript(); - } + uint32 _damagePerSecond[5]; + }; + + AuraScript* GetAuraScript() const OVERRIDE + { + return new spell_dk_death_strike_enabler_AuraScript(); + } }; // 47496 - Explode, Ghoul spell for Corpse Explosion diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 0458e4966ca..be05f21b774 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -30,8 +30,6 @@ enum PaladinSpells { SPELL_PALADIN_DIVINE_PLEA = 54428, - SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF = 67480, - SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE = 57319, SPELL_PALADIN_HOLY_SHOCK_R1 = 20473, SPELL_PALADIN_HOLY_SHOCK_R1_DAMAGE = 25912, @@ -202,65 +200,6 @@ class spell_pal_blessing_of_faith : public SpellScriptLoader } }; -// 20911 - Blessing of Sanctuary -// 25899 - Greater Blessing of Sanctuary -class spell_pal_blessing_of_sanctuary : public SpellScriptLoader -{ - public: - spell_pal_blessing_of_sanctuary() : SpellScriptLoader("spell_pal_blessing_of_sanctuary") { } - - class spell_pal_blessing_of_sanctuary_AuraScript : public AuraScript - { - PrepareAuraScript(spell_pal_blessing_of_sanctuary_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE - { - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF)) - return false; - if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE)) - return false; - return true; - } - - void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) - { - Unit* target = GetTarget(); - if (Unit* caster = GetCaster()) - caster->CastSpell(target, SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF, true); - } - - void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) - { - Unit* target = GetTarget(); - target->RemoveAura(SPELL_PALADIN_BLESSING_OF_SANCTUARY_BUFF, GetCasterGUID()); - } - - bool CheckProc(ProcEventInfo& /*eventInfo*/) - { - return GetTarget()->getPowerType() == POWER_MANA; - } - - void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) - { - PreventDefaultAction(); - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_BLESSING_OF_SANCTUARY_ENERGIZE, true, NULL, aurEff); - } - - void Register() OVERRIDE - { - AfterEffectApply += AuraEffectApplyFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); - AfterEffectRemove += AuraEffectRemoveFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); - DoCheckProc += AuraCheckProcFn(spell_pal_blessing_of_sanctuary_AuraScript::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } - }; - - AuraScript* GetAuraScript() const OVERRIDE - { - return new spell_pal_blessing_of_sanctuary_AuraScript(); - } -}; - // 64205 - Divine Sacrifice class spell_pal_divine_sacrifice : public SpellScriptLoader { @@ -1000,7 +939,6 @@ void AddSC_paladin_spell_scripts() { //new spell_pal_ardent_defender(); new spell_pal_blessing_of_faith(); - new spell_pal_blessing_of_sanctuary(); new spell_pal_divine_sacrifice(); new spell_pal_divine_storm(); new spell_pal_divine_storm_dummy(); |
