23/02/2012, 12:50
Bonjour,
Je remonte ce sujet car il m'interesse, c'est pour faire un systeme avec trivia pour qu'il voice en automatique dés qu'une réponse est trouvé (résolu, car il marche bien) mais il faudrait aussi qu'il devoice en automatique si la personne ne joue plus au quizz aprés xx secondes ou minutes, j'ai suivi votre conversation et j'ai ajouté ceci dans mon Trivia:
Le script ci-dessus il marche bien on dirait car si on donne une réponse il y a un voice automatique, c'est super ! mais je sais pas si il re-voice une personne si il y a eu un dévoice...
le probleme maintenant pour pas qu'il y a 60 personnes de voicé, il faudrait que trivia fasse un dévoice automatique aprés xx secondes ou minutes d'inactivité. Comment il faudrait faire pour qu'il dévoice en auto?
Merci.
Je remonte ce sujet car il m'interesse, c'est pour faire un systeme avec trivia pour qu'il voice en automatique dés qu'une réponse est trouvé (résolu, car il marche bien) mais il faudrait aussi qu'il devoice en automatique si la personne ne joue plus au quizz aprés xx secondes ou minutes, j'ai suivi votre conversation et j'ai ajouté ceci dans mon Trivia:
tcl
proc unvoice { $nick } {
putserv "mode $::tgchan -v $nick"
}
proc tgcorrectanswer {nick} {
global tgcurrentanswer tghinttimer tgtimenext tgchan tgnextqtimer tgstreak tgstreakmin
global tgscoresbyname tgranksbyname tgranksbynum tgcongrats tgscorestotal tgmissed
global tgtimestart tgshowallscores tgrealnames tgscoresbyrank tgtimeanswer
tggetscores
if {![info exists tgranksbyname([strlwr $nick])]} {
set _oldrank 0
} else {
set _oldrank $tgranksbyname([strlwr $nick])
#pour voicer en automatique si une réponse est trouvé
putserv "mode $::tgchan +v $nick"
#pour devoicer - ne marche pas
#if {[timerexists $::timerunvoice($nick)]!=""} {killtimer $::timerunvoice($nick)}
#set $::timerunvoice($nick) [timer 5 unvoice $nick]
}
tgincrscore $nick
tggetscores
set _newrank $tgranksbyname([strlwr $nick])
set _timetoanswer ""
if {$tgtimeanswer==1} {
set _timetoanswer [expr [expr [clock clicks -milliseconds]-$tgtimestart]/1000.00]
}
set nicknaame [lindex [split $nick "|"] 0]
set _msg "[tgcolmisc1][lindex $tgcongrats [rand [llength $tgcongrats]]] [tgcolmisc2][lindex $nicknaame][tgcolmisc1] La réponse était [tgcolmisc2]$tgcurrentanswer[tgcolmisc1].[expr $tgtimeanswer==1?" Vous l'avez obtenu en [tgcolmisc2]$_timetoanswer[tgcolmisc1] secondes.":""]"
if {$_newrank<$_oldrank} {
if {$_newrank==1} {
append _msg " Vous êtes en première place !!!"
} else {
if {$tgshowallscores==0} {
append _msg " Vous vous êtes relevé dans le rang !!!"
} else {
append _msg " Vous êtes maintenant à la place [tgcolmisc2][ordnumber $tgranksbyname([strlwr $nick])][tgcolmisc1] sur [tgcolmisc2]$tgscorestotal[tgcolmisc1], derrière [tgcolmisc2]$tgrealnames($tgranksbynum([expr $_newrank-1]))[tgcolmisc1] avec [tgcolmisc2]$tgscoresbyrank([expr $_newrank-1])[tgcolmisc1]."
}
}
}
tggamemsg "$_msg"
if {$tgstreak!=0} {
if {[lindex [split $tgstreak ,] 0]==[strlwr $nick]} {
set tgstreak [strlwr $nick],[expr [lindex [split $tgstreak ,] 1]+1]
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} {
tggamemsg "[tgcolstrk][tgcolmisc2]$nick[tgcolstrk] a beaucoup de chance [tgcolmisc2][lindex [split $tgstreak ,] 1] [tgcolstrk]"
}
} else {
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
set tgstreak [strlwr $nick],1
}
} else {
set tgstreak [strlwr $nick],1
}
set tgmissed 0
tgshowscores $nick
catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
killutimer $tghinttimer
set tgnextqtimer [utimer $tgtimenext tgnextq]
}
Le script ci-dessus il marche bien on dirait car si on donne une réponse il y a un voice automatique, c'est super ! mais je sais pas si il re-voice une personne si il y a eu un dévoice...
le probleme maintenant pour pas qu'il y a 60 personnes de voicé, il faudrait que trivia fasse un dévoice automatique aprés xx secondes ou minutes d'inactivité. Comment il faudrait faire pour qu'il dévoice en auto?
Merci.