Alors suite à notre discussion, j'ai fait un mini-script:
Il suffit de de modifier le pattern et la liste chars pour t'en servir comme tu veux.
Par exemple, pour avoir automatiquent 5 chiffres:
tcl
namespace eval rand_id {
# Le masque de l'ident, les ? seront remplacés par
# un caractère de la liste "chars"
variable pattern "hello???"
# Liste des caractères de remplacement autorisés
variable chars {
"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"
"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
"_" "-"
}
# renvoit un caractère au hasard
proc rndchr {} {
return [lindex $rand_id::chars [rand [llength $rand_id::chars]]]
}
# Remplace tous les ? du masque
proc randomize {pattern} {
set out ""
foreach {chr [split $rand_id::pattern ""]} {
append out [if {[string eq $chr "?"]} {rand_id::rndchr} {set chr}]
}
return $out
}
# Bind sur la connexion au serveur
bind evnt - "connect-server" ident
proc ident {evnt} {
set ::username rand_id::randomize
}
}
Il suffit de de modifier le pattern et la liste chars pour t'en servir comme tu veux.
Par exemple, pour avoir automatiquent 5 chiffres:
tcl
variable pattern "?????"
variable chars { "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" }