Script does not work

Hey i still cant fix this thare is an error in the engine that says unknown identefier dontcomecloserange why? I dont know i made a coppy of the first person tut Ai script

var speed = 1.0;
var attackRange = 30.0;
var shootAngleDistance = 10.0;
var target : Transform;

function Start () {
	if (target == null && GameObject.FindWithTag("Enemy"))
		target = GameObject.FindWithTag("Enemy").transform;
}

function Update () {
	if (target == null && GameObject.FindWithTag("Enemy"))
		target = GameObject.FindWithTag("Enemy").transform;
	if (target == null)
		return;
	
	if (!CanSeeTarget ())
		return;
	
	// Rotate towards target	
	var targetPoint = target.position;
	var targetRotation = Quaternion.LookRotation (targetPoint - transform.position, Vector3.up);
	transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2.0);
}

function CanSeeTarget () : boolean
{
	if (Vector3.Distance(transform.position, target.position) > attackRange)
		return false;
		
	var hit : RaycastHit;
	if (Physics.Linecast (transform.position, target.position, hit))
		return hit.transform == target;

	return false;
}
function AttackPlayer () {
	var lastVisibleEnemyPosition = target.position;
	while (true) {
		if (CanSeeTarget ()) {
			// Target is dead - stop hunting
			if (target == null)
				return;

			// Target is too far away - give up	
			var distance = Vector3.Distance(transform.position, target.position);
			if (distance > attackRange * 3)
				return;
			
			lastVisibleEnemyPosition = target.position;
			if (distance > dontComeCloserRange)
				MoveTowards (lastVisibleEnemyPosition);
			else
				RotateTowards(lastVisibleEnemyPosition);

			var forward = transform.TransformDirection(Vector3.forward);
			var targetDirection = lastVisibleEnemyPosition - transform.position;
			targetDirection.y = 0;

			var angle = Vector3.Angle(targetDirection, forward);
			
			// Start shooting if close and play is in sight
			if (distance < attackRange && angle < shootAngleDistance)
				yield StartCoroutine("");
		} else {
			yield StartCoroutine("SearchEnemy", lastVisibleEnemyPosition);
			// Player not visible anymore - stop attacking
			if (!CanSeeTarget ())
				return;
		}

		yield;
	}
}


function RotateTowards (position : Vector3) {
	// Rotate towards target	
	var targetPoint = target.position;
	var targetRotation = Quaternion.LookRotation (targetPoint - transform.position, Vector3.up);
	transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2.0);
}

function MoveTowards (position : Vector3) {
	transform.position = Vector3.MoveTowards(transform.position, target.position,speed);
}

The variable dontComeCloserRange is not defined in your scripts you posted, the error is correct. Declare your dontComeCloserRange variable.