14/03/2014, 10:54
Bonjour,
Je me suis lancé dans la confection d'un tcl pour faire des dédicaces mais hélas je tombe sur un os...
La commande !edi et !deledi fonctionne mais en revanche pour la commande !addedi je me trouve avec une erreur salon sur les 3 salons en question...
Merci d'avance de votre aide.
Je me suis lancé dans la confection d'un tcl pour faire des dédicaces mais hélas je tombe sur un os...
tcl
######################################################################
## ##
## ##
## -Système de dédicace pour webradio "Minut'Radio" ##
## Partenaire de Secretchat.fr - Version 1.0 ##
## ##
## ##
######################################################################
set chans "#staff"
set chansource "#control"
set chanradio "#Radio"
bind pub - "!addedi" add:edi
bind pub - "!deledi" del:msg
bind pub - "!edi" msg:edi
proc add:edi {n ht hd ch a} {
set edi [lrange $a 0 end]
if {$ch == $::chanradio} {
if {$edi == ""} {putserv "notice $n :Syntaxe => !addedi < message >"; return}
if {![file exists "scripts/dedi.dab"]} {set files [open "scripts/dedi.dab" a+]; close $files}
# enregistrement de la dedi #
set num [expr {int(rand() * 37)}]
set files [open "scripts/dedi.dab" a+]
puts $files "$num $n $edi"
close $files
putserv "notice $n :Dedi enregistré et validé"
} else {
putserv "notice $n :Erreur Salon"
}
}
proc del:msg {n ht hd ch a} {
set num [lindex $a 0]
set stop 0
if {$ch == $::chans} {
if {$num == ""} {putserv "notice $n :Syntaxe => !deledi < numéro >"; return}
if {![file exists "scripts/dedi.dab"]} {putserv "notice $n :Aucune dedi actuellement"}
# suppression de la dedi #
catch {open "scripts/dedi.dab" r} liste
while {![eof $liste]} { gets $liste verif; if {![string compare -nocase $num [lindex $verif 0]]} { set stop 1 }; if {[string compare -nocase $num [lindex $verif 0]] && $verif!=""} { lappend salle "$verif" } }
catch {close $liste}
if {$stop == 0} {putserv "notice $n :Numéro Inconnu"; return}
if {[info exists salle]} {
set del [open "scripts/dedi.dab" w+]; foreach delchan $salle { puts $del "$delchan"}; close $del
} else { set del [open "scripts/dedi.dab" w+]; close $del }
putserv "notice $n :La dedi vient d'être supprimer"
} else {
putserv "notice $n :Erreur Salon"
} }
proc msg:edi {n ht hd ch a} {
set stop 0
if {$ch == $::chans} {
putserv "notice $n :13~6~13~6~12 Liste des dedi 13~6~13~6~"
putserv "notice $n : "
if {![file exists "scripts/dedi.dab"]} {putserv "notice $n :12Aucune dedi actuellement"}
# securité anti beug #
catch {open "scripts/dedi.dab" r} secu
while {![eof $secu]} {gets $secu xs; if {[lindex $xs 0] != ""} {
lappend verif "[llength $xs]"
} }; catch {close $secu}
# Calcul nombre de ligne #
if {[info exists verif]} {
if {[llength $verif] > "15"} {set stop 2; putserv "notice $n :4/!\\ Alerte Surcharge /!\\ 14Merci de supprimer des dedi"}
if {[llength $verif] > "20"} {set stop 2; putserv "notice $n :4/!\\ Alerte Surcharge Excessif /!\\ 14Supprimer des dedi Impérativement 4/!\\ Alerte Surcharge Excessif /!\\"}
if {[llength $verif] == "25"} {set stop 5; putserv "notice $n :4/!\\ Alerte Suppression de toutes les dedi /!\\ 14Trop de dedi on été enregistrer : $verif 4/!\\ Alerte Suppression de toutes les dedi /!\\"}
}
# Fin control anti beug #
if {$stop == 5} {exec rm -rf "scripts/dedi.dab"}
if {$stop == 2} {
catch {open "scripts/dedi.dab" r} files
while {![eof $files]} {gets $files x; if {[lindex $x 0] != ""} {
putserv "privmsg $n :6\[\4 [lindex $x 0] 6\]\ 10Mis par :7 [lindex $x 1] 1-12 [lrange $x 2 end]"; set stop 1
} }; catch {close $files}
}
if {$stop == 0} {
catch {open "scripts/dedi.dab" r} files
while {![eof $files]} {gets $files x; if {[lindex $x 0] != ""} {
putserv "notice $n :6\[\4 [lindex $x 0] 6\]\ 10Mis par :7 [lindex $x 1] 1-12 [lrange $x 2 end]"; set stop 1
} } ; catch {close $files}
}
if {$stop == 0} {putserv "notice $n :12Aucune dedi actuellement"}
putserv "notice $n : "
putserv "notice $n :13~6~13~6~12 Fin de la liste des dedi 13~6~13~6~"
} else {
putserv "notice $n :Erreur Salon"
} }
La commande !edi et !deledi fonctionne mais en revanche pour la commande !addedi je me trouve avec une erreur salon sur les 3 salons en question...
Merci d'avance de votre aide.