![]() |
TCL problème avec une variable - Version imprimable +- Communauté Eggdrop (https://forum.eggdrop.fr) +-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8) +--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4) +--- Sujet : TCL problème avec une variable (/showthread.php?tid=998) |
TCL problème avec une variable - mecmec - 28/07/2011 Bonjour, je poste ici le tcl pour mieux expliquer le probleme : tcl
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
Script fait a la débutant donc j'espere que le code est assez correct. Merci d'avance, bonne journée. RE: TCL problème avec une variable - BdS - 29/07/2011 tcl
Essai ça, même si je suis sur de rien (lol) RE: TCL problème avec une variable - djkenny - 29/07/2011 salut, lorsque tu set ta variable active au début du tcl, tu crées une variable globale. Par contre lorsqu'une variable est créée dans une procédure elle est dite locale. Ces 2 variables, même si elles portent le même nom, ne sont donc pas liées. Il faut donc appeler ta variable globale dans la procédure. Pour cela, 2 manières: tcl
ou: tcl
sinon pour le code, tu crées 2 procédures l'une dans l autre, je doutes que se soit ce que tu voulais faire, essais comme ça: tcl
RE: TCL problème avec une variable - mecmec - 29/07/2011 Salut DjKenny, Merci pour le code, par contre le "connecting on port" il arrive bien avant le PRIVMSG et donc le bind raw - "NOTICE" myproc il sert a rien et il faudrait le remplacer par un autre bind mais je ne sais pas lequel. Avec l'applet j'envoi ceci : ::Connexion Server ::NICK <Pseudodumec> ::USER <username> host 127.0.0.1 :<realname> >Connexion établie sur le serveur irc ::PRIVMSG Eggdrop :MD5 <MD5_généré_par_php> Donc l'eggdrop lui, il peut pas verifier le message privé car la notice serveur elle arrive aussitot que la connexion est faite: >Connexion établie sur le serveur irc ensuite il y a la reception du pv. moi je croyais qu'il etait possible de faire la connexion au serveur, mettre en attente le pseudo pour voir si le pseudo arriverais en pv en lui mettant le md5 , c'est un probleme d'ordre il faudrait que le pv arrive bien avant la notice serveur et là le script il marcherait surement. tcl
J'aurais donc une question a poser tout en gardant le proc ci-dessus sans le SNotice: -Est-ce que c'est possible de détecter une personne qui viens PAS dans le pv du robot aprés 1 ou 2 seconde maximum ? le privmsg a la connexion de l'applet il est surement immédiat et la reception du pv elle met peut etre moins de 1 seconde, est-ce que c'est possible de détecté une non-réception d'un pv ? il faudrait comme un "else" aprés le proc exemple3:repond3 en mettant un message que le pv n'a pas été reçu et que donc le gline est autorisé. J'arriverais jamais a monter un tel truc a moi tout seul et merci de m'avoir aidé jusqu'a présent. ================= Sinon juste avant que tu me passe ce code, en attendant d'avoir une réponse j'avais fais un autre systeme mais avec mysql la technique c'etait de verifier l'ident de chaque connexion, la personne se connecte et l'ident ne se trouve pas dans la bdd et donc le truc il marchait "PRIVMSG #test :$nnickname N'a pas été trouvé dans la bdd et donc gline ! " ou alors l'ident a été trouvé (car l'applet il enregistre l'ident dans mysql avant la connexion) Mais je crois que la technique du pv (reception ou non) je crois que c'est mieux car en effet avec mysql il est tellement lent que la verification se fait plus de 60 secondes aprés. donc l'idée du mysql pas si top. RE: TCL problème avec une variable - djkenny - 29/07/2011 avec un timer ou utimer RE: TCL problème avec une variable - mecmec - 30/07/2011 j'ai testé avec un utimer, mais en faite non je comprend pas comment ça marche, il faut le placer ou ce utimer? un script tcl il lit dans l'ordre comme un script php ? a chaque fois qu'il recoit une notice il repart en haut du tcl et il lit? ou les proc sont en lecture jusqu'a tant que l'eggdrop quitte (die) ? RE: TCL problème avec une variable - djkenny - 30/07/2011 non tcl n'as rien a voir avec php, il charge les proc en mémoire et les lit lorsqu'elles sont appelées, soit par un bind soit en direct. pour ton code en réalité je suis pas vraiment sur que se soit faisable, ou alors assez compliqué. pourquoi ne pas tout simplement mettre un mot de passe sur ton serveur? |