Quizz Socket Multisalons

Résolu
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006 - 11 mai 2005 à 13:06
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006 - 11 mai 2005 à 18:04
Salut,

Je suis actuelement en train de créé un quizz multi salons en socket,
Mais j'est un gros probléme: Si quelqu'un parle sur un autre salon, les timers change de nom se qui m'enpeche d'arreter le quizz avec la commande .stop
Voila le code:

alias question {
set %temp $read base.txt | set %question. [ $+ [ $1 ] ] $gettok(%temp,1,92) | set %reponse. [ $+ [ $1 ] ] $mid($gettok(%temp,2,92),2,999)
sockwrite -n Shiva PRIVMSG $1 : $+ %question. [ $+ [ $1 ] ]
.timerquest. $+ %lieu 1 10 question2 $1
}
aliasquestion2 {
sockwrite -n Shiva PRIVMSG $1 : $+ Il ne vous reste plus beaucoup de temps pour attaquer!
.timerquest. $+ %lieu 1 5 question3 $1
}


alias question3 {
sockwrite -n shiva PRIVMSG $1 : $+ Désolé, vous n'avez plus assez de temp pour repondre à cette question...La réponse était: %reponse. [ $+ [ $1 ] ]
.timerquest. $+ $1 1 5 question4 $1 | inc %noreponse. [ $+ [ $1 ] ] 1
.unset %reponse. [ $+ [ $1 ] ]
}


alias question4 {
if (%noreponse. [ $+ [ $1 ] ] == %max.no-reponse) { no-reponse $1 }
else {
sockwrite -n Shiva PRIVMSG $1 : $+ %nickquizz Revient dans 10 Secondes préparez vous!!
.timerquest. $+ $1 1 10 question $1
}
}


alias no-reponse {
fin-quizz $1
sockwrite -n Shiva PRIVMSG $1 : $+ Il y a eu %max.no-reponse reponse non trouver. Le quizz est suspendu...
}


alias fin-quizz {
.timerquest. [ $+ [ %$1 ] ] off
unset %noreponse. [ $+ [ $1 ] ]
}


alias toucher {
sockwrite -n Shiva PRIVMSG $1 : $+ Touché! La réponse est: %reponse. [ $+ [ $1 ] ] Continue $2
.timerquest. [ $+ [ $1 ] ] off
.timerquest. [ $+ [ $1 ] ] 1 5 question4 $1
unset %reponse. [ $+ [ $1 ] ]
}


On 1:SOCKREAD:Shiva:{
sockread %msg
aline -ph @Debug %msg
set %auteur-n $gettok(%msg,1,58)
set %auteur $gettok(%auteur-n,1,32)
set %lieu $gettok(%msg,3,32)
set %contenu $gettok(%msg,2,58) $gettok(%msg,3,58) $gettok(%msg,4,58) $gettok(%msg,5,58) $gettok(%msg,6,58) $gettok(%msg,7,58) $gettok(%msg,8,58) $gettok(%msg,9,58) $gettok(%msg,10,58)
;creation des variable de lieu auteur contenu etc
if ($gettok(%msg,2,32) == PING) { sockwrite -n Shiva pong $gettok(%msg,3,32) }
;gestion du ping elseif ($left(%lieu,1) $chr(35)) && (%contenu %reaction) && (%lancement.quizz. [ $+ [ %lieu ] ] != oui) {
sockwrite -n shiva privmsg %lieu : $+ nickquizz vient d'etre lancé, il attaque dans 10 Secondes, préparez-vous!
.timerinvoq. $+ %lieu 1 10 question %lieu
set %lancement.quizz. [ $+ [ %lieu ] ] oui
;commande de lancement du quizz
} elseif (%contenu VERSION) && (%lieu %nickquizz) {
sockwrite -n Shiva NOTICE %auteur VERSION Quizz Service 1.0 beta par Nightmar
;gestion des CTCP VERSION
}
elseif (%lancement.quizz. [ $+ [ %lieu ] ] == oui) && (%contenu == .stop) {
.set %lancement.quizz. [ $+ [ %lieu ] ] non
fin-quizz %lieu
sockwrite -n Shiva PRIVMSG %lieu : $+ Le quizz est terminé pour le moment...
;Gestion de la fin du quizz
}
else {
if (%contenu == %reponse. [ $+ [ %lieu ] ]) {
if (%reponse. [ $+ [ %lieu ] ] != $null) {
toucher %lieu %auteur
;gestion des bonnes reponse
}
}
}
}

merci d'avance

9 réponses

Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
11 mai 2005 à 17:40
Ton problème vient du fait que tu utilises la variable %lieu dans tes aliases questionX (aliases qui s'executent au bout d'un certain temps) et que la variable %lieu change à chaque sockread.

Remplace dans tous tes aliases questionX :

.timerquest. $+ %lieu 1 10 .....
par
.timerquest. $+ $1 1 10 ....
3
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
11 mai 2005 à 13:53
je ne vois aucun event on text , c'est normal ?

si tu nous dit que
des que quelqu'un parle sur un autre salon, les timers change de nom, ce serai bien d'avoir cette partie du code
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
11 mai 2005 à 13:59
non la code est entier est marche, c'est normal qu'il n'y est aucun event etant donné que c'est du socket ....
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
11 mai 2005 à 14:06
Enfait les timers qui lance les commandes /question etc change de nom par exemple o lieu de doner timerquest.#kuizz 1 15 question #kuizz sava doner quelque chose come timerquest.#blabla 1 15 question #kuizz


Donc le quizz continu de poser des question meme si on tape .stop
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
11 mai 2005 à 15:25
personne ne voit ou est le probleme ?
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
11 mai 2005 à 15:55
La seul commande que jé pas mi c'est pour ouvrir le quizz: /sockopen Shiva <serveur>
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
11 mai 2005 à 16:01
Bonjour,



Et si tu utilisais /timers off pour carrément arrêter TOUT les timers actifs ?

Sinon, essaie /timerquest* off qui aura pour action d'arrêter tout les timers ayant un nom commencant par quest


<hr color="#d3d3d3">
Cordialement, Sorn_Drixer (Admin CodeS-SourceS)
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
11 mai 2005 à 17:26
Le probleme etant que le quizz est sencer géré plusieur salon, donc si quelque tape .stop sur salon, le quizz ne doit s'arreter que sur se salon precisement
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
11 mai 2005 à 18:04
Merci beaucoup
0
Rejoignez-nous