Faire reagir le bot sur plusieur mot
#1
Sad 
Hep
Voici un script et a partir de celui la je voudrai le faire réagir sur plusieurs; par que sur le mot "f**k"
Merci :)
Code :
# Le channel sur le quel le script va réagir: set pschan "#Chat" # Le bot réagit t'il sur tout les chan ou juste sur # celui mentionné ci-dessus? 1=Oui 2=Tous set psinchan "1" # Le mot auquel le bot va réagir: set pstrigger "fuck" # Ce que le bot va répondre # (vous pouvez y mettre de la couleur) set psanswer "Non mais tu parle d'un langage toi!" # La façon que le bot va répondre: # ( notice privmsg ou chan ) set psmaniere "chan" ############################################### ################### Script #################### ############################################### ### À ne pas modifier, c'est à vos risques! ### ############################################### bind pub - $pstrigger call_talk proc pretalk { target channel } { global pschan psinchan pstrigger if { $psinchan == "1" && $pschan == $channel } { talk $target $channel } if { $psinchan == "2" } { talk $target $channel } if { $psinchan == "1" && $pschan != $channel } { putlog "J'ai détecté un $pstrigger dans $channel mais je ne suis pas configuré pour y envoyer un message." } } proc talk { nick chan } { global pschan pstrigger psanswer psmaniere if { $psmaniere == "notice" } { putserv "notice $nick :$psanswer" } if { $psmaniere == "privmsg" } { putserv "privmsg $nick :$psanswer"} if { $psmaniere == "chan" } { putserv "privmsg $chan :$nick : $psanswer" } if { $psmaniere != "notice" && $psmaniere != "privmsg" && $psmaniere != "chan" } { putlog "Erreur: Aucune bonne manière d'envoi n'est configuré." } else { putlog "Parle script: Envoyé à $nick" } } proc call_talk { nick uhost hand chan arg } { pretalk $nick $chan }
code]
Répondre
#2
Bonjour, essaye comme ceci :

Code :
set pstrigger "mot,mot1,mot2,etc"

ensuite a la place de
Code :
bind pub - $pstrigger call_talk

met ceci :

Code :
bind pub - "*" verif:call proc verif:call { nick uhost handle channel arg } { forach t [split $pstrigger ,] { if {[string match *[lrange $arg 0 end]* $t]} { call_talk } }
Répondre
#3
Salut
thx de ta rep mec mais pour le mot 2 etc je veux pas qui répète "Non mais tu parle d'un langage toi!" je veux qui repete un autre truc
Merci :)
Répondre
#4
Up [Image: http://www.playthedownload.com/images/smilies/hap.gif]
Répondre
#5
Pourquoi "octo" ? :v
Répondre
#6
okep faut que je change
Code :
bind pub - $pstrigger call_talk proc pretalk { target channel } { global pschan psinchan pstrigger if { $psinchan == "1" && $pschan == $channel } { talk $target $channel } if { $psinchan == "2" } { talk $target $channel } if { $psinchan == "1" && $pschan != $channel } { putlog "J'ai détecté un $pstrigger dans $channel mais je ne suis pas configuré pour y envoyer un message." } } proc talk { nick chan } { global pschan pstrigger psanswer psmaniere if { $psmaniere == "notice" } { putserv "notice $nick :$psanswer" } if { $psmaniere == "privmsg" } { putserv "privmsg $nick :$psanswer"} if { $psmaniere == "chan" } { putserv "privmsg $chan :$nick : $psanswer" } if { $psmaniere != "notice" && $psmaniere != "privmsg" && $psmaniere != "chan" } { putlog "Erreur: Aucune bonne manière d'envoi n'est configuré." } else { putlog "Parle script: Envoyé à $nick" } } proc call_talk { nick uhost hand chan arg } { pretalk $nick $chan }

Non ?
Répondre
#7
Marche pas ton script :l
Répondre
#8
Vous cherchez un peu à réinventer la roue.
En gros, ce que tu veux, c'est plusieurs mots qui fassent réagir l'eggdrop, et qu'à chaque mot il y ait une réponse particulière ?
C'est exactement ce que fait Jokes.tcl, il suffit donc de l'adapter. Sinon, je suis à peu près certain qu'il existe des tcls du genre "badwords".
Présent sur le Tchat francophone
Répondre
#9
salut,

voila un petit code que j avais fait pour apprendre à coder à quelqu'un
tcl
namespace eval speak {
	# variable contenant les mots à reconnaitre
	# on pourras utiliser des wildchar * ?
	variable bonjour {salut bonjour slt coucou hello s*l*t}
	# variable contenant les réponses
	# on utilise %n pour pouvoir réécrire le pseudo plus tard
	variable reponse {"coucou %n comment ca va?" "bonjour %n" "salut %n" "wesh gros" "bienvenue %n"}
}
 
bind pubm - * speak::bonjour
 
proc speak::bonjour {nick host hand chan text} {
 
	# on déclare les variable bonjour et réponse
	variable bonjour
	variable reponse

	# 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
	if {[lsearch $bonjour $text] != -1} {
 
		# on remplace %n par le pseudo
		set rep [string map [list %n $nick] $reponse]

		# on choisi une réponse aléatoire
		set index [rand [llength $rep]]
		set rep [lindex $rep $index]

		# on envoi la réponse choisie
		putserv "PRIVMSG $chan :$rep"

	# on ferme les \} qu on a ouvert plus haut
	}
}


C'est en reconnaissant ses erreurs que l'on progresse
Répondre
#10
Merci :D
Répondre
#11
Un petit up, tu peux utiliser une liste..

Code :
set mots { "fuck" "merde" "encul" } bind pubm * msg:pub proc msg:pub {nick uhost handle chan}{ set text [lindex $arg 0] if {[string match *$mots* $text]=""} { putserv "NOTICE $nick :Ce mot à été blacklisté." } else { return 0 } }
Chris© Unlimited based..
Répondre
#12
djdu32 a écrit :Un petit up, tu peux utiliser une liste..

Code :
set mots { "fuck" "merde" "encul" } bind pubm * msg:pub proc msg:pub {nick uhost handle chan}{ set text [lindex $arg 0] if {[string match *$mots* $text]=""} { putserv "NOTICE $nick :Ce mot à été blacklisté." } else { return 0 } }
7 erreurs sur 12 linges :x c'est pas mal
C'est en reconnaissant ses erreurs que l'on progresse
Répondre
#13
C'est en reconnaissant ses erreurs que l'on progresse djkenny :p
Répondre
#14
j vois pas trop l intérêt de poster du code remplis de bugs comme ca
ni celui de poster pour coller bêtement ma signature ;)
C'est en reconnaissant ses erreurs que l'on progresse
Répondre
#15
Depuis le temps que je ne code plus,
L'aide est un besoin, pas obligé d'être sans fautes.

Donc tes commentaire je m'en passerai :)
Chris© Unlimited based..
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles Le forum pour passer le temps