diff --git a/Source/Game/AI/CoreAI/PetAI.cs b/Source/Game/AI/CoreAI/PetAI.cs index 7ad3c01f2..021bc3e06 100644 --- a/Source/Game/AI/CoreAI/PetAI.cs +++ b/Source/Game/AI/CoreAI/PetAI.cs @@ -52,7 +52,6 @@ namespace Game.AI { if (!me.IsAlive()) { - Log.outDebug(LogFilter.Server, "Creature stoped attacking cuz his dead [{0}]", me.GetGUID().ToString()); me.GetMotionMaster().Clear(); me.GetMotionMaster().MoveIdle(); me.CombatStop(); diff --git a/Source/Game/Entities/Unit/Unit.Combat.cs b/Source/Game/Entities/Unit/Unit.Combat.cs index 358a2e01a..51f88d9ea 100644 --- a/Source/Game/Entities/Unit/Unit.Combat.cs +++ b/Source/Game/Entities/Unit/Unit.Combat.cs @@ -450,6 +450,15 @@ namespace Game.Entities if (victim.IsTypeId(TypeId.Player)) victim.SetInCombatWith(this); + Unit owner = victim.GetOwner(); + if (owner != null) + { + AddThreat(owner, 0.0f); + SetInCombatWith(owner); + if (owner.GetTypeId() == TypeId.Player) + owner.SetInCombatWith(this); + } + creature.SendAIReaction(AiReaction.Hostile); creature.CallAssistance(); @@ -546,7 +555,7 @@ namespace Game.Entities { Unit victim = GetVictim(); if (victim != null) - if (!IsControlledByPlayer() || IsInCombatWith(victim) || victim.IsInCombatWith(this)) + if ((!IsPet() && GetPlayerMovingMe() == null) || IsInCombatWith(victim) || victim.IsInCombatWith(this)) return victim; if (!attackerList.Empty())