diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-01-17 10:31:17 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-17 10:31:17 +0100 |
commit | 3346366b0ebc8feb10c6a113d884b095f558998d (patch) | |
tree | 4465e582f5bddc81c99d7b4ae2cf7e8ed1da644a /src | |
parent | d95a1e7eafd268a43245d182cf945b0106cab11c (diff) |
Core/Auras: Fixed invalid iterator access in SPELL_AURA_TRIGGER_SPELL_ON_HEALTH_PCT implementation
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index cde6892fd1b..5b193947b3d 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -7887,7 +7887,11 @@ int64 Unit::GetHealthGain(int64 dVal) void Unit::TriggerOnHealthChangeAuras(uint64 oldVal, uint64 newVal) { - for (AuraEffect const* effect : GetAuraEffectsByType(SPELL_AURA_TRIGGER_SPELL_ON_HEALTH_PCT)) + if (!HasAuraType(SPELL_AURA_TRIGGER_SPELL_ON_HEALTH_PCT)) + return; + + AuraEffectList effects = GetAuraEffectsByType(SPELL_AURA_TRIGGER_SPELL_ON_HEALTH_PCT); + for (AuraEffect const* effect : effects) { uint32 triggerHealthPct = effect->GetAmount(); uint32 triggerSpell = effect->GetSpellEffectInfo().TriggerSpell; |