Remote de comptabilisation join/part qui foire a moitié
PatchankaBZH
Messages postés8Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention29 mai 2008
-
22 mai 2008 à 23:08
PatchankaBZH
Messages postés8Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention29 mai 2008
-
29 mai 2008 à 11:47
hello all :p
voilà je suis nouveau sur le forum ainsi qu'en script IRC et j'ai
essayé, sur mon propre chan, de créer un remote permettant de
comptabiliser le nombre d'users sur un seul et meme chan, c à d qu 'a
chaque "join" ou "part" un message apparaisse pour dire qu il reste "x"
users sur ce chan...
bon je l'ai réussi qu a moitié : je m'explique : pour le "join" c'est bon, le texte apparait, et le calcul se fait
pour le "part", la phrase ne s'affiche pas mais le calcul se fait quand
meme, c à d que si je me déconnete puis me reconnecte le nombre d'users
s'est calculé...
donc voici le remote proprement dit :
on *:join:#: {
if ( $chan == #nom_du_chan ) { /inc %var +1 | /msg $chan 3;Bonjour
$nick ! Tu es le %var ème user connecté sur ce salon ! Un petit coucou
ne fait jamais de mal !
}
on *:part:#: {
if ( $chan == #nom_du_chan ) { /inc %var -1 | /msg $chan Maintenant nous ne sommes plus que %var user sur ce salon ! | halt }
}
donc je recommence :
sur le 1er remote "on:join" : pas de p, le message s'affiche et le
calcule de variable se fait --> tout en sachant que je mets en +
dans l'onglet variable --> %val"nb_exact_d_'_users" --> par
exemple, %val 6 si il ya 6 users sur le chan a la création du
remote........bref, ça marche donc pas de p...
sur le 2ème remote on:part : là ça se corse : le calcul de variable se
fait --> %val -1, mais le hic c'est que le texte : "Maintenant nous
ne sommes plus que %var user sur ce salon ! " ne s'affiche pas...là je
comprend plus...(pour vérifier ça j'ai 2 PC donc je vois les quit et
join de chaque user --> enfin de 2 users différents)
donc si qq'un a une astuce sur ce remote qu'il me le dise s.v.p, j'ai essayé pas mal de trucs genre :
- remplacer /inc par /dec dans le 2ème remote "on:part"... --> apparemment ça calcule %var -1 de base...
- remplacer "on:part" par "on:quit"... ou bien mettre les 2 comme ça a chaque quit ou part ça calcule qd meme...
et pis d'autres trucs dont je dirais rien car j'ai honte,et oé y'a un début a tout en script IRC
donc voilà si qq'un peut m'éclairer sur ce problème je suis preneur
j'éspère avoir été assez clair sinon n'hésitez pas a me poser des
questions j'y répondrais le + rapidement possible et les plus
clairement possible
A voir également:
Remote de comptabilisation join/part qui foire a moitié
je comprends pas trop mais avec cette méthode ça marche, j'ai juste changé ma variable, au lieu de %var j'ai mis %nombreuser et ça marche, j'ai bien le texte quand qq'un quit mon chan...pourtant le remote est quasi le meme voir identique m'enfin bon...
PatchankaBZH
Messages postés8Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention29 mai 2008 25 mai 2008 à 08:53
ok je vais tester merci RCA Arkanis
sinon j'ai un autre soucis en ce moment, du meme style...
pour les "quit", je remet a priori le meme remote que pour lers part et là surpirse ça ne marche pas non plus...
je l'ai re fait plusieurs fois et nada...ça ne marche pas...la phrase ne s'affiche pas et le compteur ne compte plus :p
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 25 mai 2008 à 14:59
Lors d'un on join, mIRC ne connait pas encore le nombre d'user sur le salon, il ne voit que toi, mIRC envois un /names pour connaitre tout ça, tu peux donc attendre la fin des /names (raw 366 si jme souviens bien) pour connaitre ça, sinon un petit timer sur le on join le fait aussi
PatchankaBZH
Messages postés8Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention29 mai 2008 25 mai 2008 à 18:56
wims, merci de ta réponse et de ton aide
pourrais tu etre + précis en ce qui concerne le "format" du on:quit stp (dsl je débute hein :p)
je suppose que c'est l'intégralité du script qui est faux car je l'ai tourné et retourné dans tout les sens, là je sèche un peu
copie de ce que j'ai :
on *:quit:#:{
if ( $chan == #Nom_du_salon ) { /dec %var | /msg $chan Maintenant nous ne sommes plus que %var users sur ce salon ! | halt }
}
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 25 mai 2008 à 19:04
le ON QUIT n'utilise pas de salon, ton :#: est donc faux et $chan ne renvoie rien (cf l'aide quoi ... tape /help on quit)
Tu peux peut-être utiliser ison, mais je ne sais pas à quel moment le ison est mis à jour. Teste, de toute façon comme ça tu seras fixé ^^
Les / ne servent à rien à part indiquer que tu débutes. Il en est de même pour le halt dans ton cas.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 25 mai 2008 à 19:05
Tu as regardé l'aide sur l'evenement on quit ?
Vu que le format n'est pas le même forcément ça marche pas, /quit te déconnecte d'un server donc il n'y a pas de parametre pour le salon, tu doit simplement vérifié que le nick étais bien sur le salon. pour ça tu regarde tout les salon commun avec le nick :
on !*:quit:if ($istok($regsubex($str(a,$comchan($nick,0)),/(a)/g,$+($comchan($nick,\n),$chr(32)),#salon,32))
{ dec %var | msg #salon Maintenant nous ne sommes plus que %var users sur ce salon ! }
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 25 mai 2008 à 19:38
Ma methode n'est p-e etre pas très clair, je t'explique un petit peu :
$regsubex permet d'imiter une boucle sur $comchan($nick,0) (qui retourne le nombre de salon commun avec le nick) je match tout les "a" qu'il y a (sachant que j'en met autant qu'il y a de salon commun, et sur chaque match, je remplace le "a" par le nom du Nieme salon commun suivis d'un espace (le \n vaut le Nieme match) pour se retrouvé avec un truc du style "#salon1 #salon2 #salon3" ensuite je regarde simplement si ton #salon existe parmis cette liste avec $istok
La methode la plus utilisé ici aurait été une boucle /while, mais cette methode permet de n'avoir qu'une ligne de code ;)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 27 mai 2008 à 19:21
Poste le code entier qui intervient la dedans, ton on join part, quit etc, cela ne sert a rien d'utiliser une variable, regarde bien les réponses a tes questions.
on !*:join:#:msg $chan Nous sommes maintenant $nick($chan,0) users sur le salon
on !*:part:#:msg $chan Nous sommes maintenant $nick($chan,0) users sur le salon
on !*:quit:tokenize 32 $regsubex($str(a,$comchan($nick,0)),/(a)/g,$+($comchan($nick,\n),$chr(32))) | scon -r msg $* Nous sommes maintenant $!nick( $* ,0) users sur le salon
Je suis presque certain que ces trois lignes te conviendront.
PatchankaBZH
Messages postés8Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention29 mai 2008 29 mai 2008 à 11:47
ah ! ça marche mieux !
pour l'instant le message ne dit qu il y a un seul user mais peut etre faut il attendre que les autres se déconnectent ou quittent le chan
j'te dirais ça dès que j'en saurais + wims et merci encore !