From 173037ae77d3b872416e6de6652375c8a8ed0c49 Mon Sep 17 00:00:00 2001 From: Bohica <53943479+Bohicatv@users.noreply.github.com> Date: Tue, 22 Jul 2025 16:01:56 -0700 Subject: [PATCH] fix: Prevents recursion in BaseCreature.DoHarmful() (#2202) --- Projects/Server/Mobiles/Mobile.cs | 2 +- Projects/UOContent/Mobiles/BaseCreature.cs | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Projects/Server/Mobiles/Mobile.cs b/Projects/Server/Mobiles/Mobile.cs index 48ef9a59c..7c998e887 100644 --- a/Projects/Server/Mobiles/Mobile.cs +++ b/Projects/Server/Mobiles/Mobile.cs @@ -8286,7 +8286,7 @@ public partial class Mobile : IHued, IComparable, ISpawnable, IObjectPro Region.OnDidHarmful(this, target); target.Region.OnGotHarmful(this, target); - if (!indirect) + if (!indirect && !ChangingCombatant) { Combatant = target; } diff --git a/Projects/UOContent/Mobiles/BaseCreature.cs b/Projects/UOContent/Mobiles/BaseCreature.cs index c8aeeea18..f9898d6cd 100644 --- a/Projects/UOContent/Mobiles/BaseCreature.cs +++ b/Projects/UOContent/Mobiles/BaseCreature.cs @@ -2626,13 +2626,10 @@ namespace Server.Mobiles if (ai.Defender == target) { - if (m_ControlMaster?.Player == true && m_ControlMaster.CanBeHarmful(target, false)) + var master = GetMaster(); + if (master?.Player == true && master.CanBeHarmful(target, false)) { - m_ControlMaster.DoHarmful(target, true); - } - else if (m_SummonMaster?.Player == true && m_SummonMaster.CanBeHarmful(target, false)) - { - m_SummonMaster.DoHarmful(target, true); + master.DoHarmful(target, true); } return;