ajout d'une fonction sur un auto voice on join
#14
Salut,

si c'est pour un salon, j'avais fait un truc pour quelqu'un ya un moment de ça.
Mais c'est par traitement de fichier, si ça peut t'aider tiens :

tcl
#**********#
# Vip V1.0 #
#**********#

# Description du code TCL.

#***************************************#
# TCL en NameSpace.                     #
# Utilisation de msgcat.                #
#***************************************#
 
namespace eval ::vip {
   
   # Salon back ou va se situé l'autorise.
   variable salons "#informatique"
   # Nom du fichier ou seront les pseudos autorisé.
   variable fichiers "vip.db"
   # Procédure de création du fichier Vip.
   if {![file exists $fichiers]} {
       set load [open $fichiers w+]
       close $load
       putlog "\2Je crée le fichier $fichiers\2"
   }
   proc filtout {chan text} {
     if [string match "*c*" [getchanmode $chan]] {
           return [stripcodes abcgru $text]
     } else {
           return $text
     }
}
   # Procédure de join.
   bind join - "$::vip::salons *" [namespace current]::joinauto
   proc joinauto {nick host hand chan} {
       variable salons
       if [isbotnick $nick] return
       if {[acceesalon $nick]} {
           set msg [filtout $salons "\0031\[ \0033Mode Vip Automatique\0033 \0031\] Comportement exemplaire récompensé pour \002$nick\002 qui est automatiquement VIP ce mois ci sur \002$salons\002"]
           putquick "PRIVMSG $salons :$msg"
           putserv "MODE $salons +v $nick"
           return 0
       }
   }
   # Procédure d'ajout de pseudo Vip.
   bind pub o ".+vip" [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: .+vip <pseudo>"
           putserv "NOTICE $nick :Exemple .+vip $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 "NOTICE $nick :\002$temp\002 \0034est ajouté au pseudos vip\0034"
           return 0
       }
       putserv "NOTICE $nick :\002Erreur:\002$temp\002 \0034est déjà vip\0034"
       return 0
   }
   # Procédure de suppression de pseudo vip.
   bind pub o ".-vip" [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: .-vip <pseudo>"
           putserv "NOTICE $nick :Exemple: .-vip $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 vip\0034"
       putserv "NOTICE $nick :\002$temp\002 \0034est supprimé des pseudo vip\0034"
       return 0
   }
   # Procédure pour voir la liste des vip.
   bind pub o ".vip" [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 vip. <-\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 vip. <-\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
   }
}
putlog "\002\0034Chargement.. \002\037\0031Vip.tcl\037\0031"



EDIT : J'devais modifié pour faire passer les messages en msgcat, mais j'ai eut un poil la flemme, mais tu à de quoi faire pour ton exemple je suppose.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
Répondre Avertir


Messages dans ce sujet
RE: ajout d'une fonction sur un auto voice on join - par aliasangelius - 09/07/2018, 12:22

Atteindre :


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