besoin d'un petit plus avec load.tcl
#1
Bonjour
j'ai un script load.tcl qui foncionne tres bien
mais j'ai ajouté un autre script de MenzAgitat qui permet de lister tout les tcl qu'il ya dans mon fichier eggdrop.

voici le tcl de MenzAgitat
tcl
###
### Enregistrement de chaque script chargé dans la liste $::loaded_scripts (par MenzAgitat)
proc register_script {scriptname} {
global loaded_scripts
lappend loaded_scripts
if { [lsearch $loaded_scripts $scriptname] == -1 } {
lappend loaded_scripts $scriptname
}
return $scriptname
}



donc par conséquent dans le fichier .conf de l'eggdrop il faut que ce soit [register_script kikoulol.tcl]

Maintenant le script load.tcl
tcl
#################################################################################
#										#
# LOADTCL.TCL permet de charger ou d'enlever un fichier .tcl du config file	#
# du bot à partir de la partyline.						#
# Commande (en partyline) :							#
# .loadtcl <nom_du_rep/nom_du_fichier_tcl>					#
# .unloadtcl <nom_du_rep/nom_du_fichier_tcl>					#
#										#
# Remarque : un fichier de sauvegarde du config file du bot est créé sous le	#
# nom "svg_config_file.loadtcl" (on est jamais trop prudent !)			#
#										#
#										#
#################################################################################

 
##### CONFIGURATION #####

### Inscrire entres guillemets le nom du fichier de config du bot (ainsi qu'eventuellement
### le repertoire ds lekel il se situe si ce n'est pas le repertoire courant du bot !)
set nom_config_file "experienza.conf"

##### FIN DE LA CONFIGURATION #####

 
 
##### DEBUT DU PROGRAMME #####
 
bind dcc n loadtcl dcc:loadtcl
bind dcc n unloadtcl dcc:unloadtcl
 
proc dcc:loadtcl {handle idx text} {
	global loadvar lct nom_config_file
	set lct 0
	set fichier_tcl [lindex $text ]
	if {$fichier_tcl == ""} {
		putdcc $idx "#LOADTCL# Commande : \002.loadtcl <repertoire_du_fichier/nom_du_fichier>\002"
		return 0
	}
	if {$nom_config_file == ""} {
		putdcc $idx "#LOADTCL# Vous devez OBLIGATOIREMENT lire et completer ce qui est demandé dans le fichier \002loadtcl.tcl\002 !!"
		return 0
	}
	if {![file exists $nom_config_file]} {
		putdcc $idx "#LOADTCL# Le fichier $nom_config_file n'existe pas !"
		return 0
	}
	if {![file exists $fichier_tcl]} {
		putdcc $idx "#LOADTCL# Le fichier $fichier_tcl n'existe pas !"
		return 0
	}
	if {![file readable $fichier_tcl]} {
		putdcc $idx "#LOADTCL# Le fichier $fichier_tcl ne peut etre lu (verifie les droits peut-etre) !"
		return 0
	}
	if {[file type $fichier_tcl] != "file"} {
		putdcc $idx "#LOADTCL# Pour moi, $fichier_tcl n'est pas un fichier !"
		return 0
	}	
	set fd [open $nom_config_file r]
	while {[eof $fd] != 1} {
		set loadvar($lct) [gets $fd]
		if {[string range $loadvar($lct) 0 14] == "source scripts/"} {
			set ici $lct
		}		
		set lct [expr $lct + 1]
	}
	close $fd
	file copy -force $nom_config_file svg_config_file.loadtcl
	set fw [open $nom_config_file w+]
	set lct [expr $lct - 1]
	set i 0
	while {$i <= $lct} {
		if {$i == $ici} {
			puts $fw "source $fichier_tcl"
		}	
		puts $fw $loadvar($i)
		set i [expr $i + 1]
	}
	close $fw
	putdcc $idx "#LOADTCL# \002$fichier_tcl\002 correctement chargé (le fichier de config d'origine a été copié en \003svg_config_file.loadtcl\003 !), rehash en cours ..."
	source $fichier_tcl
	return 0
}
 
proc dcc:unloadtcl {handle idx arg} {
	global loadvar lct nom_config_file
	set lct 0
	set ici ""
	set fichier_tcl [lindex $arg 0]
	if {$fichier_tcl == ""} {
		putdcc $idx "#LOADTCL# Commande : \002.unloadtcl <repertoire_du_fichier/nom_du_fichier>\002"
		return 0
	}
	if {$nom_config_file == ""} {
		putdcc $idx "#LOADTCL# Vous devez \003OBLIGATOIREMENT\003 lire et completer ce qui est demandé dans le fichier \002loadtcl.tcl\002 !!"
		return 0
	}
	if {![file exists $nom_config_file]} {
		putdcc $idx "#LOADTCL# Le fichier $nom_config_file n'existe pas !"
		return 0
	}
	if {![file exists $fichier_tcl]} {
		putdcc $idx "#LOADTCL# Le fichier $fichier_tcl n'existe pas !"
		return 0
	}
	if {![file readable $fichier_tcl]} {
		putdcc $idx "#LOADTCL# Le fichier $fichier_tcl ne peut etre lu (verifie les droits peut-etre) !"
		return 0
	}
	if {[file type $fichier_tcl] != "file"} {
		putdcc $idx "#LOADTCL# Pour moi, $fichier_tcl n'est pas un fichier !"
		return 0
	}
	set fd [open $nom_config_file r]
	while {[eof $fd] != 1} {
		set loadvar($lct) [gets $fd]
		if {[string range $loadvar($lct) 0 end] == "source $fichier_tcl"} {
			set ici $lct
		}		
		set lct [expr $lct + 1]
	}
	close $fd
	if {$ici == ""} {
		putdcc $idx "#LOADTCL# \002$fichier_tcl\002 n'est pas dans le fichier de config !"
		return 0
	}
	file copy -force $nom_config_file svg_config_file.loadtcl
	set fw [open $nom_config_file w+]
	set lct [expr $lct - 1]
	set i 0
	while {$i <= $lct} {
		if {$i != $ici} {
			puts $fw $loadvar($i)
		}	
		set i [expr $i + 1]
	}
	close $fw
	putdcc $idx "#LOADTCL# \002$fichier_tcl\002 correctement viré (le fichier de config d'origine a été copié en \003svg_config_file.loadtcl\003 !), rehash en cours ..."
	rehash
	return 0
}



Voila actuellement pour ajouter un ficier tcl il faut taper en PL .loadtcl scripts/kikoulol.tcl

Mais le probleme etant donné qu'il faut que dans le fichier .conf de l'eggdrop il faut que ce soit sous format [register_script kikoulol.tcl] comment faire pour que dans load.tcl on ai juste apres dans la Pl a taper .loadtcl kikoulol.tcl et que ca enregistre auto sous scripts/[register_script kikoulol.tcl] ???

Merci de votre futur aide
Répondre Avertir


Messages dans ce sujet
besoin d'un petit plus avec load.tcl - par loulou7593 - 21/07/2009, 06:45

Atteindre :


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