[Résolu] aide script assign
#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"
     }
}


Répondre


Messages dans ce sujet
aide script assign - par bouba89 - 02/11/2013, 21:50
RE: aide script assign - par CrazyCat - 04/11/2013, 10:25
RE: aide script assign - par bouba89 - 06/11/2013, 18:55
RE: aide script assign - par bouba89 - 11/11/2013, 16:00

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles