Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Code jeu ni oui ni non
#31

tcl
if {[regexp -nocase {expression} $text]!=""} {
     putserv "KICK $chan $nick :Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:"
}

C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#32
pour ce code là que snip74 voulais tester


tcl
# Badword Kick by KuNgFo0
 
set badwords {
"*oui*"
"*non*"
}
# Kick MSG
set badword_msg "Bad Word"
 
# Channels
set badword_chans "#conceptionl"
 
bind pubm - * pubm_badword
 
putlog "badword loaded"
 
proc pubm_badword {nick uhost hand chan arg} {
        global badwords badword_msg badword_chans botnick
      set arg [stripcodes uacgbr $arg]
        if {(([lsearch -exact [string tolower $badword_chans] [string tolower $chan]] != -1) || ($badword_chans == "*")) && (![matchattr $hand b]) && ($nick != $botnick)} {
                foreach badword [string tolower $badwords] {
                        if {[string match -nocase $badword $arg]} {
                                putserv "KICK $chan $nick :$badword_msg"
                                return
                        }
                }
        }
}


Si on met ce code il sera toujours actif, des que quelqu'un ecrira oui ou non il sera kicker. Y aurait t'il un moyen de mettre une commande qui puisse activer le jeu et l'arreter ???
#33
fedora Wrote:en recherchant un peut sur le site,je suis tomber sur le code de Dj_KennY qui fait un peut ce que tu recherche.j'ai ajouter un foreach.


tcl
namespace eval speak {
   # variable contenant les mots à reconnaitre
   # on pourras utiliser des wildchar * ?
   variable bonjour {oui non}
  setudef flag OuiNon
}
 
bind pubm - * speak::bonjour
proc speak::bonjour {nick host hand chan text} {
   # on déclare les variable bonjour
   variable bonjour
   if {[channel get $chan OuiNon]} {
   # on debug le texte et on met tout en minuscules
   set text [stripcodes abcru $text]
   set text [string tolower $text]
   # on test si on trouve le texte dans la variable bonjour
    foreach mot $text {
   if {[lsearch -exact $bonjour $mot] != -1} {
       putserv "KICK $chan $nick :Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:"
 
   # on ferme les \} qu on a ouvert plus haut
   }
}
}
}


pour l'activer tape en pl .chanset #salon +OuiNon
essaye de tester comme sa voir. perso j'ai tester est sa fonctionne ...

dans les précédant poste y avais le code qui fonctionne avec ce que tu voulais.

Cordialement DnS
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#34
Oui mais en PL.

quoique si je fait un


tcl
bind pub - !ouinon ouinon
proc ouinon {nick host hand chan arg} {
   global botnick 
     channel set $chan +OuiNon
	 putserv "PRIVMSG $::chanback :Oui non activé par $nick."
}


ca devrait fonctionner
#35
Bon j'ai ma réponse, j'ai testé, ca fonctionne.

Merci de ta réponse DnS
#36
snip74 Wrote:Re all,
Tiens je viens de m'apercevoir qu'il y avait un truc qui va pas :/
avec la variable :
{oui 'o u i' non 'n o n' nan 'n a n' oué 'o u é' oue 'o u e' ouais 'o u a i s' ouai 'o u a i' yes 'y e s' ouep 'o u e p'}

quand une personne tape a f par exemple sa le kick voila l'exemple :
[13:11] <Franck> toute a fais
[13:11] * Franck was kicked by Nioui-Ninon (Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:)

après avoir fait des testes voila se que sa donne :

[13:35] <snip74> af
[13:35] <snip74> a f
[13:35] * You were kicked by Nioui-Ninon (Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:)

Cordialement Stéphane

En effet quand tu tapes juste a f ca te kick mais quand tu tapes u i ca te kick aussi.

Je pense ca viens des mots dans la variable qui sont avec des espaces comme O U I ou O U A I S.

Mais je sais pas de quoi ca viens :/
#37
J'ai un petit bug sur le code djKenny


tcl
namespace eval speak {
   # variable contenant les mots à reconnaitre
   # on pourras utiliser des wildchar * ?
   variable bonjour {oui non}
  setudef flag OuiNon
}
 
bind pubm - * speak::bonjour
proc speak::bonjour {nick host hand chan text} {
   # on déclare les variable bonjour
   variable bonjour
   if {[channel get $chan OuiNon]} {
   # on debug le texte et on met tout en minuscules
   set text [stripcodes abcru $text]
   set text [string tolower $text]
   # on test si on trouve le texte dans la variable bonjour
    foreach mot $text {
   if {[lsearch -exact $bonjour $mot] != -1} {
       putserv "KICK $chan $nick :Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:"
 
   # on ferme les \} qu on a ouvert plus haut
   }
}
   if {[regexp -nocase {expression} $text]!=""} {
     putserv "KICK $chan $nick :Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:"
}
}
}


quand j'ecris oupsssss ca kick aussi , en fait ca kick pour enormement de phrases.


Code:
[00:23:40] <@popcorn> C koi ce delire
[00:23:40] [Kick] popcorn kické de #accueil par tyrex : Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:

Code:
[00:36:36] <@loulou> oupssssssss
[00:36:37] [Kick] loulou kické de #accueil par tyrex : Attention tu viens d'être kické pour avoir dit le mot interdit oui ou Non :bete:
De quoi cela viens t'il ?
#38
ça viens de la

tcl
if {[regexp -nocase {expression} $text]!=""} {

en fait il faut remplacer le mot "expression" par l expression régulière capable de détecter oui ou non
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away


Forum Jump:


Users browsing this thread: 1 Guest(s)