baser sur un wquizz sacrement recoder se quizz vous permet de lancer des quizz sur plusieur salon avec un seul bot et cela independament les un des autres.
il fonctionne avec les database de wquizz.
pour avoir les couleurs utiliser mon addon couleur system.
Source / Exemple :
;Quizz Multichan V1.3 par aerith "aeris_vallee@hotmail.com"
;pour une utilisation partiel ou complette dans un script me prevenir svp
on *:text:!quizz:#: quizzstart $chan
on *:text:!stop:#: quizzstop $chan
on *:text:*:*: {
if ($readini(" $+ $mircdirquizz/chan.ini",$chan,start)) {
if ($1 == !menuquizz) {
notice $nick %couleur Il y a 4 %quizz.data %couleur questions dans la base
notice $nick %couleur 4 !score <nick> %couleur pour connaitre un score
notice $nick %couleur 4 !top10 %couleur ou 4 !top3 %couleur pour afficher le classement
notice $nick %couleur 4 !ajouter <question> <reponse> %couleur pour proposer une nouvelle question/réponse
notice $nick %couleur 4 !aide %couleur pour une aide sur le quizz
}
elseif ($1 == !top3) { notice $nick %couleur $score($chan,1) %couleur // $score($chan,2) %couleur // $score($chan,3) }
elseif ($1 == !top10) {
notice $nick %couleur Classement des 10 meilleurs : $score($chan,1)
notice $nick %couleur $score($chan,2) %couleur // $score($chan,3) %couleur // $score($chan,4)
notice $nick %couleur $score($chan,5) %couleur // $score($chan,6) %couleur // $score($chan,7)
notice $nick %couleur $score($chan,8) %couleur // $score($chan,9) %couleur // $score($chan,10)
}
elseif ($1 == !aide) {
notice $nick %couleur Vous devez taper le premier la bonne réponse avec l'orthographe correcte. Les grands nombres, doivent être tapés avec un espace comme séparateur des milliers (ex: 35 000)
}
elseif ($1 == !score) {
if ($2 == $null) { notice $nick %couleur syntax 4 !score <nick> | halt }
var %rep = " $+ $mircdirquizz/ $+ $chan $+ .ini"
notice $nick %couleur Score de 7 $2 %couleur : 4 $readini(%rep,$2,score)
}
elseif ($1- == !revoir) {
notice $nick J'ai bien enregistré que vous me demandez de revoir la question: " $readini(" $+ $mircdirquizz"/chan.ini,$chan,question) "
write " $+ $mircdirrequest.txt" $nick : Revoir la question " $readini(" $+ $mircdirquizz/chan.ini",$chan,question) "
}
elseif ($1 == !ajouter) {
write " $+ $mircdirquestion.txt" $nick : $chan : $2-
notice $nick %couleur OK c'est enregistré
}
else {
var %text = $quizzstrip($1-)
tokenize 32 %text
if ($readini(" $+ $mircdirquizz/chan.ini",$chan,reponse) == %text) { quizzreponse $chan $nick }
}
}
}
on *:JOIN:*: {
if ($readini(" $+ $mircdirquizz/chan.ini",$chan,start)) {
var %rep = " $+ $mircdirquizz/ $+ $chan $+ .ini"
if ($readini(%rep,$nick,score)) {
writeini -n %rep $nick score 0
notice $nick %couleur Un petit quizz est en cour, tapez 4 !menuquizz %couleur pour les commandes
}
}
}
on *:NICK:*: {
if ($readini(" $+ $mircdirquizz/chan.ini",$1,start)) {
var %rep = " $+ $mircdirquizz/ $+ $chan $+ .ini"
var %b = $readini(%rep,$nick,score)
writeini -n %rep $newnick score %b
remini %rep $nick
}
}
alias quizzstart {
if (!$readini(" $+ $mircdirquizz/chan.ini",$1,start)) {
var %rep = " $+ $mircdirquizz/ $+ $1 $+ .ini"
writeini -n " $+ $mircdirquizz/chan.ini" $chan nonrepondu 0
remove %rep
var %i = 1
:tloop
set %temp $nick($1,%i)
writeini -n %rep $nick($1,%i) score 0
if (%i != $nick($1,0)) { inc %i 1 | goto tloop }
set %quizz.data $lines(" $+ $mircdirquizz/database.txt")
writeini -n " $+ $mircdirquizz/chan.ini" $chan start $ctime
msg $1 %couleur Le Quizz démarre dans 4 15 %couleur secondes, préparez-vous!
timer 1 15 quizzposer $1
}
else { notice $nick le quizz tourne deja sur $1 }
}
alias quizzstop {
var %rep = " $+ $mircdirquizz/ $+ $1 $+ .ini"
timerquizz $+ $1 off
if ($readini(" $+ $mircdirquizz/chan.ini",$1,start)) {
msg $1 %couleur Le Quizz est terminé ( actif depuis 4 $duration($calc($ctime - $readini(" $+ $mircdirquizz/chan.ini",$1,start))) %couleur )
msg $1 %couleur Classement des 10 meilleurs : $score($1,1)
msg $1 %couleur $score($1,2) %couleur // $score($1,3) %couleur // $score($1,4)
timer 1 1 msg $1 %couleur $score($1,5) %couleur // $score($1,6) %couleur // $score($1,7)
timer 1 1 msg $1 %couleur $score($1,8) %couleur // $score($1,9) %couleur // $score($1,10)
}
remove %rep
remini " $+ $mircdirquizz/chan.ini" $chan
}
alias score {
var %rep = " $+ $mircdirquizz/ $+ $1 $+ .ini"
var %temp = $ini(%rep,$2)
if (%temp != $null) { return 4 $2 $+ . 7 %temp %couleur (4 $readini(%rep,%temp,score) %couleur $+ ) }
else { return }
}
alias cscore {
var %rep = " $+ $mircdirquizz/ $+ $1 $+ .ini"
:sloop1
var %qa $readini(%rep,$ini(%rep,1),score)
var %qk = 1
var %qj = 1
:sloop2
if (%qa < $readini(%rep,$ini(%rep,%qj),score)) {
var %qk = %qj
}
if ($ini(%rep,0) != 0) {
if (%qj == $ini(%rep,0)) {
var %qb = $readini(%rep,$ini(%rep,%qk),score)
writeini -n " $+ $mircdirquizz/cnick.ini" $ini(%rep,%qk) score %qb
remini %rep $ini(%rep,%qk)
goto sloop1
}
else { inc %qj 1 | goto sloop2 }
}
remove %rep
rename " $+ $mircdirquizz/cnick.ini" %rep
}
alias quizzstrip {
var %text = $strip($1-)
if ($left(%text,2) = d') %text = $mid(%text,3)
if ($left(%text,2) = l') %text = $mid(%text,3)
if ($left(%text,5) = dans $+ $chr(32)) %text = $mid(%text,6)
if ($left(%text,5) = avec $+ $chr(32)) %text = $mid(%text,6)
if ($left(%text,2) = à $+ $chr(32)) %text = $mid(%text,3)
if ($left(%text,2) = a $+ $chr(32)) %text = $mid(%text,3)
if ($left(%text,3) = de $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,3) = un $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,3) = du $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,3) = le $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,3) = la $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,3) = au $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,3) = en $+ $chr(32)) %text = $mid(%text,4)
if ($left(%text,4) = une $+ $chr(32)) %text = $mid(%text,5)
if ($left(%text,4) = les $+ $chr(32)) %text = $mid(%text,5)
if ($left(%text,4) = des $+ $chr(32)) %text = $mid(%text,5)
if ($left(%text,4) = aux $+ $chr(32)) %text = $mid(%text,5)
return $replace(%text,É,E,é,e,è,e,ê,e,à,a,â,a,ç,c,ô,o,ù,u,û,u,ï,i,î,i,-,$chr(32),',$chr(32))
}
alias quizzposer {
var %rep = " $+ $mircdirquizz/ $+ $1 $+ .ini"
var %quizz.q = $read(" $+ $mircdirquizz/database.txt",$rand(1,%quizz.data))
var %question = $gettok(%quizz.q,1,92)
writeini -n " $+ $mircdirquizz/chan.ini" $1 question %question
var %quizz.a $strip($gettok(%quizz.q,2,92))
if (%question == #S) {
%question = $upper(%quizz.a)
while (%question == %quizz.a) {
var %temp = %question
%question = $null
while (%temp != $null) {
var %rnd = $rand(1,$len(%quizz.a))
%question = %question $+ $mid(%temp,%rnd,1)
%temp = $left(%temp,$calc(%rnd - 1)) $+ $mid(%temp,$calc(%rnd + 1))
}
}
writeini -n " $+ $mircdirquizz/chan.ini" $1 question %couleur Mot mélangé : 4 %question
}
writeini -n " $+ $mircdirquizz/chan.ini" $1 reponse $quizzstrip(%quizz.a)
msg $1 4 [Question] %couleur $readini(" $+ $mircdirquizz/chan.ini",$1,question)
timerquizz $+ $1 1 25 quizzaide $1
}
alias quizzaide {
var %rep = quizz/ $+ $1 $+ .ini
var %len = $len($readini(" $+ $mircdirquizz/chan.ini",$1,reponse))
var %hint
if (%len == 2) %len = 3
if (%len >= 3) {
%len = %len / 3
if ($rand(0,1) == 0) %hint = Une petite aide : 4 $left($readini(" $+ $mircdirquizz/chan.ini",$1,reponse),%len) $+ ...
else %hint = Une petite aide : 4 ... $+ $right($readini(" $+ $mircdirquizz/chan.ini",$1,reponse),%len)
}
else %hint = $null
msg $1 %couleur Le délai est bientot écoulé! %hint
timerquizz $+ $1 1 15 quizznr $1
}
alias quizznr {
msg $1 %couleur Désolé, le délai est écoulé . La réponse était: 4 $readini(" $+ $mircdirquizz/chan.ini",$1,reponse)
remini quizz/chan.ini $1 reponse
var %nr = $readini(" $+ $mircdirquizz/chan.ini",$1,nonrepondu)
inc %nr 1
writeini -n " $+ $mircdirquizz/chan.ini" $1 nonrepondu %nr
if ($readini(" $+ $mircdirquizz/chan.ini",$1,nonrepondu) == 10) {
msg $1 %couleur Il y a eu 4 10 %couleur questions non trouvées.
quizzstop $1
}
timerquizz $+ $1 1 5 quizzresume $1
}
alias quizzreponse {
var %rep = " $+ $mircdirquizz/ $+ $1 $+ .ini"
timerquizz $+ $1 off
writeini -n " $+ $mircdirquizz/chan.ini" $1 nonrepondu 0
var %win = $readini %rep $2 score
inc %win 1
writeini -n %rep $2 score %win
writeini -n " $+ $mircdirquizz/chan.ini" $1 dernier $2
msg $1 %couleur Correct 4 $2 %couleur ! La réponse est: 4 $readini(" $+ $mircdirquizz/chan.ini",$1,reponse) %couleur ( 4 %win %couleur réponse )
cscore $1
remini " $+ $mircdirquizz/chan.ini" $1 reponse
quizzresume $1
}
alias quizzresume {
if ($readini(" $+ $mircdirquizz/chan.ini",$1,classement) == 4) {
msg $1 %couleur Classement des 3 meilleurs : $score($1,1) %couleur // $score($1,2) %couleur // $score($1,3)
}
elseif ($readini(" $+ $mircdirquizz/chan.ini",$1,classement) == 8) {
msg $1 %couleur Classement des 10 meilleurs : $score($1,1)
msg $1 %couleur $score($1,2) %couleur // $score($1,3) %couleur // $score($1,4)
msg $1 %couleur $score($1,5) %couleur // $score($1,6) %couleur // $score($1,7)
msg $1 %couleur $score($1,8) %couleur // $score($1,9) %couleur // $score($1,10)
writeini -n " $+ $mircdirquizz/chan.ini" $1 classement 0
}
elseif ($readini(" $+ $mircdirquizz/chan.ini",$1,classement) == $null) { writeini -n " $+ $mircdirquizz/chan.ini" $1 classement 1 }
var %c = $readini(" $+ $mircdirquizz/chan.ini",$1,classement)
inc %c 1
writeini -n " $+ $mircdirquizz/chan.ini" $1 classement %c
timer 1 10 msg $1 %couleur Prochaine question dans 5 secondes. ( Dernier gagnant: 4 $readini(" $+ $mircdirquizz/chan.ini",$1,dernier) %couleur )
timerquizz $+ $1 1 15 quizzposer $1
}
Conclusion :
correction :
1.3 : un bug sur la gestion de la database si je me souvien
1.1 : la commandes !revoir risquer pas de marcher dans cette etats c'est reparer, plus d'efficaciter pour le !stop toujour sans flooder
pour les scripteur vous pouvez modifier les commandes start et stop sont accessible a tous.
en esperant que ca resolve vos problemes, @++
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.