ID:145961
 
Code:
ob/var/numbercheck=0
mob/proc/pickmob()
var/number=1
for(var/mob/m in world)
m.numbercheck=number
number+=1
tryagain
var/chosennumber=rand(1,number)
for(var/mob/p in world)
if(p.numbercheck==chosennumber)
if(p.IT!=1)
p.overlays+=/obj/IT
p.player2=0
p.IT=1
p.icon='Icons.dmi'
p.icon_state="ITguy"
p.nomove = 1
p.sight = 1
world<<"<font color=red><b>[p.key] is the Searcher!! Game starts in 15 seconds!!</b></font>"
sleep(150)
world<<"<font color=red><b>Game started!</font></b>"
p.nomove = 0
p.sight = 0
p.verbs+=/mob/special/verb/Tag
player-=1
return
else
goto tryagain
sleep(1200)
world<<"Non-IT players WIN!!"
sleep(50)
world.Reboot()


Problem description: Proc does nothing when I call it. To be honest, I think it waits 2 min before it does something.. o.o

First, lose the label and goto. Convert it into a proc or something - you shouldn't even need it in a for() loop. All you're doing is causing the loop to run again and again and again and again and again and... well, you get the picture.
Also, it will wait 2 mins before doing anything. Why not add some debugging lines (world << "Got to sleep()" or something, just before the sleep) to be sure it's working?
In response to Hazman
I already thought the Goto was unneeded, and I dunno what you mean by losing the label..? What label, there are soo many of 'em..

And I might to the debugging stuff tommorow, too tired now...
In response to Mysame
The label is the thing the goto is pointing to.
Also, instead of P.IT!=1, use !P.IT. This does exactly the same thing, but, well, it's just how you do it :-).