ANTI FLOOD

mFBiBi Messages postés 5 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 8 mai 2003 - 8 mai 2003 à 15:35
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 - 16 juin 2008 à 23:34
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/14740-anti-flood

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
16 juin 2008 à 23:34
salut
moi je vais parlé sur le dialog quelque petites details qui feront les choses avec moins d'erreurs. on commence par:

menu menubar {
Anti Flood:.dialog -m Tom_mlkj.antiflood Tom_mlkj.antiflood
}

si tu ouvre le dialog deux ou plusieurs fois tu aurra un msg d'erreur qui te dis: /dialog: nom_du_dialog name in use X) moi je mettrai ça

menu menubar {
Anti Flood: if ($dialog(Tom_mlkj.antiflood).table) echo -s la fenêtre Tom_mlkj.antiflood est déjà ouverte | else dialog -ma Tom_mlkj.antiflood Tom_mlkj.antiflood
}

ou alias tom.a.f par exemple si non tu choisis le nom d'alias que tu veux bien sur
donc:

menu menubar {
Anti Flood:tom.a.f
}
alias tom.a.f {
if ($dialog(Tom_mlkj.antiflood).table) echo -s la fenêtre Tom_mlkj.antiflood est déjà ouverte
else dialog -ma Tom_mlkj.antiflood Tom_mlkj.antiflood
}

pareil pour Tom_mlkj.flood.note comme ci dessus, si tu ajoutais un "a" ça serait mieu a mon avis donc "dialog -ma Tom_mlkj.flood.note Tom_mlkj.flood.note" et il va falloir arrenger les mesures dans "note" :/

et pourquoi tout ces "On *:dialog:Tom_mlkj.antiflood:sclick:ID:"
tu met juste "On *:dialog:Tom_mlkj.antiflood:sclick:40:" pour la "note"
et le reste tu pouvais faire au lieu de ça par exemple

On *:dialog:Tom_mlkj.antiflood:sclick:13:{
if ($did(13).state = 1 ) { .enable #Tom_mlkj.flood.chan.texte }
else { .disable #Tom_mlkj.flood.chan.texte }
}
On *:dialog:Tom_mlkj.antiflood:sclick:29:{
if ($did(29).state = 1 ) { .enable #Tom_mlkj.flood.chan.action }
else { .disable #Tom_mlkj.flood.chan.action }
}

tu met

On *:dialog:Tom_mlkj.antiflood:*:*: {
if ($devent == sclick) {
if ($did(13).state) set %i 1 | else unset %i
if ($did(29).state) set %ii 1 | else unset %ii
}
elseif ($devent == init) {
if (%i) did -c $dname 13
if (%i) did -c $dname 29
}
}

là tu n'aura plus besoin de faire des groupes au lieu de mettre ".enable #Tom_mlkj.flood.chan.texte " tu aura dans ton code au lieu de ça

#Tom_mlkj.flood.chan.texte off
on *:text:*:#: {
/inc %flood-chan-text [ $+ [ $nick ] ]
if ((%flood-chan-text [ $+ [ $nick ] ] == %ligne.flood.text ) && ( $me isop $chan )) { kick $chan $nick %Tom_mlkj.flood.chan.text | /unset %flood-chan-text [ $+ [ $nick ] ] }
if (%flood-chan-text [ $+ [ $nick ] ] == 1) { /.timer 1 %tps.flood.action /unset %flood-chan-text [ $+ [ $nick ] ] }
}
#Tom_mlkj.flood.chan.texte end

tu aura ça

on *:text:*:#: {
if (%i) {
/inc %flood-chan-text [ $+ [ $nick ] ]
if ((%flood-chan-text [ $+ [ $nick ] ] == %ligne.flood.text ) && ( $me isop $chan )) { kick $chan $nick %Tom_mlkj.flood.chan.text | /unset %flood-chan-text [ $+ [ $nick ] ] }
if (%flood-chan-text [ $+ [ $nick ] ] == 1) { /.timer 1 %tps.flood.action /unset %flood-chan-text [ $+ [ $nick ] ] }
}
}

pareil pour ON ACTION

on *:action:*:#: {
if (%ii) {
/inc %flood-chan-action [ $+ [ $nick ] ]
if ((%flood-chan-action [ $+ [ $nick ] ] == %ligne.flood.action ) && ( $me isop $chan )) { kick $chan $nick %Tom_mlkj.flood.chan.action | /unset %flood-chan-action [ $+ [ $nick ] ] }
if (%flood-chan-action [ $+ [ $nick ] ] == 1) { /.timer 1 %tps.flood.action /unset %flood-chan-action [ $+ [ $nick ] ] }
}
}

aussi pour les autres

c'est bien inteligent de faire "if ($did(ID) != $null)" mais au cas d'après avoir mis quelque chose ensuite on l'efface meme si tu apuis OK dès que tu entre dans le dialog une 2eme fois tu trouvera le numero ou le msg présent comme si t'a pas supprimé X) là je pense qu'il va falloir un "unset" :D

donc toujours dans la "if ($devent == sclick) {" on met

if ($did(39)) {
if ($did(11) != $null) { set %tps.flood.text $did(11) } | else unset %tps.flood.text
if ($did(9) != $null) { set %ligne.flood.text $did(9) } | else unset %ligne.flood.text
if ($did(25) != $null) { set %ligne.flood.action $did(25) } | else unset %ligne.flood.action
if ($did(27) != $null) { set %tps.flood.action $did(27) } | else unset %tps.flood.action
if ($did(42) != $null) { set %Tom_mlkj.flood.chan.text $did(42) } | else unset %Tom_mlkj.flood.chan.text
..ect....
...ect...
}

ensuite le reste pareil...


on remarque dans ton code "&& ( $me isop $chan )" t'a cas juste metre un "@" apres le "on" donc au lieu de

on *:text:*:#: {
/......blabla........
...........blabla........ && ( $me isop $chan ))

tu met

on @*:text:*:#: {
/......blabla........
...........blabla........ (et sans le "$me isop $chan" ici t'a plus besoin de mettre puisque "@" l'a remplacé)

et dans le groupe #Tom_mlkj.flood.pv.action off on trouve "on *!:text:*:?: {" ça devait etre "on *!:action:*:?: {" ??

et c'est quoi le truc de timer dans le dialog "NOTE"?! il fallait la mettre dans le "tab 14"

bon j'espere que j'ai raison car moi aussi je suis debutant :)
patthe Messages postés 2 Date d'inscription dimanche 18 juin 2006 Statut Membre Dernière intervention 23 juin 2006
18 juin 2006 à 22:05
Il est parfait a l'exeption, quand on te flood en PV, j'aimerai que sa ferme ma conversation. Si possible, j'aimerai avoir la solution au dileme ;) le plus rapidement possible ;)
lordcode Messages postés 1 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 4 décembre 2005
4 déc. 2005 à 10:39
merci pour cette remote :)
cs_samsungman Messages postés 20 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 28 janvier 2005
25 juin 2004 à 09:32
moi sa met "commande inconnue" help me
carpediem666fr Messages postés 122 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 2 novembre 2008
11 mai 2004 à 18:36
salut.. deux choses :
le ok de ton dialog note ne fce pas
%tps.flood.text tu l utilises ou dans les actions (texte, par ex ici).. nul part....

je te mets 3/10 ....

justement Sorn ou Kolibot.. comment pourrait on l utiliser ?

a la palace de

/inc %flood-chan-text [ $+ [ $nick ] ]
if ((%flood-chan-text [ $+ [ $nick ] ] == %ligne.flood.text ) && ( $me isop $chan )) { kick $chan $nick %Tom_mlkj.flood.chan.text | /unset %flood-chan-text [ $+ [ $nick ] ] }
if (%flood-chan-text [ $+ [ $nick ] ] == 1) { /.timer 1 %tps.flood.action /unset %flood-chan-text [ $+ [ $nick ] ] }
}

j aurais mis :

if ( $me isop $chan ) {
/inc %flood-chan-text [ $+ [ $nick ] ]
while (%flood-chan-text [ $+ [ $nick ] ] != %ligne.flood.text) {
/inc %ligne.flood.text [ $+ [ $nick ] ]
}
if (%flood-chan-text [ $+ [ $nick ] ] == %ligne.flood.text && %ligne.flood.text [ $+ [ $nick ] ] == %tps.flood.action ) {
kick $chan $nick %Tom_mlkj.flood.chan.text | /unset %flood-chan-text [ $+ [ $nick ] ]
}
/.timer 1 %tps.flood.action /unset %flood-chan-text [ $+ [ $nick ] ] }

peut être ai-je tort ??? je ne demande qu'a voir !
cs_lebaronrouge Messages postés 288 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 14 février 2009
17 mars 2004 à 18:26
oui la meme chose avec choix sur voice ou op et oci choix du ou des chans d'actions merci ;)
cs_Jp2A Messages postés 27 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 7 novembre 2006
29 févr. 2004 à 01:21
bah il es bien petit détail rajouter un case pour kicker ou non les ops? les voice? sinon bravo il es super !!!
bonne continuation :o)
cs_DiVoX Messages postés 1 Date d'inscription mercredi 31 décembre 2003 Statut Membre Dernière intervention 31 décembre 2003
31 déc. 2003 à 19:50
moi tout marche lé bien sinon bvo
canard2Wc Messages postés 13 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 26 août 2003
26 août 2003 à 20:01
ton timer decone sa kick tlm LoL
bizzaroid Messages postés 4 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 30 juillet 2003
30 juil. 2003 à 08:36
Bhé j'ai installé dans le remote et sauvé ca en aflood.jhd pis y se passe rien : j'ai meme po le menu avec le clic droit ! help :)
cs_EvEnTrEuR Messages postés 3 Date d'inscription mercredi 4 juin 2003 Statut Membre Dernière intervention 25 juin 2003
10 juin 2003 à 10:14
il marche pa le kick chez mwa
Tommlkj Messages postés 29 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 4 août 2003
9 mai 2003 à 08:55
je fais ce que je veux encore ^^
cs_Mick52 Messages postés 66 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004
8 mai 2003 à 20:27
euh tu conné l'existance des fichiers *.zip
si oui utilise la tsé pke c long comme code
Sinon ca marche c cool un peu imprecis mé ca marche
Tommlkj Messages postés 29 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 4 août 2003
8 mai 2003 à 16:40
a mettre dans les remotes
mFBiBi Messages postés 5 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 8 mai 2003
8 mai 2003 à 15:35
dacord mai comen on installe ce truc ?????????????
Rejoignez-nous