From c19d6b74e9fe6c2c877a5bb2bac263d340069a73 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Mon, 25 Jul 2022 21:34:21 +0200 Subject: [PATCH] =?UTF-8?q?fix(Core/Spells):=20Make=20sure=20that=20attack?= =?UTF-8?q?er=20is=20always=20in=20combat=20with=20it=E2=80=A6=20(#12516)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Core/Spells): Make sure that attacker is always in combat with its victim when dealing damage/generating threat done by spells. Fixes #10801 --- src/server/game/Entities/Unit/Unit.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 9e642a36f..1de73ca27 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1033,7 +1033,14 @@ uint32 Unit::DealDamage(Unit* attacker, Unit* victim, uint32 damage, CleanDamage victim->ToCreature()->SetLastDamagedTime(GameTime::GetGameTime().count() + MAX_AGGRO_RESET_TIME); if (attacker) + { + if (spellProto && !victim->IsInCombatWith(attacker)) + { + victim->CombatStart(attacker, !(spellProto->AttributesEx3 & SPELL_ATTR3_SUPRESS_TARGET_PROCS)); + } + victim->AddThreat(attacker, float(damage), damageSchoolMask, spellProto); + } } else // victim is a player {