Problem with power-up script

Hello I’ve been working on a power up script which is included in a scoring script. However I’m not sure how to hide the GUI power-up button after it has been activated, until it becomes deactivated. The problem is that GUI button can be accidentally clicked multiple times, reducing the player’s score each time it’s clicked.
I incorporated the code,

var script6 = GetComponent("ScriptName"); 
    script6.enabled = false/true;

which has worked but it hides the score as well as the button. Is there some way to work around this?
Here is the full script, which includes the scoring system, just in case:

var score = 0;
var DeductSlowDownScore = 110;
var scoreText = "Score: 0";
var mySkin : GUISkin;

function OnTriggerEnter( other : Collider ) {
    Debug.Log("OnTriggerEnter() was called");
    if (other.tag == "Coin") {
        Debug.Log("Other object is a coin");
        score += 160;
        scoreText = "Score: " + score;
        Debug.Log("Score is now " + score);
        Destroy(other.gameObject);
     }
    	else if (other.tag == "Rock"  score > 0) {
    	Debug.Log("Other object is a rock");
    	score += -120;
    	scoreText = "Score: " + score;
    	Debug.Log("Score is now " + score);
     }
    	else if (other.tag == "Tree"  score > 0) {
    	Debug.Log("Other object is a tree");
    	score += -95;
    	scoreText = "Score: " + score;
    	Debug.Log("Score is now " + score);
	}
	
	else if (other.tag == "GoldPickup"  score > 0) {
    	Debug.Log("Other object is a goldpickup");
    	score += 250;
    	scoreText = "Score: " + score;
    	Debug.Log("Score is now " + score);
    	Destroy(other.gameObject);
	}
}

function OnGUI () {
    GUI.skin = mySkin;
    GUI.Box (Rect (140, 10, 500, 200), scoreText.ToString());
   if (GUI.Button (Rect (5, 5, 110, 60), "Slow Down")) {
        StartCoroutine( SlowDown( 1.5 ) );// deactivate for 1.5 secs
      
    }
}

function SlowDown(deactivateInSeconds : float)
{
    var script4 = GetComponent("Raft Forward - Hard"); 
    script4.enabled = false;
    var script5 = GetComponent("RaftForwardEasier - Hard"); 
    script5.enabled = true;
    yield WaitForSeconds(deactivateInSeconds);

    script5.enabled = false;
    script4.enabled = true;
	score = score - DeductSlowDownScore;
    scoreText = "Score: " + score;
	Debug.Log("Score is now " + score);
};

I apologize if the question is difficult to answer
Thank you for any answers or feedback. -Ben

You can have another variable, just like score, but a bool maybe names showButton, initialized with true. As soon as the SlowDown function is started, the value is set to false to hide the button and at the end of the function to true to make it visible again.
Now the button should only be drawn if showButton is true. You can solve that with an if (showButton) around the if where the button is drawn.

use a boolean variable to turn the button on and off

private var powerUpAble = false; // boolean variable powerupAble

function OnGUI () {
if (powerUpAble){
GUI.Button (Rect (0, 0, 100, 100), "Power Up");
//Handle the power up options
powerUpAble = false;      
   }
}

Thank you very much. I played around with the coding but I’m still a little unsure on how to incorporate it.

private var powerUpAble = false; // boolean variable powerupAble. This gets turned on when a player has enough points or completes a level, whatever ur power up conditions are
//for instance lets say playerPoints > 1500 you then would set the powerUpAble = true; and your button would be shown

 

function OnGUI () {

//add the below code to the OnGUI function I also modified the code a bit
if (powerUpAble){

if(GUI.Button (Rect (0, 0, 100, 100), "Power Up")){

//Handle the power up options. Here i assume you have a functuon for this.

powerUpAble = false;      // this could go in either the power up function or here after power up function is complete set this to false so the button disapears
        }

   }

}

Thank you again. It all works now.