Need help to limit the range of where I can open the door.

Hello I have been using the ShadowDemoscript and have made it possible to open doors like in Amnesia but with the difference that I open and closes the door by holding down the F key. The problem is that there is no limit of how far I can be from the door, is the mouse at the door and I hold down F it opens. How can I solve this. I might add that I am really new and don’t know how to program in Java, just have guessed basic where to change funtions . The script I use.

var spring = 50.0;
var damper = 5.0;
var drag = 10.0;
var angularDrag = 5.0;
var distance = 0.2;
var pushForce = 0.2;
var attachToCenterOfMass = false;

var highlightMaterial : Material;
private var highlightObject : GameObject;

private var springJoint : SpringJoint;

function Update()
{
var mainCamera = FindCamera();

highlightObject = null;
if( springJoint != null && springJoint.connectedBody != null )
{
	highlightObject = springJoint.connectedBody.gameObject;
}
else
{
	// We need to actually hit an object
	var hitt : RaycastHit;
	if( Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition),  hitt, 100 ) ) {
		if( hitt.rigidbody && !hitt.rigidbody.isKinematic ) {
			highlightObject = hitt.rigidbody.gameObject;
		}
	}
}

	
// Make sure the user pressed the mouse down
if (!Input.GetKey(KeyCode.F))
	return;

	
// We need to actually hit an object
var hit : RaycastHit;
if (!Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition),  hit, 100)) {
	return;
}
// We need to hit a rigidbody that is not kinematic
if (!hit.rigidbody || hit.rigidbody.isKinematic) {
	return;
}

if (!springJoint)
{
	var go = new GameObject("Rigidbody dragger");
	body = go.AddComponent ("Rigidbody");
	springJoint = go.AddComponent ("SpringJoint");
	body.isKinematic = true;
}

springJoint.transform.position = hit.point;
if (attachToCenterOfMass)
{
	var anchor = transform.TransformDirection(hit.rigidbody.centerOfMass) + hit.rigidbody.transform.position;
	anchor = springJoint.transform.InverseTransformPoint(anchor);
	springJoint.anchor = anchor;
}
else
{
	springJoint.anchor = Vector3.zero;
}

springJoint.spring = spring;
springJoint.damper = damper;
springJoint.maxDistance = distance;
springJoint.connectedBody = hit.rigidbody;

DragObject(hit.distance, hit.point, mainCamera.ScreenPointToRay(Input.mousePosition).direction);

}

function DragObject (distance : float, hitpoint : Vector3, dir : Vector3)
{
var startTime = Time.time;
var mousePos = Input.mousePosition;

var oldDrag = springJoint.connectedBody.drag;
var oldAngularDrag = springJoint.connectedBody.angularDrag;
springJoint.connectedBody.drag = drag;
springJoint.connectedBody.angularDrag = angularDrag;
var mainCamera = FindCamera();
while (Input.GetKey(KeyCode.F))
{
	var ray = mainCamera.ScreenPointToRay (Input.mousePosition);
	springJoint.transform.position = ray.GetPoint(distance);
	yield;
}

if (Mathf.Abs(mousePos.x - Input.mousePosition.x) <= 2 && Mathf.Abs(mousePos.y - Input.mousePosition.y) <= 2 && Time.time - startTime < .2 && springJoint.connectedBody)
{
	dir.y = 0;
	dir.Normalize();
	springJoint.connectedBody.AddForceAtPosition(dir * pushForce, hitpoint, ForceMode.VelocityChange);
	ToggleLight( springJoint.connectedBody.gameObject );
}	


if (springJoint.connectedBody)
{
	springJoint.connectedBody.drag = oldDrag;
	springJoint.connectedBody.angularDrag = oldAngularDrag;
	springJoint.connectedBody = null;
}

}

static function ToggleLight( go : GameObject )
{
var theLight : Light = go.GetComponentInChildren(Light);
if( !theLight )
return;

theLight.enabled = !theLight.enabled;
var illumOn = theLight.enabled;
var renderers = go.GetComponentsInChildren(MeshRenderer);
for( var r : MeshRenderer in renderers )
{
	if( r.gameObject.layer == 1 )
	{
		r.material.shader = Shader.Find(illumOn ? "Self-Illumin/Diffuse" : "Diffuse");
	}
}

}

function FindCamera ()
{
if (camera)
return camera;
else
return Camera.main;
}

function OnPostRender()
{
if( highlightObject == null )
return;

var go = highlightObject;
highlightMaterial.SetPass( 0 );
var meshes = go.GetComponentsInChildren(MeshFilter);
for( var m : MeshFilter in meshes )
{
	Graphics.DrawMeshNow( m.sharedMesh, m.transform.position, m.transform.rotation );
}

}

In first script, line 10, change 100 to less. For more info about raycasting, see http://docs.unity3d.com/Documentation/ScriptReference/Physics.Raycast.html.

Same thing in line 25.