Fiche
#4
Oui, je t'ai juste dit que cette ligne ne servait à rien. La partie importante, c'est celle en gras: la plupart des return 0 qui sont dans ton script font sortir des procédures au moment inopportun.
De plus tu as une procédure contenue dans une autre.

Voici le code corrigé (vite fait, pas testé):
tcl
##############################
####    Fiche AnimLive    ####
##############################

##########################
####       Binds      ####
##########################
 
bind pub *|* !listanim show_anims
bind pub *|* !delanim del_anim
bind pub *|* !addanim add_anim

###########
# addanim #
###########
 
proc add_anim { nick host hand channel arg } {
    global  vhostniv2 add_anim
    global add_anim salonstaff
    foreach salonst $salonstaff {
        if {[string equal -nocase $salonst $channel]} {
            foreach vhost $vhostniv2 {
                if [string match -nocase $vhost $host]  {
                    if {$arg == ""} {
                        putquick "NOTICE $nick :\00312- \0031Syntax \0036!addanim pseudo \00312-"
                        return 0
                    }
                    putquick "cs access #radio add [lindex $arg 0 end] 4"
                    putquick "cs access #radio+ add [lindex $arg 0 end] 3"
                    putquick "hs set [lindex $arg 0 end] StaffR@AnimLive.***.org"
                    putquick "bs say #radio+ !addnews \00312Bienvenu(e) et félicitation à [lindex $arg 0 end] \0036 qui vient de passer AnimLive. \00312 Claap Claaap :P"
                    putquick "NOTICE [lindex $arg 0 end] : \00306Félicitation\00312 [lindex $arg 0 end] \0036, tu viens de passer AnimLive. Merci de taper cette commande pour activer ta Vhost: \00312/hs on ."
                    putquick "NOTICE $nick \00303OK. \00312 l'accèss \00304Halfop \00312est bien ajouté pour\0036 [lindex $arg 0 end] \00312sur #Radio et #Radio+"
                    putquick "sajoin [lindex $arg 0 end] #radio,#radio+"
 
                    set user [lindex $arg 0 end]
                    set listanim "./Anims/listanim.txt"
                    if {[file exists $listanim]} {
                        set file [open $listanim "a+"]
                    } else {
                        set file [open $listanim "w+"]
                    }
 
                    puts $file "\00312 $user \00306a été admis dans staff par\00312 $nick \00312Le\00303 [strftime "%d.%m.%Y"]."
                    close $file
                }
            }
        }
    }
}
###########
# delanim #
###########
 
bind pub - !delanim del_anim
proc del_anim { nick host hand channel arg } {
    global  vhostniv2 delanim
    global del_anim salonstaff
    foreach salonst $salonstaff {
        if {[string equal -nocase $salonst $channel]} {
            foreach vhost $vhostniv2 {
                if [string match -nocase $vhost $host]  {
                    if {$arg == ""} {
                        putquick "NOTICE $nick :\00312- \0031Syntax \0036!delanim pseudo \00312-"
                        return 0
                    }
                    putquick "sapart [lindex $arg 0 end] #radio,#radio+"
                    putquick "cs access #radio del [lindex $arg 0 end]"
                    putquick "cs access #radio+ del [lindex $arg 0 end]"
                    putquick "hs del [lindex $arg 0 end]"
                    putquick "bs say #radio+ !addnews \00304Demission:\0031 [lindex $arg 0 end] \00312a decidé de démissionner de son poste d'AnimLive. Merci a lui."
                    putquick "NOTICE [lindex $arg 0 end] : \00312Tu viens de démissioner. Nous te remercions pour tout ce que tu as fait pour witix. Bonne contnuation à toi."
                    putquick "NOTICE $nick \00303OK. \00312L'accès de\00306 [lindex $arg 0 end] \00312a été bien retiré sur #Radio et #Radio+"
 
                    set listanim "./Anims/listanim.txt"
                    set theris [file exists [file join ./ temp_listanim.txt]]
                    if {$theris != 0} {
                        eval "exec rm -f ./temp_post.txt"
                    }
                    set tempfile [open [file join ./ temp_listanim.txt] "w+"]
                    set file [open $listanim "r+"]
                    set ln 1
                    while {[eof $file] == 0} {
                        set line [gets $file]
                        set msg $line
                        set dele 0
                        foreach prm $arg {
                            if {$ln == $prm} {
                                set dele 1
                            }
                        }
                        if {$dele == 0} {
                            if {$msg != ""} {
                                puts $tempfile "$msg"
                            }
                        }
                        set dele 0
                        set ln [expr {$ln} +1]
                    }
                    close $tempfile
                    close $file
                    eval "exec mv -f ./temp_listanim.txt $listanim"
                    return 1
                }
            }
        }
    }
}

############
# listanim #
############
 
proc show_anims { nick host hand channel text } {
    global  show_anims vhostniv2 salonstaff
    foreach salonst $salonstaff {
        if {[string equal -nocase $salonst $channel]} {
            foreach vhost $vhostniv2 {
                if [string match -nocase $vhost $host]  {
                    set listanim "./Anims/listanim.txt"
                    foreach vhost $vhostniv2 {
                        if {[string match -nocase $vhost $host]}  {
                            if {![file exists $listanim]} {
                                putquick "NOTICE $nick :-\00312 Aucun AlimLive n'a été enregistré -"
                                return 0
                            }
                            putquick "NOTICE $nick :-\00312 Début de la liste des AnimLive -"
                            set data [open $listanim "r"]
                            set numlistanim 0
                            while {![eof $data]} {
                                gets $data datalistanim
                                incr numlistanim
                                if { $datalistanim != "" } {
                                    putquick "NOTICE $nick :-\00301 $numlistanim - $datalistanim"
                                }
                            }
                            if {[eof $data]} {
                                putquick "NOTICE $nick :- \00312Fin de la liste des AnimLive -"
                                close $data
                            }
                        }
                    }
                }
            }
        }
    }
}


Répondre


Messages dans ce sujet
Fiche - par Aristide - 21/09/2011, 21:30
RE: Fiche - par CrazyCat - 21/09/2011, 22:25
RE: Fiche - par Aristide - 22/09/2011, 14:51
RE: Fiche - par CrazyCat - 22/09/2011, 15:00

Atteindre :


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