From 1e19e666c6c198f62596c8bfb320ab8935767635 Mon Sep 17 00:00:00 2001 From: Poszer <41213210+poszer@users.noreply.github.com> Date: Tue, 21 May 2019 02:43:15 +0200 Subject: [PATCH] fix(Core/Combat): Casters combat (#1839) - Fix issue with caster not entering in combat (Example: Priest apply buff on mage, while mage in combat. Priest doesn't enter in combat) --- src/server/game/Spells/Spell.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index ebb932b93..8440bce4a 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2837,15 +2837,21 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) } } - if (missInfo != SPELL_MISS_EVADE && !m_caster->IsFriendlyTo(effectUnit) && !m_spellInfo->HasAura(SPELL_AURA_BIND_SIGHT) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))) + if (m_caster) { - m_caster->CombatStart(effectUnit, !m_spellInfo->HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO)); + if (missInfo != SPELL_MISS_EVADE && !m_caster->IsFriendlyTo(effectUnit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))) + { + m_caster->CombatStart(effectUnit, !(m_spellInfo->AttributesEx3& SPELL_ATTR3_NO_INITIAL_AGGRO)); - if (m_spellInfo->HasAttribute(SPELL_ATTR0_CU_AURA_CC)) + if (m_spellInfo->AttributesCu & SPELL_ATTR0_CU_AURA_CC) if (!effectUnit->IsStandState()) effectUnit->SetStandState(UNIT_STAND_STATE_STAND); + } } + if (missInfo != SPELL_MISS_EVADE && effectUnit != m_caster && m_caster->IsFriendlyTo(effectUnit) && m_spellInfo->IsPositive() && effectUnit->IsInCombat()) + m_caster->SetInCombatWith(effectUnit); + if (spellHitTarget) { //AI functions