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


Droit user unique
#16
D'accord, merci :D
  Répondre
#17
Salut,

Alors je n'es pas pris ton dernier code en exemple.., j'ai adapter un code que j'avais fait ya une époque, juste histoire que tu es une idée en mettant ta partie à toi dedans.
Je ne dit pas ça fonctionne, mais dans le principe nous sommes dans ce type de cas la pour ce que tu recherche plus ou moins.

Concernant ton dernier code posté, j'ai du mal avec les codes couleurs mirc, et des appels de global botnick etc.. inutile..

Voici le rendu du code, il reste à toi de le tester, et de voir la compréhension de ceci.
Je te laisse libre recours de faire des modifications etc..

tcl
#*******************#
# Publicite.tcl     #
#*******************#
 
namespace eval ::publi {
 
   # Salon ou va se situé le TCL.
   variable salons "#salon"
   # Nom du fichier ou seront les pseudos.
   variable fichiers "publi_salon.db"
   # Procédure de création du fichier.
   if {![file exists $fichiers]} {
       set load [open $fichiers w+]
       close $load
       putlog "\2Je crée le fichier $fichiers\2"
   }
   # Procédure d'ajout d'annonces.
bind pub o "!addpub" [namespace current]::add:pub
   proc add:pub { nick host hand chan args } {
       variable salons
set pub [lrange $args 0 end]
if {$salons == ""} {
   puthelp "notice $nick :Syntaxe => !addpub < message >"
return 0
       }
if {![file exists "scripts/annonce.txt"]} {
set files [open "scripts/annonce.txt" a+]
   close $files
}
set num [expr {int(rand() * 37)}]
set files [open "scripts/annonce.txt" a+]
puts $files "$pub"
close $files
puthelp "notice $nick :Annonce enregistre"
} else {
   puthelp "notice $nick :Erreur Salon"
}
}
 
   #Timer phrase aléatoire.
   set fichier "/home/D/shell/scripts/annonce.txt"
   set fi [open $fichier "r"]
   set phrases [split [read -nonewline $fi] "\n"]
   close $fi
   bind cron - "*/20 * * * *" randlecture
proc randlecture {mm hh dd mo yy} {
   set laphrase [lindex $::phrases [rand [llength $::phrases]]]
   variable salons
   putserv "PRIVMSG $salons :$::laphrase"
}
 
   # Procédure d'ajout de pseudo.
   bind pub o ".+autorise" [namespace current]::+ajout
   proc +ajout { nick host hand chan arg } {
       variable fichiers
       variable salons
       set temp [lindex $arg 0]
       if {$temp == ""} {
           putserv "NOTICE $nick :Utilisation: .+autorise <pseudo>"
           putserv "NOTICE $nick :Exemple .+autorise $nick"
           return 0
       }
       set lis "[fread $fichiers]"
       if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
           lappend lis $temp
           fwrite $fichiers $temp
           putserv "NOTICE $nick :\002$temp\002 \0034a été ajouté\0034"
           putserv "PRIVMSG $salons :\002$temp\002 \0034est ajouté au pseudos autorisé\0034"
           return 0
       }
       putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est déjà dans la liste\0034"
       return 0
   }
   # Procédure de suppression de pseudo.
   bind pub o ".-autorise" [namespace current]::-ajout
   proc -ajout { nick host hand chan arg } {
       variable fichiers
       variable salons
       set temp [lindex $arg 0]
       if {$temp == ""} {
           putserv "NOTICE $nick :Utilisation: .-autorise <pseudo>"
           putserv "NOTICE $nick :Exemple: .-autorise $nick"
           return 0
       }
       set autoajout "[fread $fichiers]"
       set tmp ""
       foreach bb $autoajout {
           if {![string match $temp $bb]} {lappend tmp $bb}
       }
       fdel $fichiers $tmp
       putserv "NOTICE $nick :\002$temp\002 \0034supprimé des pseudos\0034"
       putserv "PRIVMSG $salons :\002$temp\002 \0034est supprimé des pseudos\0034"
       return 0
   }
   # Procédure pour voir la liste des pseudos.
   bind pub o ".autorise" [namespace current]::auto
   proc auto { nick host hand chan arg } {
       variable fichiers
       variable salons
       set fp [open $fichiers "r"]
       set fc -1
       putserv "notice $nick :\037\00300,01 -> Liste des pseudos. <-\037\003"
       while {![eof $fp]} {
           set data [gets $fp]
           incr fc
           if {$data !=""} {
               putserv "notice $nick :\0031\[ \0034$data\0031\0031 ]\0031"
           }
           unset data
       }
       close $fp
       putserv "notice $nick :\037\00300,01 -> Fin de la liste des pseudos. <-\037\003"
   }
   # Ne pas toucher Systeme Proc  !!
 
   # Procédure d'écriture de fichier.
   proc fwrite {fi arg} {
       set f [open $fi a]
       puts $f $arg
       close $f
   }
   # Procédure de suppression de fichier.
   proc fdel {fi arg} {
       set f [open $fi w]
       puts $f $arg
       close $f
   }
   # Procédure de lecture de fichier.
   proc fread {fi} {
       set f [open $fi r]
       set t [gets $f]
       close $f
       return $t
   }
}
putlog "\002\0034Chargement.. \002\037\0031Publicite.tcl by Datura\037\0031"



Ton code je l'ai juste copié coller, j'ai juste corrigé ta variable que tu n'as jamais modifié suite à la demande de @CrazyCat

ce que tu avais :
tcl
set pub [lrange $a 0 end]



Ce que @CrazyCat t'as demander de modifié :
tcl
set pub [lrange $args 0 end]



Voilà :)
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
  Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Problème de droit J M 2 1,634 27/10/2010, 17:42
Dernier message: J M

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)