Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Changement de realname au join
#1
Hello,
J'essaye actuellement de faire un petit tcl qui modifie automatiquement le realname des utilisateurs au join dans un salon ou ce tient le robot mais je coince ... etant donné que j'ai jamais vraiment utiliser les regex et les raw je me suis un peu perdu et mon code est invalide (il y a aucune réaction).

Voici mon code :

tcl
bin join -|- "*" realname
proc realname {nick uhost hand chan arg} {
	global Clam;
	set asv [lrange $arg 2 end]
	set name [lindex $arg 0]
	bind_raw - 311 msg_realname
	if {$asv == ""|| [regexp -nocase {^[1-7][0-9]\s(h|f)\s.*} $asv]} {
	putdcc $Clam(idx) ":$Clam(link) who $asv"
	putdcc $Clam(idx) ":$Clam(pseudo) PRIVMSG $Clam(admin) :Mauvais ASV >> $name >> $asv"
	return 1
	}
}
 
proc msg_realname {nick from keyword arg} {
global Clam realname asv
    if {[info exists realname] && ($keyword == 311)} {
	putdcc $Clam(idx) ":$Clam(link) SETNAME $nick $Clam(asv)"
	unbind raw - 311 msg_realname 
	unset realname
             unset asv
	}
}


Ps : $Clam(asv) est une valeur par defaut dans un fichier de config qui est de "20 H asv de defaut"

Merci aux gens qui vont m'aider.
#2
Essayes avec ça comme regex:


Code:
^[1-7][0-9]\s[HF]\s(.*)$
#3
Daccord sinon la construction du code est bien ?
#4
bin c'est une commande perso?
Parceque un bind join avec un argument "arg" j'ai jamais vu.
#5
Petite erreure de ma part quand j'ai taper le code ^^, sinon cela est bind
#6
Nan mais ton code tu l'as même pas testé en fait, avoues, parceque la ça dois te générer une erreur direct.
#7
Si je l'est tester mais en touchant au code (en voulant modifier les procs) j'ai carrement effacer les deux premieres lignes et quand je les est réecrite, sa mais pas venue a l'idée de verifier le bind.
Donc en corrigeant correctement le bind voici l'erreure que j'obtient :
Tcl error [realname]: wrong # args: should be "realname nick uhost hand chan arg"
#8
En gros l'erreur, que tu obtiens EST l'erreur dont te parlait Merwin et qui fait que ton bind ne peut pas fonctionner.

Syntaxe :
bind join <flags> <mask> <proc>
procname <nick> <user@host> <handle> <channel>
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#9
Daccord, donc je bloque a cette endroit car je voit pas comment faire apart avec un raw ?

Est-ce que le code ci dessou pourais marcher ?

tcl
bind raw - "???" realname
proc realname { arg } {
global Clam;
....


N'etant pas chez moi je ne peut pas voir le nom/numero de la raw de join sur un salon ...
Le code que j'ai ecrit rapidement est fait directement a partire du forum.
#10
Selon cette page:
Quote:
  • Syntaxe: bind raw <flags> <keyword> <proc>
  • Procédure: procname <from> <keyword> <text>
Et j'avoue ne pas comprendre ta question sur le raw join...
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#11
Enfaite non y'a pas vraiment de question, juste mon esprit loufoque qui a dit qu'une enorme *bip* ...
Par contre je comprend toujours pas pour faire mon bind =/
#12
Je ne comprends toujours pas. Quel bind ?
Tu as besoin de 2 binds: celui sur le join (pour lancer un /whois) et celui sur le raw 311 (le retour du whois).

Maintenant, si faire ton bind correspond à faire la procédure liée au bind, exprimes toi correctement.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#13
J'ai pas su m'exprimer ...
Mais tu m'a repondu sans réellement me comprendre, je n'avais pas compris que je devais faire 2 bind pour le join et après un pour le raw.
Sa m'aide beaucoup, merci
#14
heretoc :p

quand tu fait un bind join, tu ne doit pas avoir le arg.


tcl
proc realname {nick uhost hand chan arg} { ...


doit être:


tcl
proc realname {nick uhost hand chan} { ...


dans un bind join, on ne doit pas trouver de "arg". sans quoi tu retrouve tout le temps une erreur genre:
"wrong args, should be { blablablabla }".

les autres, corrigez moi si je me trompe :$


Possibly Related Threads…
Thread Author Replies Views Last Post
  [fractionné] Realname avec CAP extended-join ZarTek 2 107 04/08/2022, 16:51
Last Post: ZarTek
  Ban sur realname Babytigrou16 12 5,667 08/08/2009, 21:42
Last Post: bewess
  ban sur detection de realname bewess 21 10,909 05/05/2009, 13:49
Last Post: bewess

Forum Jump:


Users browsing this thread: 1 Guest(s)