From ff2f722f49cfdcf7762a124c78fd532f68c9b94f Mon Sep 17 00:00:00 2001 From: zergtmn Date: Sun, 6 Jun 2010 21:29:11 +0400 Subject: [PATCH] [10038] Prevent double triggering heal from 63534 and ranks. Signed-off-by: VladimirMangos Also use more simple and safe checks for added in [10035]. --- src/game/Unit.cpp | 13 +++++++++---- src/shared/revision_nr.h | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index f3d1dface..d27a80bd5 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5919,7 +5919,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu if (!procSpell) return false; - Aura* healingAura = pVictim->GetAura(procSpell->Id, EFFECT_INDEX_0); + // avoid double triggering from 2 auras + if (triggeredByAura->GetEffIndex() != EFFECT_INDEX_1) + return false; + + + // Renew + Aura* healingAura = pVictim->GetAura(SPELL_AURA_PERIODIC_HEAL, SPELLFAMILY_PRIEST, UI64LIT(0x40), 0, GetGUID()); if (!healingAura) return false; @@ -7029,7 +7035,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu if (dummySpell->SpellIconID == 2709) { // only melee auto attack affected and Rune Strike - if (!(procFlag & PROC_FLAG_SUCCESSFUL_MELEE_HIT) && procSpell->Id != 56815) + if (procSpell && procSpell->Id != 56815) return false; basepoints[0] = triggerAmount * damage / 100; @@ -7141,8 +7147,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu if (dummySpell->SpellIconID == 138) { // only main hand melee auto attack affected and Rune Strike - if ((procFlag & PROC_FLAG_SUCCESSFUL_OFFHAND_HIT) || - !(procFlag & PROC_FLAG_SUCCESSFUL_MELEE_HIT) && procSpell->Id != 56815) + if ((procFlag & PROC_FLAG_SUCCESSFUL_OFFHAND_HIT) || procSpell && procSpell->Id != 56815) return false; // triggered_spell_id in spell data diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4b75e4ff9..354a05135 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10037" + #define REVISION_NR "10038" #endif // __REVISION_NR_H__