ANTI BADWORD

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 - 6 avril 2007 à 23:33
xEns Messages postés 1 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 25 mai 2007 - 25 mai 2007 à 19:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42116-anti-badword

xEns Messages postés 1 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 25 mai 2007
25 mai 2007 à 19:20
Salut,

J'ai un petit soucis ( peut être que c'est normal ) mais je penses pas. ^^
Alors j'ai ajouté comme insultes "fdp;tg;ntm;noob;ftg;lama" et dans la fenêtre Quakenet je trouve comme erreur "FDP;TG;NTM;NOOB;FTG;LAMA Unknown command"

Quelq'un peut-il m'aidé ? Merci d'avance

xEns.
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
7 avril 2007 à 15:00
oui oui j'ai vu ensuite, c'est la drogue ça
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
7 avril 2007 à 11:53
Wims, la configuration se fait avec $badword (cf la première partie du ON TEXT)
cs_Blad3 Messages postés 3 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 8 avril 2007
7 avril 2007 à 11:20
Ok, le seul problème c'est que je me suis pas encore trop penché sur les hash tables, c'est pourquoi j'ai préféré utiliser des variables globales.

Wins: il manque un alias badword O_o ?
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
6 avril 2007 à 23:44
Il aurait été plus simple de /hload ton .ini au démarrage (et à chaque changement) et de boucler sur le nombre de mots puis d'utiliser $hmatch(table,mot,0)

Tu devrais aussi faire un alias pour ne pas répéter ton ON ACTION et ON TEXT (la partie qu gère le bouclage). Ca donnerait untruc du genre :


alias -l checkword {
var %n $1, %c $2, %a = 3, %p = $+(taTable,c)
if ($readini(channel.ini,%c,bw) != on) return
if (!$hget(%p)) hload -i %p channel.ini %c
while %a <= $0 {
if ($hmatch(%p,$gettok($1-,%a,32),0)) {
inc -u3600 %badword.warnings. [ $+ [ %n ] ]
if (%badword.warnings. [ $+ [ %n ] ] > $readini(channel.ini,%c,bw.warn)) {
ban $iif($readini(channel.ini,%c,bw.lenght),$+(-ku,$readini(channel.ini,%c,bw.lenght)),-k) %c %n I told you not to talk bullshit!
unset %badword.warnings. [ $+ [ %n ] ]
}
else describe %c warns %n about the Badwords! Warnings: %badword.warnings. [ $+ [ %n ] ] $+ / $+ $readini(channel.ini,%c,bw.warn) $iif(%badword.warnings. [ $+ [ %n ] ] == $readini(channel.ini,%c,bw.warn),Next time -> ban!)
break
}
inc %a
}
}
on *:ACTION:*:#:checkword $nick $chan $1-

Tu devrais utiliser 1 et 0 pour les valeurs de $readini(channel.ini,$chan,bw), ça simplifierait vraiment la code (vu que c'est booléen) :)

Essaye d'utiliser un peu plus les hash tables et moins de variables globales
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
6 avril 2007 à 23:33
Tu utilise les variables globales c'est moche :(, tu devrais essayer les hashtables

Il manque pas un alias badword ? celui qui permet de configurer ?
Tu pourrais optimiser un peu :)
Rejoignez-nous