Bonjour je remets un petit code, voila j'aimerais que l'eggdrop detecte les quotes des gens qu'il l'ajoute dans un fichier quote.txt ( si possible avec les meme couleurs que ceux de l'user qui aura mis sa cote.
Et ensuite que le bot dise une quote au hasard quand quelqu'un tape
!lire ou bien si possible dise une quote au hasard toutes les 10 minutes. Voici un morceau du code que j'ai essayer de faire, il ajoute bien les quotes dans le fichier voulu mais quand je tape !lire il me marque sur le salon toutes les quotes en fond noir ecriture verte.
Et j'aimerai une astuce pour qu'une quote soit sortie au hasard toutes les 10 minutes.
tcl
#nom du fichier texte à lire set fname "scripts/quote.txt"
bind pub - !quote pub:!quote
proc pub:!quote { nick host hand chan text }{global fname
set f [open"$fname""a"]puts$f"$text"close$f}
bind pub - !lire pub:!lire
proc pub:!lire { nick uhost hand chan args }{global fname
set fp [open$fname"r"]set fc -1while{![eof$fp]}{set data [gets$fp]incr fc
if{$data!= ""}{
putserv "PRIVMSG $chan :4,1#$fc - $data"}
unset data
}close$fp}
Bin ca a l'air interressant pour les 3 proposé, mais dans l'ordre j'aimerais donc que :
TOUT les users si il tapent !quote blablabla ca ajoute la quote
Et une possibilité que le bot sorte une des quotes au hasard toutes les 10 minutes donc dans le cas là qu'il lise une quote dans le fichier ou seront stocké les quotes
Et si possible que les quote soit enregistrés avec les memes couleurs d'origine
Est ce que cela est possible sur un des 3 proposé ?
Pour les 2 autres je ne sais pas, mais Public Quotes System fait exactement ce que tu veux, sauf sortir aléatoirement une quote toutes les 10mn (c'est une fonctionnalité qu'on m'a déjà demandé, je l'ajouterai dans une prochaine version).
Bon j'ai testé un petit code qui donc est censé quand quelqu'un tape !quote, ca enregistre les quotes dans un fichier nommé quote.txt
et le script quand il detecte le mot quote il devrais aller dans le fichier de stockae et sortir une quote au hasard.
Voici le tcl
tcl
#nom du fichier texte à lire set fname "scripts/quote.txt"
bind pub - !quote pub:!quote
proc pub:!quote { nick host hand chan text }{global fname
set f [open"$fname""a"]puts$f"Quote ajouté par $nick [clock format [clock seconds] -format {le %A %d %B %Y } ] ==> $text"close$f}proc fun:pub:quote {nick uhost hand channel arg}{global fun quote botnick
if![matchattr $nick$fun(ignflags)$channel]{if{[fun:flood $nick$uhost]}{return0}}if{(([lsearch -exact [string tolower $quote(chans)][string tolower $channel]]!= -1) || ($quote(chans) == "*"))&&(![matchattr $hand b])&&($nick!= $botnick)}{
putserv "PRIVMSG $channel :[lindex $quote(msgs) [rand [llength $quote(msgs) ]]]"return1}}
bind pubm -|- *quote* fun:pub:quote
# Channels où le bot répondra :set quote(chans)"*"
Seulement j'ai un soucis ca enregistre bien les quotes dans le fichier voulu, mais quand il doit lire une quote au hasard j'ai cette erreure "Tcl error [fun:pub:quote]: can't read "fname": no such variable"
#nom du fichier texte à lire set fname "scripts/quote.txt"
bind pub - !quote pub:!quote
proc pub:!quote { nick host hand chan text }{global fname
set f [open"$::fname""a"]puts$f"Quote ajouté par $nick [clock format [clock seconds] -format {le %A %d %B %Y } ] ==> $text"close$f}proc fun:pub:quote {nick uhost hand channel arg}{global fun quote botnick
if![matchattr $nick$fun(ignflags)$channel]{if{[fun:flood $nick$uhost]}{return0}}if{(([lsearch -exact [string tolower $quote(chans)][string tolower $channel]]!= -1) || ($quote(chans) == "*"))&&(![matchattr $hand b])&&($nick!= $botnick)}{
putserv "PRIVMSG $channel :[lindex $quote(msgs) [rand [llength $quote(msgs) ]]]"return1}}
bind pubm -|- *quote* fun:pub:quote
# Channels où le bot répondra :set quote(chans)"*"
# Fichier qu'ouvriras le bot pour lire les quotesset quote(msgs)"[open "$fname" "a"]"
il ajoute bien les quotes dans "scripts/quote.txt" mais quand il detecte le mot quote il ne donne pas une quote au hasard mais il ecris sur le salon file9 donc je pense qu'il n'arrive pas à aller chercher une quote dans le dossier "scripts/quote.tcl"
Bon vu que je ne trouve pas comment faire suite à mon probleme
je vais surement essayer de regarder les quoteur de Dav34 et MenzAgitat et voir si je peux modifier quelque chose dedans qui pourrais correspondre à ma recherche.