Communauté sur les Eggdrops - Community about Eggdrops
nicklist - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: nicklist (/showthread.php?tid=117)

Pages: 1 2


nicklist - caline012 - 04/12/2007

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


RE: nicklist - CrazyCat - 05/12/2007

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


RE: nicklist - caline012 - 05/12/2007

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


RE: nicklist - CrazyCat - 05/12/2007

ç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"




RE: nicklist - caline012 - 05/12/2007

hummmmmmmmmm interessant ca.merci pour ces conseils.enfin un endroit ou on apprend franchement bravo a vous pour ce forum


RE: nicklist - CrazyCat - 05/12/2007

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.


RE: nicklist - caline012 - 05/12/2007

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


RE: nicklist - caline012 - 10/12/2007

et un exemple si n veu citer un pseudo au hasard present sur un salon.style une lotterie fun


RE: nicklist - CrazyCat - 10/12/2007

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).


RE: nicklist - caline012 - 10/12/2007

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


RE: nicklist - CrazyCat - 10/12/2007

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
}




RE: nicklist - caline012 - 11/12/2007

oui c'est sur mais je ne vois pas pourquoi ca ne marche pas encore lol


RE: nicklist - caline012 - 11/12/2007

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


RE: nicklist - CrazyCat - 11/12/2007

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.


RE: nicklist - caline012 - 11/12/2007

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