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 script assign
#1
bonsoir a tous

je viens demandé un peu d'aide car j'ai realisé un petit bout de code en tcl mai ce dernier ne fonctionne pas tout a fait comme je le voudrais

quand je tape !unassign #salon sur le salon #test pour quitter un salon ou le bot est aussi connecter ben celui ci part du salon ou je tape la commande au lieu de part sur le salon que j'ai specifier.

voici le code :


Code:
set nom_robot "***"
set salon_robot "#test"
set password_robot "*****"
set owner "monpseudo"


#########################
## Liste des commandes ##
#########################

#Ajout/suppression d'un salon pour le robot
bind pub - !unassign unassign
proc unassign {nick host hand chan text} {
    global botnick unassign owner
        foreach pseudo $owner {
if {[validchan $chan]}
        channel remove $chan
        set chan [join [lrange [split $text] 0 0]]
        putquick "NOTICE $owner :Je suis bien partie de $chan"
        }
}

bind pub - !assign assign
proc assign {nick host hand chan text} {
    global botnick assign owner
    foreach pseudo $owner {
        set chan [join [lrange [split $text] 0 0]]
        channel add $chan
        putquick "NOTICE $owner : $botnick a bien été atribué au salon $chan "
        }
}

Cordialement
#2
Tu as inversé deux lignes, tu fais d'abord un channel remove $chan, avec $chan qui est le canal où la commande a été tapée, et ensuite tu affectes à $chan l'argument de la commande.

Tu devrais utiliser des variables distinctes pour mieux voir l'erreur:

tcl
set nom_robot "***"
set salon_robot "#test"
set password_robot "*****"
set owner "monpseudo"
 
 
#########################
## Liste des commandes ##
#########################
 
#Ajout/suppression d'un salon pour le robot
bind pub - !unassign unassign
proc unassign {nick host hand chan text} {
   global botnick unassign owner
   # on crée $cleave qui est le canal à quitter
   set cleave [join [lrange [split $text] 0 0]]
   foreach pseudo $owner {
      if {[validchan $cleave]}
        channel remove $cleave
        putquick "NOTICE $owner :Je suis bien partie de $cleave"
     }
}
 
bind pub - !assign assign
proc assign {nick host hand chan text} {
    global botnick assign owner
   # on crée $cjoin qui est le canal à rejoindre
    set cleave [join [lrange [split $text] 0 0]]
    foreach pseudo $owner {
        channel add $cleave
        putquick "NOTICE $owner : $botnick a bien été atribué au salon $cleave"
        }
}


Et il y a une autre erreur de logique dans ton script: tu boucles sur les owners pour les prévenir, ok, mais tu fais le channel add/remove dans cette boucle. Donc tu le fais autant de fois qu'il y a un owner ?

Voici ce que je ferai plutôt:

tcl
set nom_robot "***"
set salon_robot "#test"
set password_robot "*****"
set owner "monpseudo"
 
 
#########################
## Liste des commandes ##
#########################
 
#Ajout/suppression d'un salon pour le robot
bind pub - !unassign unassign
proc unassign {nick host hand chan text} {
   global botnick unassign owner
   # on crée $cleave qui est le canal à quitter
   set cleave [join [lrange [split $text] 0 0]]
   if {[validchan $cleave]} { 
      # le canal cible est valide, on le retire
      channel remove $cleave
      foreach pseudo $owner {
         putquick "NOTICE $pseudo:Je suis bien partie de $cleave"
      }
   } else {
      putserv "NOTICE $nick :Je ne connais pas le canal $cleave"
   }
}
 
bind pub - !assign assign
proc assign {nick host hand chan text} {
    global botnick assign owner
   # on crée $cjoin qui est le canal à rejoindre
    set cleave [join [lrange [split $text] 0 0]]
    channel add $cleave
    foreach pseudo $owner {
        putquick "NOTICE $pseudo: $botnick a bien été atribué au salon $cleave"
     }
}

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
merci de ta reponse CraZyCat je vai regarder de plus pres tout ce que tu m'as dit :)
#4
CrazyCat pourrait mettre en resolu le sujet s'il te plait

merci de ton aide :)


Possibly Related Threads…
Thread Author Replies Views Last Post
  aide pour un script svp s2drk 3 5,086 11/08/2014, 23:23
Last Post: CrazyCat
  aide pour le script Nostromo1st 13 8,268 16/09/2013, 16:24
Last Post: Nostromo1st
  [Aide] Script de "réponse" Prototype 3 5,165 01/05/2013, 23:31
Last Post: Prototype
  Aide pour faire un script TCL Ahriman 6 6,358 01/07/2012, 00:13
Last Post: Ahriman
  aide création script tcl webradio et divers cecile155 12 8,071 29/12/2010, 17:11
Last Post: CrazyCat
  Aide pour un script... simple ? akya 8 6,289 15/07/2010, 22:57
Last Post: CrazyCat
  Aide pour modifier un script de quote t1bz 12 8,000 05/06/2010, 12:16
Last Post: t1bz
  Aide - SVP - sur ce script Behemoth 7 5,692 11/04/2010, 03:19
Last Post: Marc
  Assign d'un egg via la conf sans le assign.tcl Meribre 8 4,612 28/03/2010, 20:07
Last Post: Meribre
  demande aide script tcl Cyril 3 5,314 07/03/2009, 15:31
Last Post: Cyril

Forum Jump:


Users browsing this thread: 1 Guest(s)