help with upgrade system(Getcomponent)

so the general gist of my upgrade system is that ther is a script in my charicter creation screen where you buy items and then it sets a playerpref int then ingame a script checks if its 1 it is onetype of weapon if 2 its another and if 3 it is another again but the problem is is it simply dosent work it takes away money i think it sets the weapon number and it dosent stop shooting script from working. hear is the script that gos onto the customization scene:

static var cash = 0;
//var wepno = 0;
var price =0;
var price2 =0;
//static var wep1 = 1;
//static var wep2 = 0;
//static var wep3 = 0;
//static var wep4 = 0;
//PlayerPrefs.SetInt("Cash",50);
cash = PlayerPrefs.GetInt("Cash");
function OnGUI (){
  if (GUI.Button(Rect(10,10,110,30),"ShotGun $50")){
    if (cash > price){
      PlayerPrefs.SetInt("wep",2);
      cash -= price;
      PlayerPrefs.SetInt("Cash",cash);
    }
    print(PlayerPrefs.GetInt("Cash"));
  }
  if (GUI.Button(Rect(10,40,110,30),"GatlingGun $150")){
    if (cash > price2){
      PlayerPrefs.SetInt("wep",3);
      cash -= price2;
      PlayerPrefs.SetInt("Cash",cash);
    }
    print(PlayerPrefs.GetInt("Cash"));
  }
}
print(PlayerPrefs.GetInt("Cash"));

and hear is the script that gos on the gun `

function update (){
  if (PlayerPrefs.GetInt("wep",2)){
    GetComponent("rappidfirescript").enabled = false;
  }
}

You’re using PlayerPrefs.GetInt wrong: GetInt returns the value of the key specified, if it exists, or the default value (second parameter), if not. GetInt does not compare the key value to anything - you must compare its value yourself in the gun script:

function update (){ // this will disable the script "rapidfirescript" if wep is 2
  if (PlayerPrefs.GetInt("wep",2)==2){
    GetComponent("rappidfirescript").enabled = false;
  }
}