Bonjour,
sur le forum recherche "megahal" c'est un I.A qui répond à son pseudo et au phrases lorsqu'on parle.
Bien sur il à un apprentissage pour apprendre tout cela mais essaye le peut-être que ceci te conviendra
Bonjour alias_angelius,
Merci pour le tuto
j'avais déja vue cette source je n'est pas su le faire fonctionné lol je pense surtout que je ne suis pas arrivé a l'installer correctement ou a le manipulé,
Voila pourquoi je demande un code simple car j'ai aussi trouvé parlescript.tcl
seule souci c'est que je ne trouve pas comment lui mettre plusieurs mots ou phrase et comme le faire aller cherché dans des fichier txt.
Pour le code ci-dessous tu dit un mot il répond à la phrase que tu lui a dit mais si tu multiplie la variable bah la y a des erreurs AFfff
Code :
# Le mot auquel le bot va réagir:
set pstrigger "Bonjour $me"
set pstrigger "bonne nuit $me"
# Ce que le bot va répondre
# (vous pouvez y mettre de la couleur)
set psanswer "coucou $nick"
set psanswer "Merci $nick à toi aussi repose toi bien"
# Parle-Script par Pontiac6000
#
# Ce script sert à faire parler votre bot automatiquement
# grâce à un mot (trigger).
#
# Il est configurable, voir la section CONFIGURATION.
#
# Voici à quoi il peut servir:
# Quand un user dit : !aide
# Le bot va répondre : Désolé, mais le canal d'aide est #services
#
# Comme je le dis, ceci est un exemple. Les triggers sont
# changeables et les réponses aussi. Vous aurez aussi la
# possibilité de décider si le bot va répondre en Notice,
# Privé ou sur le chan.
#
# Ce bot peut servir aussi à la publicité, comme faire de
# la pub sur Undernet.
# Ex: Quand quelqu'un dit @find blablabla sur un chan,
# le bot réagit à @find
# et il peut répondre: "Allo, je me nomme Isabelle, etc."
# de la manière que vous aller préciser ci-dessous.
#
# Faites-en bon usage!
# 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 call_talk { nick uhost hand chan arg } { pretalk $nick $chan }
putlog "Parle-Script par Pontiac6000 chargé."
###################################################
################## Fin du script ##################
###################################################
alias_angelius a écrit :Bonjour,
sur le forum recherche "megahal" c'est un I.A qui répond à son pseudo et au phrases lorsqu'on parle.
Bien sur il à un apprentissage pour apprendre tout cela mais essaye le peut-être que ceci te conviendra
Par curiosité pourrait-tu mettre le script dans ton bot essaye le et dit moi si en PL de ton bot tu as une erreur avec le script parlemoi...
Et si tu as une erreur tape ceci ensuite : .set errorInfo
Car je viens de voir une chose dedans qui pour moi n'es pas vraiment très clair et je pense que c'est du à ça que sa fonctionne pas.
Bonjour alias_angelius,
Merci beaucoup de ton aide
J'ai taper se que tu ma dit sous putty et en ctcp chat.
Je ne voie aucune erreur a par que sa ne fonctionne pas :/
alias_angelius a écrit :Par curiosité pourrait-tu mettre le script dans ton bot essaye le et dit moi si en PL de ton bot tu as une erreur avec le script parlemoi...
Et si tu as une erreur tape ceci ensuite : .set errorInfo
Car je viens de voir une chose dedans qui pour moi n'es pas vraiment très clair et je pense que c'est du à ça que sa fonctionne pas.
Donc j'ai testé ton code et oui en effet il ne fonctionne pas.
Alors par curiosité j'ai cherché sur le forum et le code que tu à mis dans le post et sur un autre post et un membre du forum "djkenny" avait donné un exemple de code tcl sous forme de namespace donc autant utilise ceci car il et expliquer et tout.
Donc je vais te c/c le code que djkenny avait fait :
tcl
namespaceeval 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 tardvariable reponse {"coucou %n comment ca va?""bonjour %n""salut %n""wesh gros""bienvenue %n"}}
bind pubm - * speak::bonjourproc speak::bonjour{nick host hand chan text}{
# on déclare les variable bonjour et réponsevariable bonjour
variable reponse
# on debug le texte et on met tout en minusculesset text [stripcodes abcru $text]set text [string tolower $text]
# on test si on trouve le texte dans la variable bonjourif{[lsearch$bonjour$text]!= -1}{
# on remplace %n par le pseudoset rep [string map [list%n $nick]$reponse]
# on choisi une réponse aléatoireset 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}}
Bonjour alias_angelius,
Cool merci pour cette source je vais la testé :p
Juste un truc que je pense qu'il va y avoir des erreur si je mais plusieur variable non ?
je connais pas le tcl mais en se moment je regarde pas mal de tuto malgré que j'ai du mal a comprendre le tcl et plus dur que le mirc lol
exemple :
Code :
namespace eval speak {
# variable contenant les mots à reconnaitre
# on pourras utiliser des wildchar * ?
variable bonjour {salut bonjour slt coucou hello s*l*t}
variable nuit {Bonsoir 'Bonne nuit' 'a demain'}
# 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} {
proc speak::nuit {nick host hand chan text} {
# on déclare les variable bonjour et réponse
variable bonjour
variable nuit
variable reponse
alias_angelius a écrit :Salut,
Donc j'ai testé ton code et oui en effet il ne fonctionne pas.
Alors par curiosité j'ai cherché sur le forum et le code que tu à mis dans le post et sur un autre post et un membre du forum "djkenny" avait donné un exemple de code tcl sous forme de namespace donc autant utilise ceci car il et expliquer et tout.
Donc je vais te c/c le code que djkenny avait fait :
tcl
namespaceeval 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 tardvariable reponse {"coucou %n comment ca va?""bonjour %n""salut %n""wesh gros""bienvenue %n"}}
bind pubm - * speak::bonjourproc speak::bonjour{nick host hand chan text}{
# on déclare les variable bonjour et réponsevariable bonjour
variable reponse
# on debug le texte et on met tout en minusculesset text [stripcodes abcru $text]set text [string tolower $text]
# on test si on trouve le texte dans la variable bonjourif{[lsearch$bonjour$text]!= -1}{
# on remplace %n par le pseudoset rep [string map [list%n $nick]$reponse]
# on choisi une réponse aléatoireset 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}}
Oui en effet donc faudrait appeler le namespace/procedure autrement car sa risque de faire conflit.
Étant donner qu'il utilisera deux namespace du même nom donc ça ne va pas trop le faire