Bonjour ,
je viens de dl un tcl pour mettre une limite dynamique sur un salon.
Ce dernier marche bien sauf que qu'en quelqu'un part , il ne fait pas -1 a la limite chan :(
Quelqu'un pourrait il m'aider rapidement svp
Par avance merci :)
re :)
Probleme resolu seulement le +/- 1 aux joints/parts ne se fait qu'au bout de 1 mins et je trouve pas ou modifier pour le mettre a 20sc
si quelqu'un peut m'aider ...
merci
bewess
bewess a écrit :Merci pour la reponse, ( desoler pour le retard :x )
et je rajoute ca ou exactement? histoire de pas tout foirer :p
Bon week-end :)
Tu l'ajoutes ou tu veux, en dehord d'une procédure.
Concrètement, le bout de code que CrazyCat ta fait va lancer a chaque fois que quelqu'un join ou part un salon ou se trouve l'eggdrop la procédure limit:join ou limit:part (ça dépend s'il s'agit d'un join ou part).
Les deux ... auront pour but de faire la même chose, c'est a dire appeller la procédure limit:time:check.
Alors voila ce qu'éventuellement tu ne comprends pas :
Code :
limit:time:check 0 0 0 0 0
En fait, ta procédure limit:time:check nécessite d'être appeler par un bind time, mais il est possible de l'appeler via autre chose (cf ci-dessus).
Les "0 0 0 0 0" sont les arguments pour ta procédure (elle a besoin de cet indicateur pour se lancer, si non elle te retourne une érreur de code).
Ces "arguments" correspondent a "minute jour semaine mois année" (que tu as abrégé en anglais dans proc limit:time:check {min ...}) et donc en donnant comme valeur 0 0 0 0 0, la proc se lance tout desuite ;)
Bon courage, et si tu n'as pas compris, n'hésite pas a re-poster ;)
DJ-VARIOUS a écrit :ok moi j'ai fais se qui a été dis dans se post sauf que j'ai cette erreur si indiquer dans mon eggdrop:
DJ-VARIOUS a écrit :Tcl error [limit:time:check]: can't read "limit(channel)": no such variable
alors je me demande pourquoi et quoi faire ;) svp
Tu peux nous C/C parfaitement le code que tu as ?
Même si je me doute de ce que tu as, je préfère quand même (on sais jamais) chercher l'erreur sur ton code.
28/03/2008, 07:39 (Modification du message : 28/03/2008, 07:58 par DaV34.)
tcl
##### DEBUT DU PROGRAMME #####
bind time - "* * * * *" limit:time:check
bind join - "*" limit:join
bind part - "*" limit:part
proc limit:join{nick handle host chan}{
limit:time:check 00000}proc limit:part {nick handle host chan {msg ""}}{
limit:time:check 00000}proc limit:time:check { min hour day month year }{global limit
set limite_actuelle 5foreach chan [channels]{if{(($limit(channel)!= "all")&&([lsearch -exact $limit(channel)$chan]!= -1)) || ($limit(channel) == "all")}{if{[string match *l*[lindex[getchanmode $chan]0]]}{if{[string match *k*[lindex[getchanmode $chan]0]]}{set limite_actuelle [lindex[getchanmode $chan]2]}else{set limite_actuelle [lindex[getchanmode $chan]1]}}if{![info exists limit($chan,stop)]}{set limit($chan,stop)0}set limit($chan,total)[llength[chanlist $chan]]if{![info exists limit($chan,total,old)]}{set limit($chan,total,old)$limit($chan,total)}
# on regarde si y'a pas trop de gens qui sont rentrés sur le channel en 1 minuteif{![info exists limit($chan,danger)]}{set limit($chan,danger)1}if{$limit($chan,total) == [expr$limit($chan,total,old) + $limit(plus)]}{if{![info exists limit($chan,danger,moment)]}{set limit($chan,danger,moment)"$hour:$min"}if{([lindex[split$limit($chan,danger,moment) :]0] == $hour)&&([expr[lindex[split$limit($chan,danger,moment) :]1] + 1] == $min)}{
# si la limite était pleine il y a une minute deja alors on incremente le dangerset limit($chan,danger)[expr$limit($chan,danger) + 1]}}if{$limit($chan,danger) == 2}{
putlog "#LIMIT# Je trouve qu'il y a bcp de personne qui ont rejoin $chan ... je n'augmente plus la limite pendant X secondes !"
puthelp "privmsg $chan :#LIMIT# Je trouve qu'il y a bcp de personne qui ont rejoin $chan ... je n'augmente plus la limite pendant X secondes !"set limit($chan,stop)4set limit($chan,danger)1}else{if{$limit($chan,stop)>0}{set limit($chan,stop)[expr$limit($chan,stop) - 1]}else{if{$limit($chan,danger)<2}{if{$limite_actuelle!= [expr$limit($chan,total) + $limit(plus)]}{
pushmode $chan +l [expr$limit($chan,total) + $limit(plus)]set limit($chan,total,old)$limit($chan,total)}}}}}}return0}
Le tcl n'est pas complet, il manque toute la partie de configuration, et donc les variables initiales ne sont pas correctement renseignées.
Il te manque:
tcl
##### CONFIGURATION #####
### Channels sur lesquels la limite doit etre mise en place (mettre "all" pour tous les channels où le bot est)### Séparer les channels par un espaceset limit(channel)"#canal"
### Indiquer ici de combien la limite doit etre augmentéset limit(plus)2