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
14/03/2022, 20:17 (This post was last modified: 14/03/2022, 20:19 by LTEF.)
tcl
[/b][19:16:35] Tcl errorinfile'eggdrop.conf':
[19:16:35] unmatched open quote inlistwhile executing
"llength $::pub_m"(procedure "pub_s" line 4)
invoked from within
"pub_s"(file"scripts/publicite.tcl" line 75)
invoked from within
"source scripts/publicite.tcl"(file"eggdrop.conf" line 272)[19:16:35]* FICHIER DE CONFIGURATION NON CHARGE (INTROUVABLE OU ERREUR)
If there's no errors above, your bot should show up on IRC soon.
Check http://windrop.sourceforge.net/windropfaq.html for help with any errors or
if bot doesn't show up on IRC.
[b]
14/03/2022, 20:38 (This post was last modified: 14/03/2022, 20:44 by Amand.)
Bonsoir,
sans le script tcl que tu utilises, ça va être difficile de faire un diagnostic.
Concernant l'erreur sur ta quote , après une recherche google :
Tu essayes d'utiliser des chaînes sous forme de listes à un ou plusieurs endroits. L'une des choses importantes à retenir à propos de tcl est que toutes les listes peuvent être des chaînes, mais toutes les chaînes ne peuvent pas être des listes.
Il ne faut pas mélanger les deux sauf si vous avez une raison explicite de le faire.
Avec ton code, on pourra mieux voir le pourquoi du comment.
14/03/2022, 21:07 (This post was last modified: 14/03/2022, 21:15 by LTEF.)
voici le sricpt
tcl
############################################################## ____ _ _ _ _ _ _ _ ## | _ \ _ _| |__ | (_) ___(_) |_ ___ | |_ ___| | ## | |_) | | | | '_ \| | |/ __| | __/ _ \ | __/ __| | ## | __/| |_| | |_) | | | (__| | || __/ _ | || (__| | ## |_| \__,_|_.__/|_|_|\___|_|\__\___| (_) \__\___|_| # ############################################################################### Configuration ################### -> Voulez vous ou non activer la publicité ? (1 = OUI | 0 = NON)set pub_a 1# -> Tout les combiens de minutes voulez vous que la publicité soit envoyé ?set pub_d 10# -> Liste des chans dans lesquels il faut faire de la pub (mettez * pour faire de la pub dans tout les salons)#> Vous pouvez mettre autant de salons que vous voulezset pub_c " #pulsradiotrance "# -> Message à envoyer sur tout les salons#> Un seul méssage sera tirer au sort et sera envoyer sur tout les salons#> Vous pouvez mettre qu'un seul méssage et se sera dans tout les cas lui qui sera tirer au sort.set pub_m {"'12,12puls0,0radio4,4trance 11,1Bienvenue Sur le salon 4,1#pulsradiotrance 11,1Chez nous , 11,1vous pouvez entrer , prendre un café , papoter , philosopher et danser , ecoutez notre radio a cette adresse :4,1 http://pulsradiotrance.radio12345.com/ 11,1ou 4,1 http://78.129.139.48:8389/ La Team 4,1 #Digital-Impulse-Radio'"" Le cinéma c'est l'art de bien faire les choses Bienvenues sur salon #netflix ?? "" 12nous demandons à tous de respecter 1.4les règles. 2Le non-respect des règles établies pourra être sanctionné par un 1.4Kick voire un 1.4Ban. 2Merci de votre compréhension.4nous signalons que ceux qui ne respectent pas 4les règles iront faire un tour ailleurs,2c'est à dire dans 4les couloirs du t'Chat. Merci. Bon t'Chat."}#################### Debut du script ##################### Vérificationsif{![info exist pub_c]}{set pub_c "*"}if{![info exist pub_d]}{set pub_d 1}if{![info exist pub_m]}{set pub_m "Vous devez définir un méssage qui sera envoyé toute les $pub_d minutes."}# Envoie de la publicitéproc pub_s {}{# On tire aléatoirement la phrase qui va être diteset msg_s [lindex$::pub_m[expr{int(rand()*[llength$::pub_m])}]]if{$::pub_c eq "*"}{foreach a [channels]{puthelp"PRIVMSG $a :$msg_s"}}else{foreach a $::pub_c{if{[string index $a0] ne "#"}{continue}if{![botonchan$a]}{continue}puthelp"PRIVMSG $a :$msg_s"}}timer$::pub_d pub_s
}# Initialisationif{$pub_a}{
pub_s
}putlog"Publicite.tcl by DaV34"
script original sans modification
tcl
############################################################## ____ _ _ _ _ _ _ _ ## | _ \ _ _| |__ | (_) ___(_) |_ ___ | |_ ___| | ## | |_) | | | | '_ \| | |/ __| | __/ _ \ | __/ __| | ## | __/| |_| | |_) | | | (__| | || __/ _ | || (__| | ## |_| \__,_|_.__/|_|_|\___|_|\__\___| (_) \__\___|_| # ############################################################################### Configuration ################### -> Voulez vous ou non activer la publicité ? (1 = OUI | 0 = NON)set pub_a 1# -> Tout les combiens de minutes voulez vous que la publicité soit envoyé ?set pub_d 2# -> Liste des chans dans lesquels il faut faire de la pub (mettez * pour faire de la pub dans tout les salons)#> Vous pouvez mettre autant de salons que vous voulezset pub_c "#salon1 #salon2 #salon3 #salon4 #salon5 #salon6"# -> Message à envoyer sur tout les salons#> Un seul méssage sera tirer au sort et sera envoyer sur tout les salons#> Vous pouvez mettre qu'un seul méssage et se sera dans tout les cas lui qui sera tirer au sort.set pub_m {"Message .... 1""Message .... 2""Message .... 3""Message .... 4"}#################### Debut du script ##################### Vérificationsif{![info exist pub_c]}{set pub_c "*"}if{![info exist pub_d]}{set pub_d 1}if{![info exist pub_m]}{set pub_m "Vous devez définir un méssage qui sera envoyé toute les $pub_d minutes."}# Envoie de la publicitéproc pub_s {}{# On tire aléatoirement la phrase qui va être diteset msg_s [lindex$::pub_m[expr{int(rand()*[llength$::pub_m])}]]if{$::pub_c eq "*"}{foreach a [channels]{puthelp"PRIVMSG $a :$msg_s"}}else{foreach a $::pub_c{if{[string index $a0] ne "#"}{continue}if{![botonchan$a]}{continue}puthelp"PRIVMSG $a :$msg_s"}}timer$::pub_d pub_s
}# Initialisationif{$pub_a}{
pub_s
}putlog"Publicite.tcl by DaV34"
####################################################################### Configuration du Script ################################################################################################################ Anti flood sur les commandes du Bot x:y (x=nombre de fois, y=secondes) :set fun(flood)5:10# Ignorer l'utilisateur après son flood (0=non, 1=oui) :set fun(ignore)0# Si oui, combien de temps (en minutes) :set fun(ignoretime)1# Laisser faire les utilisateurs ayant certains flags :set fun(ignflags)"fmnov|fmnov"## Pub ################################################################################################################################ Channels où seront envoyés la Pub :set publicite(chans)"#tonsalon"# Intervalle de temps entre chaque Pub en minutes (0=désactivé) :set publicite(time)120# Editer ici les publicite :set publicite(msgs){"ce que tu veux ici"}###############################################################################################################################################################################################################proc fun:flood:init {}{global fun funflood
set fun(floodnum)[lindex[split$fun(flood) :]0]set fun(floodtime)[lindex[split$fun(flood) :]1]set i [expr$fun(floodnum) - 1]while{$i>= 0}{set funflood($i)0incr i -1}}
fun:flood:init
proc fun:flood {nick uhost}{global fun funflood botnick
if{$fun(floodnum) == 0}{return0}set i [expr$fun(floodnum) - 1]while{$i>= 1}{set funflood($i)$funflood([expr$i - 1])incr i -1}set funflood(0)[unixtime]if{[expr[unixtime] - $funflood([expr$fun(floodnum) - 1])]<= $fun(floodtime)}{if{$fun(ignore)}{newignore[join[maskhost*!*[string trimleft $uhost ~]]]$botnick"Flood"$fun(ignoretime)}return1}{return0}}if{(($publicite(time)!= 0)&&(![string match "*fun:publicite*"[timers]]))}{timer$publicite(time) fun:publicite
}proc fun:publicite {}{global publicite
foreachchannel$publicite(chans){puthelp"PRIVMSG $channel : [lindex $publicite(msgs) [rand [llength $publicite(msgs)]]]"}if{(($publicite(time)!= 0)&&(![string match "*fun:publicite*"[timers]]))}{timer$publicite(time) fun:publicite
}return1}putlog"auto joke sur $publicite(chans) aux $publicite(time) minutes!"
Question bête: le script original fonctionne ?
Tes codes couleurs dans les messages ne peuvent pas fonctionner, tu ajoutes un ´ entre les « de la première pub. C’est voulu ? Tu sais pourquoi tu fais ça ?
(14/03/2022, 21:40)kipof Wrote: Sans trop regarder, en voici un fonctionnel :
tcl
####################################################################### Configuration du Script ################################################################################################################ Anti flood sur les commandes du Bot x:y (x=nombre de fois, y=secondes) :set fun(flood)5:10# Ignorer l'utilisateur après son flood (0=non, 1=oui) :set fun(ignore)0# Si oui, combien de temps (en minutes) :set fun(ignoretime)1# Laisser faire les utilisateurs ayant certains flags :set fun(ignflags)"fmnov|fmnov"## Pub ################################################################################################################################ Channels où seront envoyés la Pub :set publicite(chans)"#tonsalon"# Intervalle de temps entre chaque Pub en minutes (0=désactivé) :set publicite(time)120# Editer ici les publicite :set publicite(msgs){"ce que tu veux ici"}###############################################################################################################################################################################################################proc fun:flood:init {}{global fun funflood
set fun(floodnum)[lindex[split$fun(flood) :]0]set fun(floodtime)[lindex[split$fun(flood) :]1]set i [expr$fun(floodnum) - 1]while{$i>= 0}{set funflood($i)0incr i -1}}
fun:flood:init
proc fun:flood {nick uhost}{global fun funflood botnick
if{$fun(floodnum) == 0}{return0}set i [expr$fun(floodnum) - 1]while{$i>= 1}{set funflood($i)$funflood([expr$i - 1])incr i -1}set funflood(0)[unixtime]if{[expr[unixtime] - $funflood([expr$fun(floodnum) - 1])]<= $fun(floodtime)}{if{$fun(ignore)}{newignore[join[maskhost*!*[string trimleft $uhost ~]]]$botnick"Flood"$fun(ignoretime)}return1}{return0}}if{(($publicite(time)!= 0)&&(![string match "*fun:publicite*"[timers]]))}{timer$publicite(time) fun:publicite
}proc fun:publicite {}{global publicite
foreachchannel$publicite(chans){puthelp"PRIVMSG $channel : [lindex $publicite(msgs) [rand [llength $publicite(msgs)]]]"}if{(($publicite(time)!= 0)&&(![string match "*fun:publicite*"[timers]]))}{timer$publicite(time) fun:publicite
}return1}putlog"auto joke sur $publicite(chans) aux $publicite(time) minutes!"
(14/03/2022, 23:01)BdS Wrote: Et la réponse à la première question ?
c'est pour les code couleur sinon sa ne fonctionne pas les couleurs
Respires un bon coup et mets tes neurones en connexion stp.
Tu postes deux script. Un modifié, l’autre non. Celui non modifié fonctionne-t-il ?
Elle est pas si dure que ça ma question.
Et quand je te parle de quotes ou de codes couleurs, je te dis pas de les enlever … mais de savoir si tu sais ce que tu fais ?
Relis moi 4 fois avant de répondre stp.
Tu dois mal faire les choses car je viens de tester les deux scripts (le modifié et l'original) et il fonctionne. Par contre si tu lances l'eggdrop tu auras un plantage car il essaye d'envoyer directement la pub alors qu'il n'est pas connecté.
Suffit d'ajouter un timer à l'initialisation de la commande pub_s.