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


[Résolu] [Aide]Problème avec un tcl
#1
Bonsoir à tous.
je vous explique mon problème : je souhaiterais que mon bot sorte différents liens sur différents salons avec la même commande et là avec mon code ça prend en compte que la dernière commande que doit je faire pour que je puisse utiliser cette même commande partout ?
(je suis débutant)
Je vous remercies d'avance pour vos réponses.


tcl
proc putfast {arg} {
append arg "\n"
putnow $arg -oneline
#putnow 0 [string length $arg] $arg
}
 
bind pub - !stats pub_stats
 
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon1"} {
putfast "NOTICE $nick :Voici les stats du salon #salon1 http://"            
 }
}
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon2"} {
putfast "NOTICE $nick :Voici les stats du salon #salon2 http://"            
 }
}
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon3"} {
putfast "NOTICE $nick :Voici les stats du salon #salon3 http://"            
 }
}
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon4"} {
putfast "NOTICE $nick :Voici les stats du salon #salon4 http://"            
 }
}
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon5"} {
putfast "NOTICE $nick :Voici les stats du salon #salon5 http://"            
 }
}
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon6"} {
putfast "NOTICE $nick :Voici les stats du salon #salon6 http://"            
 }
}
 
proc pub_stats {nick host hand chan args} {
if {$chan == "#salon7"} {
putfast "NOTICE $nick :Voici les stats du salon #salon7 http//"            
 }
}

#2
 
Tu déclares 7 fois la procédure pub_stats. Chaque nouvelle écrase la précédente, ce qui fait que seule la dernière est prise en compte.

Tu ne dois déclarer qu'une seule fois ta procédure et y inclure les différents tests de conditions.


tcl
proc pub_stats {nick host hand chan args} {
  if {$chan == "#salon1"} {
    putfast "NOTICE $nick :Voici les stats du salon #salon1 http://"            
  } elseif {$chan == "#salon2"} {
    putfast "NOTICE $nick :Voici les stats du salon #salon2 http://"
  } elseif {...} {
    ...
  }
}


Petite remarque en passant : putfast est séduisant parce qu'il affiche vite les choses, mais il devrait être évité ou du moins réservé aux cas où l'urgence et la rapidité de réaction priment comme pour assurer la protection d'un chan par exemple.
On pourrait réussir à faire kill ton eggdrop par le serveur pour flood excessif (déclenché par trop de texte envoyé trop rapidement au serveur) juste en abusant avec la commande !stats.
Dans le cas qui t'intéresse, puthelp me paraît bien suffisant car il me semble que les utilisateurs voulant consulter les statistiques doivent pouvoir patienter 1 ou 2 secondes.
N'oublie pas qu'un eggdrop doit pouvoir gérer tout un tas de choses à la fois et que tout faire passer en urgence ne fera qu'engorger les files d'attente et produira probablement un lag important.

Et voici un peu de lecture pour savoir quand choisir telle ou telle commande de sortie : http://wiki.eggdrop.fr/Commandes_de_sortie
 
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#3
Bonjour MenzAgitat.
j'ai fait comme tu ma dit cela fonctionne a merveille , j'ai suivis aussi ton conseille j'ai mis puthelp a la place de putfast pour pas que le bot flood.

Merci beaucoup pour ton aide .

[Problème résolu]
#4
Voici le code finit

tcl
bind pub - !stats pub_stats
proc pub_stats {nick host hand chan args} {
  if {$chan == "#salon1"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon1 http://"            
  } elseif {$chan == "#salon2"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon2 http://"
  } elseif {$chan == "#salon3"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon3 http://"            
  } elseif {$chan == "#salon4"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon4 http://"            
  } elseif {$chan == "#salon5"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon5 http://"            
  } elseif {$chan == "#salon6"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon6 http://"            
  } elseif {$chan == "#salon7"} {
    puthelp "NOTICE $nick :Voici les stats du salon #salon7 http://"  
  }
}
 
putlog "Liens-stats.tcl bien chargé"

#5
Juste une petite astuce: plutôt que d'utiliser une série de elseif, Switch est bien pratique.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#6
Je suis entièrement d'accord CrazyCat, mais comme il débute, je me suis dit qu'il valait mieux commencer par les bases et corriger son code sans tout chambouler afin qu'il comprenne. Un dict ou un array auraient pu faire l'affaire aussi afin d'associer les urls aux chans, vu que le code est identique à chaque fois.

Rome n'a pas été détruite en un jour.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#7
Tout à fait d'accord, c'est pour ça que je ne fais que conseiller d'aller jeter un oeil sur la page wiki.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP


Possibly Related Threads…
Thread Author Replies Views Last Post
  Problème avec Les poupées linkeuses zappeur78 22 5,414 31/03/2022, 16:52
Last Post: CrazyCat
  [Résolu] Problème avec le script autolog T3nS 2 3,196 06/12/2017, 16:08
Last Post: T3nS
  [Bug] Problème avec le script zurl.tcl T3nS 0 3,035 03/08/2017, 19:40
Last Post: T3nS
  [Résolu] Problème d'accents avec script TCL maison CC30 3 4,681 25/08/2016, 13:55
Last Post: Alucard`68
  [Script] Probleme Resolu ! BaGrift 0 2,711 29/12/2015, 15:39
Last Post: BaGrift
  [Résolu] Problème d'encodage avec rss-synd Naruto 24 13,543 18/05/2014, 21:16
Last Post: CrazyCat
  Problème avec Clams SaiTek 7 5,817 06/09/2013, 09:02
Last Post: SaiTek
  Problème d'accent avec shoutcast.tcl Naruto 8 6,672 05/08/2013, 15:17
Last Post: Naruto
  probleme avec mon script Nostromo1st 7 6,008 05/06/2013, 09:51
Last Post: Nostromo1st
  probleme avec regsub Nostromo1st 2 4,427 03/06/2013, 10:30
Last Post: Nostromo1st

Forum Jump:


Users browsing this thread: 1 Guest(s)