Vous n'êtes pas identifié(e).

Top posteurs

Statistiques

Partenaires

  • eXolia Hosting
  • Eggdrop.fr

#1 24/02/2014 21:46:48

BaGrift
Nouveau IRCzien
Inscription : 22/12/2013
Messages : 6

Probleme TCL

Bonjour en etant novice en TCL j'ai quand meme esseyé de codé qu'elle que chose sauf que sa mon fais sauté l'eggdrop en me disan erreur a la ligne 1 si qu'elle qu'un pouvais m'aidé svp.

Voicis le code

Code: TCL
 
namespace eval ::autorise {
 
    # Nous vérifions si ya le package requis pour le msgcat.
    package require msgcat
    # Nous mettons la langue de msgcat en français.
    ::msgcat::mclocale fr
    # Nom du fichier ou seront les pseudos autorisé.
    variable fichiers "operateur.db"
    # Les messages de msgcat.
    ::msgcat::mcset fr msg1 "\00314Felicitation \0034° \0033$nick \0034° \037\0031a etait ajouté dans la liste des opérateur de $chan sur l'host %host\037\0031"
    # Procédure de création du fichier Autorise.
    if {![file exists $fichiers]} {
        set load [open $fichiers w+]
        close $load
        putlog "\2Je crée le fichier $fichiers\2"
    }
	# Procédure de join.
    bind join - "$::autorise::salons *" [namespace current]::joinauto
    proc joinauto {nick host hand chan} {
        variable salons
        set k [lindex [split $nick |] 0]
        set vnick $nick
        if [isbotnick $nick] return
        if {[acceesalon $nick]==0} {
            pushmode $salons +o $nick
            return 0
        }
		# Procédure d'ajout de pseudo autorise.
    bind pub o "!opadd" [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: !opadd <pseudo>"
            putserv "NOTICE $nick :Exemple !opadd $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é $host\0034"
            putserv "PRIVMSG $salons :\002$temp\002 \0034est ajouté au opérateur\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 autorise.
    bind pub o "!opdel" [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: !opdel <pseudo>"
            putserv "NOTICE $nick :Exemple: !opdel $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 operateur\0034"
        putserv "PRIVMSG $salons :\002$temp\002 \0034est supprimé des operateur\0034"
        return 0
    }
	# Procédure pour voir la liste des autorise.
    bind pub o "!opliste" [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 operateur. <-\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 operateur. <-\037\003"
    }
	# Ne pas toucher Systeme Proc  !!
    proc acceesalon {nick} {
        variable fichiers
        set fa [open $fichiers r]
        set access 0
        while { ![eof $fa]} {
        set ligne [gets $fa]
        if {[string first [string tolower $ligne] [string tolower $nick]]==0} {
            set access 1
        }
        }
close $fa
return $access
    }
	# 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\0031op.tcl V1.0 by toretto\037\0031"
 

Dernière modification par BaGrift (24/02/2014 21:48:07)

Hors ligne

#2 24/02/2014 21:59:57

Damien
Méchant Modérateur.
Lieu : Bruxelles
Inscription : 20/06/2011
Messages : 237
Site Web

Re : Probleme TCL

Salut,

Commence peut-être par relire ton code... ? (Enfin, si on puis dire que c'est le tiens)

Il manque des accolades déjà... ça m'étonnerait pas que rien que pour ça, il ne marche pas.

Ensuite, il y a un souci avec l'encodage des lettres.... Je sais pas si ça provient du forum ou de ton client, mais j'ai tous les caractères spéciaux qui sont mal traduits.

Une erreur à la ligne "1" ? Quelle erreur ? Explicité svp...


En informatique il n'y a pas de mauvais outils, il n'y a que de mauvais utilisateurs. Le problème le plus récurrent est celui qui se trouve entre la chaise et le clavier.

Hors ligne

#3 24/02/2014 22:07:57

BaGrift
Nouveau IRCzien
Inscription : 22/12/2013
Messages : 6

Re : Probleme TCL

Il me dis erreur au niveaux de cette ligne

Code: TCL
namespace eval ::autorise {

Le code viens pas de moi j'ai repris une idée du tcl autorised de eggdrop.fr !

Hors ligne

#4 27/02/2014 01:15:56

Diogene
IRCzien
Lieu : Le Mans
Inscription : 09/07/2011
Messages : 179

Re : Probleme TCL

Bonsoir,

Code: TCL
 
   bind join - "$::autorise::salons *" [namespace current]::joinauto
    proc joinauto {nick host hand chan} {
        variable salons
        set k [lindex [split $nick |] 0]
        set vnick $nick
        if [isbotnick $nick] return
        if {[acceesalon $nick]==0} {
            pushmode $salons +o $nick
            return 0
        }
 

Il te manque une accolade pour fermer la fonction.

Code: TCL
 
   bind join - "$::autorise::salons *" [namespace current]::joinauto
    proc joinauto {nick host hand chan} {
        variable salons
        set k [lindex [split $nick |] 0]
        set vnick $nick
        if [isbotnick $nick] return
        if {[acceesalon $nick]==0} {
            pushmode $salons +o $nick
            return 0
        }
  }
 

Amicalement.


Mieux vaut mourir incompris que passer sa vie à s'expliquer. [William Shakespeare]

Bon, c'est Diogene, mais c'est un humain malgré tout [CrazyCat]

Hors ligne

Pied de page des forums

502938 visites ( 78 aujourd'hui ) 2 visiteurs en ligne
Copyright © 2004 - 2013 IRCz