TCL problème avec une variable
#1
Bonjour,


je poste ici le tcl pour mieux expliquer le probleme :

tcl
############################# Robot pour verifer les connexions (non fini) #####################
 
set active 0
 
bind raw - "NOTICE" myproc
bind msg - "MD5" exemple3:repond3
 
proc myproc { from keyword arg } {
if { ([string match "*connecting on port*" $arg]) } {
 
set nnickname [lindex $arg 9]

##Detection du message que le robot recoit en pv
##/PRIVMSG eggdrop :MD5 <le_code_md5_généré_par_un_applet>
proc exemple3:repond3 {nick uhost handle arg} {
 
##xxxxx c'est le mot de passe
set Pass "xxxxx"

## le md5  avec le nick et le Pass et le $arg dernier mot aprés message "MD5 <xxxxxxxxxxxxxxxxxxx>"
if { [md5 $nick$Pass] == $arg } {
putserv "PRIVMSG #connect :Verification OK pour $nick - hash [md5 $nick$Pass]"

##le set ne veut pas changer la variable je comprend pas - GROS PROBLEME sinon la personne risque le gline meme si le md5 est bon
set active 1
##changement de variable obligatoire pour pas que le if en bas ne s'execute
}
}

##Si le if ci-dessus change la valeur de la variable 'active' il execute pas le script ci-dessous
if { $active == 0 } {
putserv "PRIVMSG #connect :commande gline + commande privmsg pour connexion non autorisé."
}
 
}
}

 
 
############################# ####################### #####################




la detection de la notice est obligatoire : "*connecting on port*" car il y a 2 styles de clients sur le serveur irc:

1) Les gens de l'applet ils ont une variable MD5 (géneré par php) donc dés que l'applet est connecté il fait direct un /PRIVMSG eggdrop :MD5 <code_généré_par_php> et il verifie si c'est le meme code dans [md5 $nick$Pass] == $arg donc le md5 géneré par php c'est aussi le meme code avec md5("$pseudo$Pass");

2) les clients mirc/xchat/etc... donc ils envoient pas de pv et donc le seul truc qu'il faut faire c'est de détecté une Non-réception de pv pour que le message retourne "Non accepté" car il est pas sous l'applet.


le truc qui marche pas dans ce tcl c'est le changement de valeur dans "set active 1" , est-ce que quelqu'un sait comment faudrait faire ?

tcl
##le set ne veut pas changer la variable je comprend pas
##GROS PROBLEME sinon la personne risque le gline meme si le md5 est bon
set active 1
##changement de variable obligatoire pour pas que le if en bas ne s'execute



Script fait a la débutant donc j'espere que le code est assez correct.


Merci d'avance,
bonne journée.
Répondre Avertir


Messages dans ce sujet
TCL problème avec une variable - par mecmec - 28/07/2011, 17:05
RE: TCL problème avec une variable - par BdS - 29/07/2011, 00:29

Atteindre :


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