Core/Creatures: Allow disabling melee attacks for all creatures, not just the ones using SAI

Port From (https://github.com/TrinityCore/TrinityCore/commit/d26d38075cdb56dcef77f05276a360e717cc5032)
This commit is contained in:
hondacrx
2023-03-14 04:34:51 -04:00
parent 40898d4b9f
commit d0b7bcb2fe
7 changed files with 21 additions and 18 deletions
+4 -8
View File
@@ -44,7 +44,6 @@ namespace Game.AI
bool _run;
bool _evadeDisabled;
bool _canAutoAttack;
bool _canCombatMove;
uint _invincibilityHpLevel;
@@ -62,7 +61,6 @@ namespace Game.AI
{
_escortInvokerCheckTimer = 1000;
_run = true;
_canAutoAttack = true;
_canCombatMove = true;
_hasConditions = Global.ConditionMgr.HasConditionsForNotGroupedEntry(ConditionSourceType.CreatureTemplateVehicle, creature.GetEntry());
@@ -338,9 +336,8 @@ namespace Game.AI
if (!hasVictim)
return;
if (_canAutoAttack)
DoMeleeAttackIfReady();
DoMeleeAttackIfReady();
}
bool IsEscortInvokerInRange()
@@ -629,11 +626,11 @@ namespace Game.AI
if (!IsAIControlled())
{
if (who != null)
me.Attack(who, _canAutoAttack);
me.Attack(who, true);
return;
}
if (who != null && me.Attack(who, _canAutoAttack))
if (who != null && me.Attack(who, true))
{
me.GetMotionMaster().Clear(MovementGeneratorPriority.Normal);
me.PauseMovement();
@@ -1074,7 +1071,6 @@ namespace Game.AI
public bool HasEscortState(SmartEscortState escortState) { return (_escortState & escortState) != 0; }
public void AddEscortState(SmartEscortState escortState) { _escortState |= escortState; }
public void RemoveEscortState(SmartEscortState escortState) { _escortState &= ~escortState; }
public void SetAutoAttack(bool on) { _canAutoAttack = on; }
public bool CanCombatMove() { return _canCombatMove; }
+1 -4
View File
@@ -615,10 +615,7 @@ namespace Game.AI
}
case SmartActions.AutoAttack:
{
if (!IsSmart())
break;
((SmartAI)_me.GetAI()).SetAutoAttack(e.Action.autoAttack.attack != 0);
_me.SetCanMelee(e.Action.autoAttack.attack != 0);
Log.outDebug(LogFilter.ScriptsAi, "SmartScript.ProcessAction. SMART_ACTION_AUTO_ATTACK: Creature: {0} bool on = {1}",
_me.GetGUID().ToString(), e.Action.autoAttack.attack);
break;