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 Smile
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 Avertir
#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 Smile
Répondre Avertir
#4
Up [Image: http://www.playthedownload.com/images/smilies/hap.gif]
Répondre Avertir
#5
Pourquoi "octo" ? :v
Répondre Avertir
#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 Avertir
#7
Marche pas ton script :l
Répondre Avertir
#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".
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 Wink
Répondre Avertir
#10
Merci Very Happy
Répondre Avertir
#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..
www.zumeo.fr | irc://irc.zumeo.fr:6667
Répondre Avertir
#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 Mad c'est pas mal
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#13
C'est en reconnaissant ses erreurs que l'on progresse djkenny :p
Répondre Avertir
#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 Wink
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#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 Smile
Chris© Unlimited based..
www.zumeo.fr | irc://irc.zumeo.fr:6667
Répondre Avertir


Atteindre :


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