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


[Demande] Opé Sur Host et Non sur Nick
#1
Bonjour,

Il y'a 1 semaine a peu prés j'ai codé un tcl avec AliasAngelius qui permet de géré les statut op,halfop,voice via commande sur un eggdrop je me poser la question si il etait possible de enregistré sur l'host et non sur le nick.

Exemple je tape !opadd BaGrift le bot va m'enregistré dans le fichier operateur.db et ensuite il va m'opé hors que si exemple je change mon pseudo en BaGrift[Away] je tape /hop le bot va pas me op justement psk il prend l'enregistrement sur le nick et non sur l'host.

Merci au personne qui pourrons certainement m'aidé .

Voicis le code complet:

tcl
#################################
#		Script op.tcl			#
#	 Tcl Creat By Toretto		#
#			23/02/2014			#
#								#
####################################
#		Aurel-Tchat Network		   #
#	Server irc://irc.aurel-tchat.fr#
# Site-Web http://aurel-tchat.fr   #
# Forum http://forum.aurel-tchat.fr#
####################################
 
#####################################################################################
#	Attention Si vous toucher le code vous risquer de le faire planter				#
#		Merci de pas toucher si vous avez aucune connaissance dans le domaine du TCL#
#####################################################################################
 
#***********************************#
# TCL en NameSpace.                 #
# Utilisation de msgcat.            #
# Utilisation des procédure         #
# Pushmode/Putkick.                 #
#***********************************#
 
namespace eval ::operateur {
 
    # 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"
    # Ici ont mets le temps d'opage et de voice en secondes.
    variable opsec 3
    # Les messages de msgcat.
    ::msgcat::mcset fr Join "\0031Auto-Op Accepter Pour \0034%s \0031Sur \0034%s"
    ::msgcat::mcset fr Ajout "\00314Félicitation \0034° \0033%s \0034° \037\0031a etait ajoutà dans la liste des opÃrateur de %s sur l'host %s \037\0031"
    ::msgcat::mcset fr Del "\0031Auto-Op Supprimé Pour \0034%s \0031Sur \0034%s"
    # Listes des binds.
    bind join - "*" [namespace current]::joinauto
    bind pub o "!opadd" [namespace current]::+ajout
    bind pub o "!opdel" [namespace current]::-ajout
    # 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 d'auto-op/voice sur salon.
   proc verif {nick chan} {
    if {[isop $nick $chan]} {return}
        set vnick [lindex [split $nick |] 0]
        putserv "mode $chan +ov $vnick $vnick"
   }
   # Procédure de join.
    proc joinauto {nick host hand chan} {
       if {$nick == $::botnick} { return 0 }
       if {![botisop $chan]} { return 0 }
       if {[acceesalon $nick]==1} {
       putserv "privmsg $chan :[::msgcat::mc Join $nick $chan]"
            utimer $::operateur::opsec [list ::operateur::verif $nick $chan]
            return 1
       }
    }
      # ProcÃdure d'ajout de pseudo autorise.
    proc +ajout { nick host hand chan arg } {
       variable fichiers
       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]"
       set args [split $arg]
       set vnick [lindex $arg 0]
       set host "[split [getchanhost $vnick $chan] @]"
       if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
            lappend lis $temp
            fwrite $fichiers $temp
            putserv "privmsg $chan :[::msgcat::mc Ajout $vnick $chan $host]"
            utimer $::operateur::opsec [list ::operateur::verif $vnick $chan]
            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.
    proc -ajout { nick host hand chan arg } {
       variable fichiers
       set args [split $arg]
       set vnick [lindex $arg 0]
       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 "privmsg $chan :[::msgcat::mc Del $vnick $chan]"
       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
       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 tolower $nick] == [string tolower $ligne]} {
            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
    }
}
 
namespace eval ::half {
 
    # 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 "helpeur.db"
    # Ici ont mets le temps d'opage et de voice en secondes.
    variable opsec 3
    # Les messages de msgcat.
    ::msgcat::mcset fr Join "\0031Auto-Halfop Accepter Pour \0034%s \0031Sur \0034%s"
    ::msgcat::mcset fr Ajout "\00314Félicitation \0034° \0033%s \0034° \037\0031a etait ajoute dans la liste des halfop de %s sur l'host %s \037\0031"
    ::msgcat::mcset fr Del "\0031Auto-Halfop Supprimé De \0034%s \0031Sur \0034%s"
    # Listes des binds.
    bind join - "*" [namespace current]::joinauto
    bind pub o "!halfadd" [namespace current]::+ajout
    bind pub o "!halfdel" [namespace current]::-ajout
    # 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 d'auto-op/voice sur salon.
   proc verif {nick chan} {
    if {[isop $nick $chan]} {return}
        set vnick [lindex [split $nick |] 0]
        putserv "mode $chan +hv $vnick $vnick"
   }
   # Procédure de join.
    proc joinauto {nick host hand chan} {
       if {$nick == $::botnick} { return 0 }
       if {![botisop $chan]} { return 0 }
       if {[acceesalon $nick]==1} {
       putserv "privmsg $chan :[::msgcat::mc Join $nick $chan]"
            utimer $::half::opsec [list ::half::verif $nick $chan]
            return 1
       }
    }
      # ProcÃdure d'ajout de pseudo autorise.
    proc +ajout { nick host hand chan arg } {
       variable fichiers
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !halfadd <pseudo>"
            putserv "NOTICE $nick :Exemple !halfadd $nick"
            return 0
       }
       set lis "[fread $fichiers]"
       set args [split $arg]
       set vnick [lindex $arg 0]
       set host "[split [getchanhost $vnick $chan] @]"
       if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
            lappend lis $temp
            fwrite $fichiers $temp
            putserv "privmsg $chan :[::msgcat::mc Ajout $vnick $chan $host]"
            utimer $::half::opsec [list ::half::verif $vnick $chan]
            return 0
       }
       putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est deja dans la liste\0034"
       return 0
    }
   # ProcÃdure de suppression de pseudo autorise.
    proc -ajout { nick host hand chan arg } {
       variable fichiers
       set args [split $arg]
       set vnick [lindex $arg 0]
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !halfdel <pseudo>"
            putserv "NOTICE $nick :Exemple: !halfdel $nick"
            return 0
       }
       set autoajout "[fread $fichiers]"
       set tmp ""
       foreach bb $autoajout {
            if {![string match $temp $bb]} {lappend tmp $bb}
       }
       fdel $fichiers $tmp
       putserv "privmsg $chan :[::msgcat::mc Del $vnick $chan]"
       return 0
    }
   # ProcÃdure pour voir la liste des autorise.
    bind pub o "!halfliste" [namespace current]::auto
    proc auto { nick host hand chan arg } {
       variable fichiers
       set fp [open $fichiers "r"]
       set fc -1
       putserv "notice $nick :\037\00300,01 -> Liste des halfop. <-\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 halfop. <-\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 tolower $nick] == [string tolower $ligne]} {
            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
    }
}
 
namespace eval ::voice {
 
    # 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 "voice.db"
    # Ici ont mets le temps d'opage et de voice en secondes.
    variable opsec 3
    # Les messages de msgcat.
    ::msgcat::mcset fr Join "\0031Auto-Voice Accepter Pour \0034%s \0031Sur \0034%s"
    ::msgcat::mcset fr Ajout "\00314Félicitation \0034° \0033%s \0034° \037\0031a etait ajoute dans la liste des voice de %s sur l'host %s \037\0031"
    ::msgcat::mcset fr Del "\0031Auto-Voice Supprimé De \0034%s \0031Sur \0034%s"
    # Listes des binds.
    bind join - "*" [namespace current]::joinauto
    bind pub o "!voiceadd" [namespace current]::+ajout
    bind pub o "!voicedel" [namespace current]::-ajout
    # 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 d'auto-op/voice sur salon.
   proc verif {nick chan} {
    if {[isop $nick $chan]} {return}
        set vnick [lindex [split $nick |] 0]
        putserv "mode $chan +v $vnick"
   }
   # Procédure de join.
    proc joinauto {nick host hand chan} {
       if {$nick == $::botnick} { return 0 }
       if {![botisop $chan]} { return 0 }
       if {[acceesalon $nick]==1} {
       putserv "privmsg $chan :[::msgcat::mc Join $nick $chan]"
            utimer $::voice::opsec [list ::voice::verif $nick $chan]
            return 1
       }
    }
      # ProcÃdure d'ajout de pseudo autorise.
    proc +ajout { nick host hand chan arg } {
       variable fichiers
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !voiceadd <pseudo>"
            putserv "NOTICE $nick :Exemple !voiceadd $nick"
            return 0
       }
       set lis "[fread $fichiers]"
       set args [split $arg]
       set vnick [lindex $arg 0]
       set host "[split [getchanhost $vnick $chan] @]"
       if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
            lappend lis $temp
            fwrite $fichiers $temp
            putserv "privmsg $chan :[::msgcat::mc Ajout $vnick $chan $host]"
            utimer $::voice::opsec [list ::voice::verif $vnick $chan]
            return 0
       }
       putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est deja dans la liste\0034"
       return 0
    }
   # ProcÃdure de suppression de pseudo autorise.
    proc -ajout { nick host hand chan arg } {
       variable fichiers
       set args [split $arg]
       set vnick [lindex $arg 0]
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !voicedel <pseudo>"
            putserv "NOTICE $nick :Exemple: !voicedel $nick"
            return 0
       }
       set autoajout "[fread $fichiers]"
       set tmp ""
       foreach bb $autoajout {
            if {![string match $temp $bb]} {lappend tmp $bb}
       }
       fdel $fichiers $tmp
       putserv "privmsg $chan :[::msgcat::mc Del $vnick $chan]"
       return 0
    }
   # ProcÃdure pour voir la liste des autorise.
    bind pub o "!voiceliste" [namespace current]::auto
    proc auto { nick host hand chan arg } {
       variable fichiers
       set fp [open $fichiers "r"]
       set fc -1
       putserv "notice $nick :\037\00300,01 -> Liste des voice. <-\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 voice. <-\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 tolower $nick] == [string tolower $ligne]} {
            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
    }
}

Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#2
Salut,

C'est faisable ! Mais moi je ferais autrement que par fichier..
Je t'explique, tu enregistre la personne dans l'eggdrop.
Ensuite tu enregistre son host dedans sa sera dans le fichier .user

Ensuite tu joue sur les flag et voila.
Moi c'est ce que je ferait..
Je regarderais de plus près mais moi je ferais ainsi, a moons tu veut rester sur du traitement de fichier ?

"Envoyé depuis mon GT-N7000 avec Tapatalk"
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#3
Si c'est possible oui j'aimerais resté sur du traitement de fichier
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#4
Ok, je regarderais sa.. je vais voir du côté des traitements de host sur les fichiers et je te redis ça

"Envoyé depuis mon GT-N7000 avec Tapatalk"
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#5
Ok pas de soucis merci a toi alias
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#6
Je vais peut-être dire une connerie..
Test de remplacer

tcl
set temp [lindex $arg 0]

Rempmace le 0 par le 3

Idem pour le vnick

"Envoyé depuis mon GT-N7000 avec Tapatalk"
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#7
Sa fonctionne pas
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#8
Ok.. alors je regarderais demain de plus près.

"Envoyé depuis mon GT-N7000 avec Tapatalk"

Tiens test comme sa :


tcl
#################################
#      Script op.tcl         #
#    Tcl Creat By Toretto      #
#         23/02/2014         #
#                        #
####################################
#      Aurel-Tchat Network         #
#   Server irc://irc.aurel-tchat.fr#
# Site-Web http://aurel-tchat.fr   #
# Forum http://forum.aurel-tchat.fr#
####################################
 
################################################################################​#####
#   Attention Si vous toucher le code vous risquer de le faire planter            #
#      Merci de pas toucher si vous avez aucune connaissance dans le domaine du TCL#
################################################################################​#####
 
#***********************************#
# TCL en NameSpace.                #
# Utilisation de msgcat.            #
# Utilisation des procédure         #
# Pushmode/Putkick.                #
#***********************************#
 
namespace eval ::operateur {
 
    # 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"
    # Ici ont mets le temps d'opage et de voice en secondes.
    variable opsec 3
    # Les messages de msgcat.
    ::msgcat::mcset fr Join "\0031Auto-Op Accepter Pour \0034%s \0031Sur \0034%s"
    ::msgcat::mcset fr Ajout "\00314Félicitation \0034° \0033%s \0034° \037\0031a etait ajoutà dans la liste des opÃrateur de %s sur l'host %s \037\0031"
    ::msgcat::mcset fr Del "\0031Auto-Op Supprimé Pour \0034%s \0031Sur \0034%s"
    # Listes des binds.
    bind join - "*" [namespace current]::joinauto
    bind pub o "!opadd" [namespace current]::+ajout
    bind pub o "!opdel" [namespace current]::-ajout
    # 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 d'auto-op/voice sur salon.
   proc verif {nick chan} {
    if {[isop $nick $chan]} {return}
       set vnick [lindex [split $nick |] 0]
       putserv "mode $chan +ov $vnick $vnick"
   }
   # Procédure de join.
    proc joinauto {nick host hand chan} {
       if {$nick == $::botnick} { return 0 }
       if {![botisop $chan]} { return 0 }
       if {[acceesalon $nick]==1} {
       putserv "privmsg $chan :[::msgcat::mc Join $nick $chan]"
            utimer $::operateur::opsec [list ::operateur::verif $nick $chan]
            return 1
       }
    }
      # ProcÃdure d'ajout de pseudo autorise.
    proc +ajout { nick host hand chan arg } {
       variable fichiers
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !opadd <pseudo>"
            putserv "NOTICE $nick :Exemple !opadd $nick"
            return 0
       }
       set userhost [getchanhost $nick]
       set userhost "*!*[string range $userhost [string first @ $userhost] e]"
       set lis "[fread $fichiers]"
       set args [split $arg]
       set vnick [lindex $arg 0]
       set host "[split [getchanhost $vnick $chan] @]"
       if {[lsearch -exact "$lis" $userhost] != -1} {
            lappend lis $temp
            fwrite $fichiers $temp
            putserv "privmsg $chan :[::msgcat::mc Ajout $vnick $chan $host]"
            utimer $::operateur::opsec [list ::operateur::verif $vnick $chan]
            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.
    proc -ajout { nick host hand chan arg } {
       variable fichiers
       set args [split $arg]
       set vnick [lindex $arg 0]
       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 "privmsg $chan :[::msgcat::mc Del $vnick $chan]"
       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
       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 tolower $nick] == [string tolower $ligne]} {
            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
    }
}
 
namespace eval ::half {
 
    # 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 "helpeur.db"
    # Ici ont mets le temps d'opage et de voice en secondes.
    variable opsec 3
    # Les messages de msgcat.
    ::msgcat::mcset fr Join "\0031Auto-Halfop Accepter Pour \0034%s \0031Sur \0034%s"
    ::msgcat::mcset fr Ajout "\00314Félicitation \0034° \0033%s \0034° \037\0031a etait ajoute dans la liste des halfop de %s sur l'host %s \037\0031"
    ::msgcat::mcset fr Del "\0031Auto-Halfop Supprimé De \0034%s \0031Sur \0034%s"
    # Listes des binds.
    bind join - "*" [namespace current]::joinauto
    bind pub o "!halfadd" [namespace current]::+ajout
    bind pub o "!halfdel" [namespace current]::-ajout
    # 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 d'auto-op/voice sur salon.
   proc verif {nick chan} {
    if {[isop $nick $chan]} {return}
       set vnick [lindex [split $nick |] 0]
       putserv "mode $chan +hv $vnick $vnick"
   }
   # Procédure de join.
    proc joinauto {nick host hand chan} {
       if {$nick == $::botnick} { return 0 }
       if {![botisop $chan]} { return 0 }
       if {[acceesalon $nick]==1} {
       putserv "privmsg $chan :[::msgcat::mc Join $nick $chan]"
            utimer $::half::opsec [list ::half::verif $nick $chan]
            return 1
       }
    }
      # ProcÃdure d'ajout de pseudo autorise.
    proc +ajout { nick host hand chan arg } {
       variable fichiers
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !halfadd <pseudo>"
            putserv "NOTICE $nick :Exemple !halfadd $nick"
            return 0
       }
       set lis "[fread $fichiers]"
       set args [split $arg]
       set vnick [lindex $arg 0]
       set host "[split [getchanhost $vnick $chan] @]"
       if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
            lappend lis $temp
            fwrite $fichiers $temp
            putserv "privmsg $chan :[::msgcat::mc Ajout $vnick $chan $host]"
            utimer $::half::opsec [list ::half::verif $vnick $chan]
            return 0
       }
       putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est deja dans la liste\0034"
       return 0
    }
   # ProcÃdure de suppression de pseudo autorise.
    proc -ajout { nick host hand chan arg } {
       variable fichiers
       set args [split $arg]
       set vnick [lindex $arg 0]
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !halfdel <pseudo>"
            putserv "NOTICE $nick :Exemple: !halfdel $nick"
            return 0
       }
       set autoajout "[fread $fichiers]"
       set tmp ""
       foreach bb $autoajout {
            if {![string match $temp $bb]} {lappend tmp $bb}
       }
       fdel $fichiers $tmp
       putserv "privmsg $chan :[::msgcat::mc Del $vnick $chan]"
       return 0
    }
   # ProcÃdure pour voir la liste des autorise.
    bind pub o "!halfliste" [namespace current]::auto
    proc auto { nick host hand chan arg } {
       variable fichiers
       set fp [open $fichiers "r"]
       set fc -1
       putserv "notice $nick :\037\00300,01 -> Liste des halfop. <-\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 halfop. <-\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 tolower $nick] == [string tolower $ligne]} {
            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
    }
}
 
namespace eval ::voice {
 
    # 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 "voice.db"
    # Ici ont mets le temps d'opage et de voice en secondes.
    variable opsec 3
    # Les messages de msgcat.
    ::msgcat::mcset fr Join "\0031Auto-Voice Accepter Pour \0034%s \0031Sur \0034%s"
    ::msgcat::mcset fr Ajout "\00314Félicitation \0034° \0033%s \0034° \037\0031a etait ajoute dans la liste des voice de %s sur l'host %s \037\0031"
    ::msgcat::mcset fr Del "\0031Auto-Voice Supprimé De \0034%s \0031Sur \0034%s"
    # Listes des binds.
    bind join - "*" [namespace current]::joinauto
    bind pub o "!voiceadd" [namespace current]::+ajout
    bind pub o "!voicedel" [namespace current]::-ajout
    # 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 d'auto-op/voice sur salon.
   proc verif {nick chan} {
    if {[isop $nick $chan]} {return}
       set vnick [lindex [split $nick |] 0]
       putserv "mode $chan +v $vnick"
   }
   # Procédure de join.
    proc joinauto {nick host hand chan} {
       if {$nick == $::botnick} { return 0 }
       if {![botisop $chan]} { return 0 }
       if {[acceesalon $nick]==1} {
       putserv "privmsg $chan :[::msgcat::mc Join $nick $chan]"
            utimer $::voice::opsec [list ::voice::verif $nick $chan]
            return 1
       }
    }
      # ProcÃdure d'ajout de pseudo autorise.
    proc +ajout { nick host hand chan arg } {
       variable fichiers
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !voiceadd <pseudo>"
            putserv "NOTICE $nick :Exemple !voiceadd $nick"
            return 0
       }
       set lis "[fread $fichiers]"
       set args [split $arg]
       set vnick [lindex $arg 0]
       set host "[split [getchanhost $vnick $chan] @]"
       if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {
            lappend lis $temp
            fwrite $fichiers $temp
            putserv "privmsg $chan :[::msgcat::mc Ajout $vnick $chan $host]"
            utimer $::voice::opsec [list ::voice::verif $vnick $chan]
            return 0
       }
       putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est deja dans la liste\0034"
       return 0
    }
   # ProcÃdure de suppression de pseudo autorise.
    proc -ajout { nick host hand chan arg } {
       variable fichiers
       set args [split $arg]
       set vnick [lindex $arg 0]
       set temp [lindex $arg 0]
       if {$temp == ""} {
            putserv "NOTICE $nick :Utilisation: !voicedel <pseudo>"
            putserv "NOTICE $nick :Exemple: !voicedel $nick"
            return 0
       }
       set autoajout "[fread $fichiers]"
       set tmp ""
       foreach bb $autoajout {
            if {![string match $temp $bb]} {lappend tmp $bb}
       }
       fdel $fichiers $tmp
       putserv "privmsg $chan :[::msgcat::mc Del $vnick $chan]"
       return 0
    }
   # ProcÃdure pour voir la liste des autorise.
    bind pub o "!voiceliste" [namespace current]::auto
    proc auto { nick host hand chan arg } {
       variable fichiers
       set fp [open $fichiers "r"]
       set fc -1
       putserv "notice $nick :\037\00300,01 -> Liste des voice. <-\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 voice. <-\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 tolower $nick] == [string tolower $ligne]} {
            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
    }
}


J'ai modifié la ligne :

tcl
if {[lsearch -exact "x $fichiers" "$temp"]!="0"} {

Par :

tcl
if {[lsearch -exact "$lis" $userhost] != -1} {return 0}


Et aussi rajouter deux set :

tcl
set userhost [getchanhost $nick]
set userhost "*!*[string range $userhost [string first @ $userhost] e]"


Essaye et dit moi ce que cela donne mais je pense que sa devrais être dans ce genre la en modifications pour que sa fonctionne.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#9
il ya plus rien qui fonctionne lol
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#10
Ce code va me rendre fou..
Bon je me co sur irc demain après midi.
Ont fera des test voir après demain dans l'après midi..

"Envoyé depuis mon GT-N7000 avec Tapatalk"

Et dans le fichier quand tu tape pour rajouter. Sa s'écrits bien sous format de host ?

"Envoyé depuis mon GT-N7000 avec Tapatalk"
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#11
Ont se vois dans la semaine désoler eux quelques soucis donc pas pu me pencher dessus

Envoyé de mon GT-N7000 en utilisant Tapatalk
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#12
(11/03/2014, 18:58)aliasangelius Wrote: Ont se vois dans la semaine désoler eux quelques soucis donc pas pu me pencher dessus

Envoyé de mon GT-N7000 en utilisant Tapatalk

Salut, Oui pas de soucis quand tu veux
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#13
Salut,

Bon depuis hier soir.. je suis sur un codage.
Lors de notre dernier entretient tu avais divers soucis !

Tu m'avais demander aussi un code de modération, je suis sur certaines modifications dessus. Qui apporterait en plus de ce que tu demande dans ce post.

Je m'explique :
Dans le fichier machintruc.db dedans tu aura par exemple :PROTECT BaGrift
Donc ceci va te protéger, aussi bien sur la modération du code, et quand tu va joindre il va te mettre opérateur et aussi voice sur le salon.

Mais je suis incapable de faire le moindre tests tu devra donc les faire.
Je pense te passer un morceau de code dans la semaine voir s'il ne dispose d'aucune erreur..

Voila à toi de me dire si cela te convient ou pas

Envoyé de mon GT-N7000 en utilisant Tapatalk
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#14
(13/03/2014, 13:39)aliasangelius Wrote: Salut,

Bon depuis hier soir.. je suis sur un codage.
Lors de notre dernier entretient tu avais divers soucis !

Tu m'avais demander aussi un code de modération, je suis sur certaines modifications dessus. Qui apporterait en plus de ce que tu demande dans ce post.

Je m'explique :
Dans le fichier machintruc.db dedans tu aura par exemple :PROTECT BaGrift
Donc ceci va te protéger, aussi bien sur la modération du code, et quand tu va joindre il va te mettre opérateur et aussi voice sur le salon.

Mais je suis incapable de faire le moindre tests tu devra donc les faire.
Je pense te passer un morceau de code dans la semaine voir s'il ne dispose d'aucune erreur..

Voila à toi de me dire si cela te convient ou pas

Envoyé de mon GT-N7000 en utilisant Tapatalk

Salut,

Oui cela pourrais être intéressante pour tout se qui et les test pas de soucis j'ai ce qui faut lol j'attend avec impatience ton code a testé merci a toi
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#15
Bonjour.

je me permet de remonté sur post pck javais codé ce code avec alias et je voudrais quil fasse un traitement sur les host et non sur le nick si qu'elle qu'un pourrais m'aidé sa serais cool merci ...
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D


Possibly Related Threads…
Thread Author Replies Views Last Post
  Modifier un nick par badnick pheeric 8 1,419 01/11/2020, 23:20
Last Post: pheeric
  Déclarer $nick dans msgcat. aliasangelius 5 4,919 04/09/2012, 16:27
Last Post: CrazyCat
  Ban sur l'host Alucard`68 5 3,703 14/04/2012, 15:56
Last Post: Alucard`68
  nick list dans fichier html loulou7593 20 11,722 04/02/2012, 18:43
Last Post: djkenny
  nick non register msg cestlemien 11 6,876 20/12/2010, 23:20
Last Post: alanfollow
  nick list T4tou 5 4,796 04/11/2010, 15:45
Last Post: CrazyCat
  Beug changement de nick. IluZi0n 3 4,372 06/04/2009, 23:51
Last Post: Merwin
Sad Bannir un host en TCL Babytigrou16 31 20,473 22/11/2007, 21:03
Last Post: Babytigrou16

Forum Jump:


Users browsing this thread: 1 Guest(s)