diff options
-rw-r--r-- | sql/updates/world/2013_06_28_01_world_spell_misc_434.sql | 9 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 8 |
2 files changed, 13 insertions, 4 deletions
diff --git a/sql/updates/world/2013_06_28_01_world_spell_misc_434.sql b/sql/updates/world/2013_06_28_01_world_spell_misc_434.sql new file mode 100644 index 00000000000..2571007f65b --- /dev/null +++ b/sql/updates/world/2013_06_28_01_world_spell_misc_434.sql @@ -0,0 +1,9 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`="spell_pal_eye_for_an_eye"; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(9799, "spell_pal_eye_for_an_eye"), +(25988, "spell_pal_eye_for_an_eye"); + +DELETE FROM `spell_proc_event` WHERE `entry` IN (9799,25988); +INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES +(9799, 0, 0, 0, 0, 0, 0x10000, 0, 0, 0, 0), +(25988, 0, 0, 0, 0, 0, 0x10000, 0, 0, 0, 0); diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index ac9b861f584..fd4e560b1b7 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -46,6 +46,7 @@ enum PaladinSpells SPELL_PALADIN_DIVINE_STORM_DUMMY = 54171, SPELL_PALADIN_DIVINE_STORM_HEAL = 54172, + SPELL_PALADIN_EYE_FOR_AN_EYE_RANK_1 = 9799, SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE = 25997, SPELL_PALADIN_FORBEARANCE = 25771, @@ -456,17 +457,16 @@ class spell_pal_eye_for_an_eye : public SpellScriptLoader return true; } - void OnProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) + void HandleEffectProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { PreventDefaultAction(); - // return damage % to attacker but < 50% own total health - int32 damage = int32(std::min(CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), aurEff->GetAmount()), GetTarget()->GetMaxHealth() / 2)); + int32 damage = CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), aurEff->GetAmount()); GetTarget()->CastCustomSpell(SPELL_PALADIN_EYE_FOR_AN_EYE_DAMAGE, SPELLVALUE_BASE_POINT0, damage, eventInfo.GetProcTarget(), true, NULL, aurEff); } void Register() { - OnEffectProc += AuraEffectProcFn(spell_pal_eye_for_an_eye_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY); + OnEffectProc += AuraEffectProcFn(spell_pal_eye_for_an_eye_AuraScript::HandleEffectProc, EFFECT_0, m_scriptSpellId == SPELL_PALADIN_EYE_FOR_AN_EYE_RANK_1 ? SPELL_AURA_DUMMY : SPELL_AURA_PROC_TRIGGER_SPELL); } }; |