eu as sugera ceva mai interesant:
Code:
proc pub:start {nick uhost hand chan arg} {
global ask
bind time - "* * * * *" timed:ask
puthelp "PRIVMSG $chan :$ask(welcome)"
puthelp "PRIVMSG $chan :$ask(reguli)"
}
Code:
proc pub:stop {nick uhost hand chan arg} {
unbind time - "* * * * *" timed:ask
puthelp "PRIVMSG $chan :stopping questions"
}
si
Code:
proc timed:ask {min hour day month year} {
global ask
if {![info exists ask(start)]} { set ask(start) 0 }
if {$ask(start)} {
if {$ask(q) < [expr $ask(qmax)+1]} {
pushmode $ask(chan) +m
flushmode $ask(chan)
utimer 2[list puthelp "PRIVMSG $ask(chan) :$ask(question$ask(q))"]
utimer 10[list pushmode $ask(chan) -m]
incr ask(q)
} else {
unbind time - "*****" timed:ask
set ask(q) 1
}
}
}
Deci mie in principiu nu imi place sa am un timer care sa ruleze un proces care nu se executa decat dak setam noi o variabila, asa ca mi se pare mai fiabil sa punem bindul pe time in interiorul la start, si ca sa o oprim, punem un unbind la stop, si in timed:ask, in caz ca se termina intrebarile.
Mentionez ca ati uitat sa resetati numarul de intrebari puse atunci cand se termina lista, si asta nu e bine pt ca atunci tot scriptul asta va rula o singura data, iar in rest pauza pt k nr de intrebari va ajunge la maxim si asa va ramane.
O chestie pe care nu o consider optima avand in vedere ca este un script de teste e timpul mic de raspuns (50 secunde dupa cum a facut krimson timerul de la +m), dar in fine asta nu ma priveste