Un script anti-flood pour mon eggdrop
#1
[J'avais posté un message similaire sur eggdrop-fr.org. Néanmoins leur forum semble... desertique !]

Bonjour,

J'essaie tant bien que mal de coder une fonction d'aide pour le future fonctionnement de mon eggdrop.

Une sécurité anti-flood s'impose donc.

La version de mon egg-drop est la suivante : v1.7

Voilà le code :

tcl
#Variables constantes
 
set request_max 3
set timer_max 10

#Variables
 
set timer_flood 0
set anti_flood 0
set attente_max 60

#Timer
 
utimer 1 "incr timer_flood"

#Binds
 
bind pub - !aide pub:aide
bind msg - aide msg:aide

#Procedures
 
proc pub:aide { nick uhost handle channel arg } {
 
global timer_flood anti_flood attente_max timer_max request_max
 
	if [[[$timer_flood < $timer_max && $anti_flood < $request_max] || [$timer_flood >= $timer_max && $anti_flood <= $request_max]] && $attente_max == 60] {
 
		putquick "NOTICE $nick :Aide...Bla bla"
 
		incr anti_flood
	}
 
	elseif [$attente_max == 0] {
 
		set attente_max 60
 
		putquick "PRIVMSG $channel :La limite de : $request_max pour $timer_max secondes a été atteinte."
		putquick "PRIVMSG $channel :Merci de patienter $attente_max secondes"
 
 
	}
 
	elseif [$attente_max == 60] {
 
	utimer 60 "set attente_max 0 set timer_flood 0 set anti_flood 0"
 
	}
 
}



J'ai une erreur, la suivante :

Citation :Tcl error [pub:aide]: invalid command name "1"

Je détail (Dans le cas où ne serait pas clair) le fonctionnement de mon code.

Je me sert de deux variables, une qui sera associée à un timer, une autre pour "compter" les demandes d'aide.

Dans des variables qui ne seront pas modifiées je stock les limites, ici 3 requêtes maximum pour 10 secondes.

A l'aide d'un timer, j'incrémente une variable tout les secondes.

De même à chaque requête, j'incrémente la variable correspondante.

Si les deux variables sont comprise dans la limite, on affiche l'aide.

Si non, on affiche une erreur, et on initialise le compteur d'un timer.

Une fois la variable du timer initialisée (attente_max), on fait patienter l'user 60 secondes, au bout desquelles toutes la variables seront réinitialisée.

Et on recommence...

Merci de votre aide.
—( ^^ )—

Pensez à global var dans une procédure ! L'oublier c'est le payer cher... Moi ça m'a couté une journée de prise de tête et des cheveux !
Répondre Avertir


Messages dans ce sujet
Un script anti-flood pour mon eggdrop - par Virgile - 05/08/2008, 13:18

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté