Try this, it checks if the players current weapon is "staff_fire" after you hit the trigger. If it isn't, then it will loop the script and wait for the player to hit the trigger again until the current weapon is "staff_fire".
////////////////////////////////////////// /////Army//Door//////From//Gamer9294////// ////////////////////////////////////////// #include maps\_music; #include common_scripts\utility; #include maps\_zombiemode_utility; #include maps\_utility; main() { self.teddybear_num = 0; thread secret_item(); thread secret_item2(); thread secret_item3(); } //Secret_Teddybears secret_item() { bear = getEnt("firedecal","targetname"); trig = getEnt("fire","targetname"); while(1) { trig waittill("trigger", player); if( player GetCurrentWeapon() == "staff_fire" ) { trig delete(); trig SetCursorHint( "HINT_NOICON" ); trig setHintString("DOOR_UNLOCKED"); iPrintLnBold("You have found a fire chalk"); bear delete(); wait 0.1; self.teddybear_num = self.teddybear_num + 1; thread army_door(); break; } } } secret_item2() { bear = getEnt("firedecal2","targetname"); trig = getEnt("fire2","targetname"); while(1) { trig waittill("trigger", player); if( player GetCurrentWeapon() == "staff_fire" ) { trig delete(); trig SetCursorHint( "HINT_NOICON" ); trig setHintString("DOOR_UNLOCKED"); iPrintLnBold("You have found a fire chalk"); bear delete(); wait 0.1; self.teddybear_num = self.teddybear_num + 1; thread army_door(); break; } } } secret_item3() { bear = getEnt("firedecal3","targetname"); trig = getEnt("fire3","targetname"); while(1) { trig waittill("trigger", player); if( player GetCurrentWeapon() == "staff_fire" ) { trig delete(); trig SetCursorHint( "HINT_NOICON" ); trig setHintString("DOOR_UNLOCKED"); iPrintLnBold("You have found a fire chalk"); bear delete(); wait 0.1; self.teddybear_num = self.teddybear_num + 1; thread army_door(); break; } } } army_door() { if(self.teddybear_num == 3) { door1 = getEnt("firedoor","targetname"); players = get_players(); for(i=0;i<players.size;i++) players[i] playsound("bridge_lower"); door1 movez(128, 4); self.gate_is_moving = "true"; wait 1; iPrintLnBold("Well Done, You have unlocked fire staff upgraded"); wait 3; door1 delete(); } }