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


nicklist
#1
voila jaimerai apprendre un peu mieu a coder sur la nicklist des channe.dison que ce soit plu propre que de set tout un tas de variable tout as beau comme je fait sous mirc.quece sa par pas en flood sur 50 pseudo koi mais plutot en une ligne que ca tienne
Away
#2
sujet déplacé car ce n'est pas une F.A.Q.
Pourrais tu reposer ta question dans un français correct et en expliquant un peu mieux tes besoins s'il te plait?

De ce que j'en comprend, tu veux travailler avec chanlist? après, tu as toutes les fonctions de manipulation de listes à ta disposition
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
ce que je veux c'est pouvoir citer toute la nicklist quand jen ai besoin et si possible en ayant le mon de flood possible.donc en une phrase quoi.par exemple un mass +e de toute la nicklist qui afficherai une seule phrase
Away
#4
ça ne marchera pas car le serveur limite de toutes manières le nombre de modes pouvant être appliqués simultanément.
Mais tu peux essayer avec une petite boucle:

tcl
set maxmode 10
set curmode 0
set strmode "+"
set strnick ""
foreach victim [chanlist $chan] {
   incr curmode
   append strmode "e"
   append strnick " $victim"
   if {$curmode == $maxmode} {
      putserv "mode $chan $strmode$strnick"
      set curmode 0
      set strmode "+"
      set strnick ""
   }
}
if {$curmode>0} putserv "mode $chan $strmode$strnick"

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
hummmmmmmmmm interessant ca.merci pour ces conseils.enfin un endroit ou on apprend franchement bravo a vous pour ce forum
Away
#6
Merci :)
Ce petit script peut surement être amélioré en utilisant des listes et les fonctions associées, par exemple en faisant un foreach qui ressorte une liste de X nicks et qui fassent un lappend, mais j'ai préféré que ça reste bien compréhensible.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#7
oui et c'est ca que j aime bien ici.on nous apprend.bon jai du mal a sortir du mirc scripting.le tcl me pssionne donc jessaye de convertir mes codes.c'est un travail qui sera long mais que jaime bien.donc voila un grand merci a vous tout simplement
Away
#8
et un exemple si n veu citer un pseudo au hasard present sur un salon.style une lotterie fun
Away
#9
Jette un oeil à la procédure random_victim sur http://www.eggdrop.fr/Jokes , elle fait ça (en tenant compte d'une liste d'utilisateurs exclus du choix).
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#10
jai fait ca mais c'est pas tres convancant

tcl
bind pub - !destin pub_destin
proc pub_destin { nick uhost handle channel arg } {
global destin1 destin2 destin
set destin1 [lindex $nick 0]
set destin2 [chanlist $chan]
if { $couple1 != "" } {
putserv "privmsg $channel :$destin1 tu est destiner a $destin2"
}
}

j ai pas du tout comrendre je crois
Away
#11
Oui, ça ne peut pas marcher pour plusieurs raisons:
  • Tout d'abord, ça ne sert à rien de passer tes variables en global (d'ailleurs c'est quoi la variabble $destin?)
  • tu met dans $destin1 le premier élément... d'une chaine. $nick n'est pas une liste
  • tu met dans $destin2 une liste
En suivant ce qui est dans le script que je t'avais donné en lien, tu aurais pu faire:

tcl
bind pub - !destin pub_destin
proc pub_destin { nick uhost handle channel arg } {
   # on met dans une liste tous les utilisateurs du canal
   set userlist [chanlist $channel]
   # on supprime l'utilisateur de la liste
   set userlist [lreplace $user_list [lsearch $nick $userlist] [lsearch $nick $userlist]]
   # on supprime l'eggdrop de la liste
   set userlist [lreplace $user_list [lsearch $::botnick $userlist] [lsearch $::botnick $userlist]]
   if {[llength $userlist]>0} {
      # s'il reste des utilisateurs "réels"
      putserv "PRIVMSG $channel :$nick, tu es destiné à [lindex $userlist [rand [llength $userlist]]]"
   } else  {
      # Sinon ...
      putserv "PRIVMSG $channel :$nick, tu joues tout seul!"
   }
   return 0
}

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#12
oui c'est sur mais je ne vois pas pourquoi ca ne marche pas encore lol
Away
#13
je n arrive pas a faire marcher ton code tcl crazycat.jai beau modifier et a chake fois je tape .destin jai rien qui se passe il enumere meme pas mon pseudo
Away
#14
Effectivement, il y avait une erreur que je viens de modifier: des fois j'utilisais user_list et des fois userlist.

Ensuite, la commande est !destin, pas .destin

Et une chose qu'elle est bonne pour le debug, c'est d'aller en PartyLine et de faire .console +d (debug) pour avoir des messages sur les erreurs.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#15
oui excuse moi faute de frappe.mais le hi est que javai rectifier deja user_list mais ca ne fonctionne toujours pas.mais pire je ne vois pa d erreur.la c'est vraiment bizare
Away


Forum Jump:


Users browsing this thread: 1 Guest(s)