Javascript Help

I want this script to enable a gameobject when objective = true. I get three errors. 1.Expecting ), found '='. 2.Unexpected token: true. 3.Expecting :, found '='. Can anyone help me fix my script?

var player : GameObject; 
var range : float=10f;
var objective =  false;
var objective2 = false;
gameObject.power2.active = false;

function Update()
{
     var distance = Vector3.Distance(transform.position, player.transform.position);

     if (distance <= range)
    {
        if(Input.GetKeyDown("e")) 
        {
                renderer.material.color = Color.red;
                objective = true;
                print(objective);
        }

    }
    else if(distance != range)
    {
        renderer.material.color = Color.green;
    }

    if(objective = true)
    {
        gameObject.power2.active = true;            
    }
}

So I changed my code to this but I still get two errors. 1.";" expected. Insert a semicolon at the end 2.Expecting :, found '='.

var player : GameObject; 
var range : float=10f;
var objective =  false;
var objective2 = false;
gameObject.power2.active = false;

function Update()
{
     var distance = Vector3.Distance(transform.position, player.transform.position);

     if (distance <= range)
    {
        if(Input.GetKeyDown("e")) 
        {
                renderer.material.color = Color.red;
                objective = true;
                print(objective);
        }

    }
    else if(distance > range)
    {
        renderer.material.color = Color.green;
    }

    if(objective == true)
    {
        gameObject.power2.active = true;        
    }
    else(objective == false)
    {
        gameObject.power2.active = false;
    }
}

for true checks in if statements you need to use ==, so you want if(objective == true){} Or the shortcut for checking true is if(objective), while shortcut for checking false is if(!objective). Putting in the == into your code should fix the compiling errors you're getting. Also, your second statement of if(distance != range) is misleading. Since you're already checking distance <= range, you can just put if(distance > range) its green. Or, if you insist on using the else, you can just set it to green within the else statement. There is no need to check distance vs range twice if you know what the outcome is going to be.

Cheers.

This script has no errors... Let me know if it doesn't work!

var thePlayer : GameObject; 
var range : float = 10.0;
var objective : boolean =  false;
var objective2 : boolean = false;
var power2 : GameObject;

    function Update() {
         var distance = Vector3.Distance(transform.position, thePlayer.transform.position);

         if (Input.GetKeyDown("e") && distance <= range) {
                    renderer.material.color = Color.red;
                    objective = true;
                    print(objective);

           }else{

            if(distance > range)
            renderer.material.color = Color.green;
        }

        if(objective == true) {
           power2.active = true;       

        }else{
            power2.active = false;
        }
    }