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


Liste.tcl
#1
Bonjour,

J'ai un code qui me permet d'ajouter un membre du staff dans une base de donnée. Les commandes fonctionnes parfaitement.

J'ai juste un souci au niveau de la commande !liststaff

Voila le code:

tcl
set base "Liste.txt";
 
bind pub - "!helplist" staff:help
proc staff:help {nick uhost handle chan text} {
    putserv "NOTICE $nick :\00312Debut de l'aide de la liste du staff"
    putserv "NOTICE $nick :\0034"
    putserv "NOTICE $nick :\0034!addstaff <Pseudo>\00312 Pour ajouter un nouveau membre du staff à la liste"
    putserv "NOTICE $nick :\0034!liststaff\00312 Pour voir tout les membres du staff"
    putserv "NOTICE $nick :\0034!delstaff <numero>\00312 Pour suprimer un membre du staff de la list"
    putserv "NOTICE $nick :\0034"
    putserv "NOTICE $nick :\00312Fin de l'aide de la liste du staff"
    putserv "PRIVMSG #Control :\00312List Help : \0034$nick"
}
 
bind pub - "!addstaff" staff:sent
proc staff:sent {nick uhost handle chan text} {
    set fp [open $::base a]
    puts $fp "$nick !seen $text"
    close $fp
    putserv "NOTICE $nick :\00312Le membre du staff à bien été ajouté."
    putserv "PRIVMSG #Control :\00312Add Staff : \0034$nick"
}
 
bind pub - "!liststaff" staff:list
proc staff:list {nick uhost handle chan text} {
   set fp [open $::base r]
   set data [read -nonewline $fp]
   close $fp
   foreach templine [split $data "\n"] {
      set line [split $templine]
      putserv "PRIVMSG $chan :$line"
      putserv "PRIVMSG #Control :\00312Staff list : \0034$nick"
   }
}
 
bind pub - "!delstaff" staff:del
proc staff:del {nick uhost handle chan args} {
    if {[lindex $args 0] eq ""} {
        return 0
    } else  {
        set nb [lindex $args 0]
    }
    set fp [open $::base r]
    set cpt 0
    set data [read -nonewline $fp]
    close $fp
    set fp [open $::base w]
    foreach templine [split $data "\n"] {
        incr cpt
        if {$cpt != $nb} {
            puts $fp $templine
        }
    }
    close $fp
    putserv "NOTICE $nick :\00312Le membre du staff as été suprimé de la liste"
    putserv "PRIVMSG #Control :\00312Del staff : \0034$nick"
}

Donc mon problème est que quand je tape !liststaff cela me renvoi ça :

Code:
[08:53:46] ‹Alucard`68› !liststaff
[08:53:48] ‹@Jessica`68› Alucard`68 !seen Jessica`68
[08:53:49] ‹@Jessica`68› Alucard`68 !seen Alucard`68
[08:53:50] ‹@Jessica`68› Alucard`68 !seen Alberta
Je souhaiterai que sa me renvoi juste le !seen pseudo sans mon pseudo devant comme ça :

Code:
[08:53:46] ‹Alucard`68› !liststaff
[08:53:48] ‹@Jessica`68› !seen Jessica`68
[08:53:49] ‹@Jessica`68› !seen Alucard`68
[08:53:50] ‹@Jessica`68› !seen Alberta
Mais la je sèche complètement, je ne vois pas comment faire.
Quelqu'un sais comment faire ?

Merci d'avance pour votre aide future.

Cordialement.
#2
Je vient de trouver mon erreur. J'ai remplacé

tcl
puts $fp "$nick !seen $text"

par

tcl
puts $fp "!seen $text"

Et ça fonctionne comme je le souhaite.

Cordialement.
#3
Bonjour, je revient vers vous j'ai un petit souci je m'explique:

Pour supprimer un pseudo de la Liste.txt je doit faire
Code:
!delstaff 1
!delstaff 3
ce qui n'es pas pratique comment faire pour remplacer le numéro par le pseudo ?
Code:
!delstaff Jess
Je sèche completement je ne voi pas comment faire.

Merci d'avance pour votre future aide.
Cordialement.
#4
C'est pourtant facile:

tcl
bind pub - "!delstaff" staff:del
proc staff:del {nick uhost handle chan args} {
    if {[lindex $args 0] eq ""} {
        return 0
    } else  {
        set vict [lindex $args 0]
    }
    set fp [open $::base r]
    set data [read -nonewline $fp]
    close $fp
    set fp [open $::base w]
    foreach templine [split $data "\n"] {
        if {[string equal -nocase $vict $templine] == 0} {
            puts $fp $templine
        }
    }
    close $fp
    putserv "NOTICE $nick :\00312Le membre $vict a été suprimé de la liste Staff"
    putserv "PRIVMSG #Control :\00312Del staff : \0034$nick"
}

Zeolia - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Forum Jump:


Users browsing this thread: 1 Guest(s)