From ddc812163a808e0bf44143586f96cbda21b0f60d Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Tue, 9 Nov 2010 11:15:00 +0100 Subject: [PATCH] Core/Spells: Fix Shield of Righteousness damage Author: Dr.Tenma Fixes issue #4174 --HG-- branch : trunk --- sql/base/world_database.sql | 1 + sql/updates/10392_world_spell_bonus_data.sql | 3 +++ src/server/game/Spells/SpellEffects.cpp | 8 +++++--- 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 sql/updates/10392_world_spell_bonus_data.sql diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 09c86e5581..5c6865b0ed 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -16981,6 +16981,7 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a (25742, 0.07, -1, 0.039, -1, 'Paladin - Seal of Righteousness Dummy Proc'), (53719, 0, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Enemy'), (53718, 0, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Self'), +(53600, 0, 0, 0, 0 ,'Paladin - Shield of Righteousness'), (20267, 0, 0, 0, 0, 'Paladin - Judgement of Light Proc'), (25997, 0, 0, 0, 0, 'Paladin - Eye for an Eye'), (50256, -1, -1, 0.08, -1, 'Pet Skills - Bear (Swipe)'), diff --git a/sql/updates/10392_world_spell_bonus_data.sql b/sql/updates/10392_world_spell_bonus_data.sql new file mode 100644 index 0000000000..3a808bddf1 --- /dev/null +++ b/sql/updates/10392_world_spell_bonus_data.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_bonus_data` WHERE `entry` = 53600; +INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES +(53600, 0, 0, 0, 0 ,'Paladin - Shield of Righteousness'); \ No newline at end of file diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 318516513f..12a8a27c83 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -732,13 +732,15 @@ void Spell::SpellDamageSchoolDmg(SpellEffIndex effIndex) { // Add main hand dps * effect[2] amount float average = (m_caster->GetFloatValue(UNIT_FIELD_MINDAMAGE) + m_caster->GetFloatValue(UNIT_FIELD_MAXDAMAGE)) / 2; - int32 count = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, 2); + int32 count = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, EFFECT_2); damage += count * int32(average * IN_MILLISECONDS) / m_caster->GetAttackTime(BASE_ATTACK); + break; } // Shield of Righteousness - else if (m_spellInfo->SpellFamilyFlags[1]&0x00100000) + if (m_spellInfo->SpellFamilyFlags[EFFECT_1] & 0x100000) { - damage += int32(m_caster->GetShieldBlockValue() * 1.3f); + damage += m_caster->GetShieldBlockValue() * SpellMgr::CalculateSpellEffectAmount(m_spellInfo, EFFECT_1) / 100; + break; } break; }