From 3f8c0f897adbaf003132a88211edb5db9501abc4 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 2 Mar 2022 18:02:58 -0500 Subject: [PATCH] Core/SAI: Fix creatures casting spells while moving with flag SMARTCAST_COMBAT_MOVE Port From (https://github.com/TrinityCore/TrinityCore/commit/b3545479bfbd2b743288bd32094ce8c4856a1e3d) --- Source/Game/AI/SmartScripts/SmartAI.cs | 6 +++++- Source/Game/AI/SmartScripts/SmartScript.cs | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Game/AI/SmartScripts/SmartAI.cs b/Source/Game/AI/SmartScripts/SmartAI.cs index 7004e1f7c..facdec8ff 100644 --- a/Source/Game/AI/SmartScripts/SmartAI.cs +++ b/Source/Game/AI/SmartScripts/SmartAI.cs @@ -843,7 +843,7 @@ namespace Game.AI GetScript().ProcessEventsFor(SmartEvents.RewardQuest, player, quest.Id, opt); } - public void SetCombatMove(bool on) + public void SetCombatMove(bool on, bool stopMoving = false) { if (_canCombatMove == on) return; @@ -870,7 +870,11 @@ namespace Game.AI { var movement = me.GetMotionMaster().GetMovementGenerator(a => a.GetMovementGeneratorType() == MovementGeneratorType.Chase && a.Mode == MovementGeneratorMode.Default && a.Priority == MovementGeneratorPriority.Normal); if (movement != null) + { me.GetMotionMaster().Remove(movement); + if (stopMoving) + me.StopMoving(); + } } } } diff --git a/Source/Game/AI/SmartScripts/SmartScript.cs b/Source/Game/AI/SmartScripts/SmartScript.cs index f89b1ea2e..74de8cbcc 100644 --- a/Source/Game/AI/SmartScripts/SmartScript.cs +++ b/Source/Game/AI/SmartScripts/SmartScript.cs @@ -482,7 +482,7 @@ namespace Game.AI !_me.IsWithinLOSInMap(target) || !hasPower || _me.HasUnitFlag(UnitFlags.Silenced)) allowMove = true; - ((SmartAI)_me.GetAI()).SetCombatMove(allowMove); + ((SmartAI)_me.GetAI()).SetCombatMove(allowMove, true); } _me.CastSpell(target.ToUnit(), e.Action.cast.spell, new CastSpellExtraArgs(triggerFlag));