Code:
scn Script

int InCombat

Begin Gamemode
 if ( InCombat == 0 ) && ( GetCombatTarget != Player ) && ( GetDistance Player < 10 )          ;10 klingt für mich recht wenig, evtl. etwas vergrößern
  set InCombat to 1
  StartCombat Player
 elseif ( InCombat ) && ( GetCombatTarget == Player )
  set InCombat to 0
  StopCombat
 endif
End
Wenn InCombat 1 ist bedeutet das, dass der Actor den Spieler aufgrund zu großer Nähe angegriffen hat. Wenn InCombat 0 ist hat sich der Spieler weit genug entfernt.
Wenn InCombat 0 ist, der NPC aber trotzdem gegen den Spieler kämpft ist der Grund nicht dieses Script, sondern etwas anderes.