Ai continues to move after calling it to stop

i have tried calling the skeleton to stop when he is within 2f of the player(Capsule)
but he just ploughs through me.
here is my code any help?:

var object1 : GameObject;
var object2 : GameObject;

var MaxHealth : int = 100;
var CurrentHealth : int;

//Defines Which Audio Clip To Play //
public var ZombieMoanAudio : AudioClip;
//Defines Which Audio Clip To Play //
public var ZombiePissedAudio : AudioClip;
//Defines Which Audio Clip To Play //
public var ZombieDeathAudio : AudioClip;

var speed : float = 1.4;
var target : Transform; //the enemy’s target
var moveSpeed = 3;
var Stop = 0;
var stop : int = 0; //move speed
var rotationSpeed = 5; //speed of turning
var myTransform : Transform; //current transform data of this enemy

function Awake()
{
myTransform = transform; //cache transform data for easy access/preformance
}
function Start () {

CurrentHealth = MaxHealth;
}
function ApplyDamage ( Damage : float) {

if(CurrentHealth < 0) {
return;
}

CurrentHealth -= Damage;

if(CurrentHealth > 50){
GameObject.Find("Skeleton").animation.Play("gethit");
PlayZombieMoanAudio();
}
if(CurrentHealth == 50){
GameObject.Find("Skeleton").animation.Play("gethit");
PlayZombiePissedAudio();
}
if(CurrentHealth == 40){
GameObject.Find("Skeleton").animation.Play("gethit");
PlayZombieMoanAudio();
}
if(CurrentHealth == 30){
GameObject.Find("Skeleton").animation.Play("gethit");
PlayZombieMoanAudio();
}
if(CurrentHealth == 20){
GameObject.Find("Skeleton").animation.Play("gethit");
PlayZombieMoanAudio();
}
if(CurrentHealth == 10){
GameObject.Find("Skeleton").animation.Play("gethit");
PlayZombieMoanAudio();
}
if(CurrentHealth == 0){
GameObject.Find("Skeleton").animation.Play("die");
PlayZombieDeathAudio();
}

}
function PlayZombieMoanAudio(){
audio.PlayOneShot(ZombieMoanAudio);
}
function PlayZombiePissedAudio(){
audio.PlayOneShot(ZombiePissedAudio);
}
function PlayZombieDeathAudio(){
audio.PlayOneShot(ZombieDeathAudio);
}
function Update()
{

myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
var distance = Vector3.Distance(object1.transform.position, object2.transform.position);
//move towards the player
if( CurrentHealth > 0)
{
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
GameObject.Find("Skeleton").animation.Play("run");
}
else
{
  myTransform.position += myTransform.forward * Stop * Time.deltaTime; 
  rotationSpeed = 0;
  GameObject.Find("Skeleton").animation.Stop("run");
}
	if(distance < 2f)
{

	GameObject.Find("Skeleton").animation.Stop("run");	
	if( CurrentHealth <= 0){
	GameObject.Find("Skeleton").animation.Play("attack");
	}
	else
	{
	//Nothing!//
	}
}

}

`

Here you could try to add a Character Controller to your zombie. Then they would interact with the environment. This is simplified so you still need to tweak it all to your wishes.

var target : Transform;  // Drag the player here
var speed : float = 10;  // the speed

function Update(){
      transform.LookAt(target);  // the NPC looks at the player
      if(Vector3.Distance(transform.position,target,position)> 2){
           enemy.GetComponent(CharacterController).SimpleMove(speed*forward);
           animation.Play("Walk"); 
       }
}