Hmm... Well I don't know much about it either. I converted a 'time to reboot' script I use to it with some help, but found the commands inconsistant, buggy and in some cases not working even close to the way described. However I will take a shot at it...
#VAR light {%additem(%proper(%1),@light}:
Define a variable 'light' and
Places the proper name (i.e. sam -> Sam) in %1 into 'light'.
VA light "" - Sets the variable light to blank.
#t+ - Turns on the triggers in the wholight group.
#wa 1000 - Waits a bit.
#t- - Turns off the triggers in the wholight group.
Now doing this in MUSHClient...
The first bit becomes:
world.setvariable "light", ucase(mid(wildcard(1),1,1)) & mid(wildcard(1),2,len(wildcard(1))-1)
Or something close to this. Apparently MS doesn't think a command to change a name to its proper form was important enough to support directly. :p I don't know how your getting the value in the existing script but wildcard(1) is the equivalent of %1 in most cases.
The second part is complicated since there is no real wait command in MUSHClient in the sense of how ZMUD uses it, nor are triggers 'groupable', however since there appears to only be one in this instance (I assume):
world.setvariable "light", ""
world.enabletrigger "wholight", 1
world.addtimer ("lightwait", 0, 0, 1, "", 16388, "killtrigger")
The 16388 makes this a temporary and one shot timer.
And then another script as follows to execute the last bit:
sub killscript (Timername)
world.enabletrigger "wholight", 0
end sub