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.
Répondre Avertir
#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.
Répondre Avertir
#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.
Répondre Avertir
#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"
}


Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté