Core/Creatures: Implemented CREATURE_STATIC_FLAG_4_NO_MELEE_APPROACH and fixed CREATURE_STATIC_FLAG_NO_MELEE_FLEE implementation (should cause fleeing from melee range)

Port From (https://github.com/TrinityCore/TrinityCore/commit/a748fddfa47216e1f516303e3bca9b5a86823748)
This commit is contained in:
hondacrx
2024-02-24 15:18:07 -05:00
parent dab3a891a7
commit 9d1589afd4
10 changed files with 93 additions and 34 deletions
+17 -2
View File
@@ -27,9 +27,9 @@ namespace Game.AI
protected TaskScheduler _scheduler = new();
protected InstanceScript _instanceScript;
public CreatureAI(Creature _creature) : base(_creature)
public CreatureAI(Creature creature) : base(creature)
{
me = _creature;
me = creature;
_moveInLOSLocked = false;
}
@@ -514,6 +514,21 @@ namespace Game.AI
// called when the corpse of this creature gets removed
public virtual void CorpseRemoved(long respawnDelay) { }
public override void AttackStart(Unit victim)
{
if (victim != null && me.Attack(victim, true))
{
// Clear distracted state on attacking
if (me.HasUnitState(UnitState.Distracted))
{
me.ClearUnitState(UnitState.Distracted);
me.GetMotionMaster().Clear();
}
me.StartDefaultCombatMovement(victim);
}
}
/// == Gossip system ================================
// Called when the dialog status between a player and the creature is requested.