the solution is:
alias -l getboxes {
; $1 = chan
if ( !$1 ) return
var %f = $boxes, %a = 6, %b = 5, %c = 1, %d, %h, %j = 0
while %a {
%d = $gettok(%f,$r(1,$numtok(%f,44)),44)
hadd -m $tbl $+(boxes:,$1,:1) $hget($tbl,$+(boxes:,$1,:1)) $+($iif(%j < 3,good,bad),:,%d,:,$+($iif($r(1,2) == 2,-),$r($score.min,$score.max)))
hadd $tbl $+(boxes:,$1,:2) $hget($tbl,$+(boxes:,$1,:2)) %d
hadd $tbl $+(boxes:,$1,:3) $hget($tbl,$+(boxes:,$1,:3)) %d
%f = $remtok(%f,%d,1,44)
inc %j
dec %a
}
return $sorttok($hget($tbl,$+(boxes:,$1,:2)),32)
}
alias -l startboxes {
; $1 = chan, $2 = roundlimit
var %a = $chan_
if ( $2 ) hadd -m $tbl $+(rounds:,,:limit) $2
if ( $hget($tbl,$+(rounds:,%a,:limit)) ) {
hinc $tbl $+(rounds:,%a,:current) 1
msg %a ** ROUND $hget($tbl,$+(rounds:,%a,:current)) of $hget($tbl,$+(rounds:,%a,:limit)) **
}
msg %a Each box is worth a certain score and can be chosen only once. You must enter one of the following box available. Be careful, as there are empty boxes
tokenize 32 $getboxes(%a)
msg %a The boxes available are: 12,08 $1 08,12 $2 12,08 $3 08,12 $4 12,08 $5 08,12 $6
$+(.timerboxes.,%a,.END) 1 $time.limit endboxes $!chan_ 1
}
alias -l endboxes {
var %a = $chan_
if ( $timer($+(boxes.,$chan_,.END)) ) $+(.timerboxes.,$chan_,.END) off
if ( !$2 ) $+(.timerboxes.,$chan_,.*) off
var %t = %a, %e = $2
if ( %e ) {
msg $chan_ Box A: ( $+ $getscoreorempty($chan_,A) $+ ) Box D: ( $+ $getscoreorempty($chan_,D) $+ )
msg $chan_ Box B: ( $+ $getscoreorempty($chan_,B) $+ ) Box E: ( $+ $getscoreorempty($chan_,E) $+ )
msg $chan_ Box C: ( $+ $getscoreorempty($chan_,C) $+ ) Box F: ( $+ $getscoreorempty($chan_,F) $+ )
}
scorenickboxes $chan_ %e
}
alias -l getboxescore {
var %a = $hfind($tbl,$+(*:,$2,:*),0,w).data, %b
while %a {
if ( $chan_ == $gettok($hfind($tbl,$+(*:,$2,:*),%a,w).data,2,58) ) return $gettok($wildtok($hget($tbl,$+(boxes:,$v2,:1)),$+(*:,$2,:*),1,32),3,58)
dec %a
}
}
;$getboxescore(#chan,box)
alias -l getscoreorempty return $iif($goodorbadbox($chan_,$2) == bad,Empty,$getboxescore($chan_,$2))
;$getscoreorempty(#chan,box)
alias -l getnickscore return $iif($hget($tbl,scores: $+ $iif($2,$+($1,:,$2),$1)),$v1,0)
;$getnickscore(nick,[#chan]) {