diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 0a20a4033..18adf1551 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -5600,15 +5600,18 @@ void Aura::HandleSpellSpecificBoosts(bool apply) return; } + // prevent aura deletion, specially in multi-boost case + SetInUse(true); + if (apply) { if (spellId1) m_target->CastSpell(m_target, spellId1, true, NULL, this); - if (spellId2) + if (spellId2 && !IsDeleted()) m_target->CastSpell(m_target, spellId2, true, NULL, this); - if (spellId3) + if (spellId3 && !IsDeleted()) m_target->CastSpell(m_target, spellId3, true, NULL, this); - if (spellId4) + if (spellId4 && !IsDeleted()) m_target->CastSpell(m_target, spellId4, true, NULL, this); } else @@ -5622,6 +5625,8 @@ void Aura::HandleSpellSpecificBoosts(bool apply) if (spellId4) m_target->RemoveAurasByCasterSpell(spellId4, GetCasterGUID()); } + + SetInUse(false); } void Aura::HandleAuraEmpathy(bool apply, bool /*Real*/) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 1917c342e..2b08804ee 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 "8357" + #define REVISION_NR "8358" #endif // __REVISION_NR_H__