cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 2010
-
10 mai 2006 à 20:19
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009
-
13 mai 2006 à 19:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 13 mai 2006 à 19:07
La solution de Wims est, à mon goût, la bonne
je m'explique :
tu fais une boucle avec : tant que nick est non nul, alors ...
le mieux, c'est de faire comme wims, càd :
var %i 1, %max $nick($1,0,oh) (le oh n'est pas obligé, c'est juste histoire de ne pas faire une boucle trop grande ... tu fais ici déjà une restriction sur le nombre de nicks)
et donc while (%i <= %max) { ... }
Tu pourrais stocker le nick dans une variable locale, histoire de ne pas utiliser $nick(#,%i) plusieurs fois. J'pense que t'y gagnerais en temps d'execution.
Je veux dire par là :
var %ni = $nick(#,%i,oh)
if ((%ni != $me) || (%ni ishop $1) || (%ni isop $1))
set %userLs %userLs => utilise /var
Essaye aussi de voir si /notice nick1,nick2 fait flooder s'il y a beaucoup nicks.
Oublie pas de vérifier que $1 est bien un salon. Si ce n'est pas le cas, peut-être que tu pourrais faire en sorte que ce soit le salon actif, si c'est bien un salon bien sûr ($active)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 12 mai 2006 à 19:16
J'ai essayé ces commandes et il faut minimum le voice sur le salon pour pouvoir s'en servir ( sans access ) mais il voulait que la commande reste accessible pour tous...
J'ai appris par la même occasion qu'il existe aussi la meme commande pour les privmsg :
[18:55:47] <oug>y'a aussi /privmsg [mode]#chan
toujour utile :)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 11 mai 2006 à 11:10
Lol, je ne sais pas ce que veut dire ton smiley, mais il faut tester de toute facon, je ne suis pas sur de moi.
A noter que ta méthode peut être intéressante tout de même, sur un serveur ou je suis, il faut l'utiliser sous peine d'avoir son host décrypté qui apparait.
Bonne journée ;)
elkwi
Messages postés7Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention14 juillet 2006 11 mai 2006 à 11:06
Super pour ta remarque WINS ça m apprend des nouveau tips
mais la remarque de PADA r0>< merci a vous 2, j aime quand ça se passe comme ça surtout que je suis loin de maitriser les commandes Irc :D
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 11 mai 2006 à 09:27
Je n'ai jamais essayé (et je peux pas depuis le taff), mais préfixer le nom du salon par le mode ne suffit pas ?
Ca, ca marche :
/notice @#salon blah, envoie blah aux ops du salon
/notice @+#salon blah, envoie blah aux ops+voices du salon
/notice +#salon blah, envoie blah aux voices du salon...
Donc je me demande si :
/notice @%#salon blah, n'enverrait pas blah aux ops+hops ? non ?
De toute facon à titre pédagogique c'est bien pour aider les débutants ;)
Bonne continuation.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 10 mai 2006 à 20:19
$nick($chan,0,oh) retourne le nombre d'halfop et d'op sur le salon.
tu fait une boucle la dessus au lieu de faire une boucle sur tout les users, ca ira bien plus vite !
alias hnotice {
;on initialise les variable
var %a 1 ,%b = $nick($1,0,oh) ,%n
;la boucle
while (%a <= %b) {
;si le nick est different du notre on l'ajoute dans la variable
if ($nick($1,%a,oh) !$me) var %n $addtok(%nick,$ifmatch,44)
;on incremente
inc %a
}
;on envoi la notice.
notice %n <notice moderateur> $2-
}
13 mai 2006 à 19:07
je m'explique :
tu fais une boucle avec : tant que nick est non nul, alors ...
le mieux, c'est de faire comme wims, càd :
var %i 1, %max $nick($1,0,oh) (le oh n'est pas obligé, c'est juste histoire de ne pas faire une boucle trop grande ... tu fais ici déjà une restriction sur le nombre de nicks)
et donc while (%i <= %max) { ... }
Tu pourrais stocker le nick dans une variable locale, histoire de ne pas utiliser $nick(#,%i) plusieurs fois. J'pense que t'y gagnerais en temps d'execution.
Je veux dire par là :
var %ni = $nick(#,%i,oh)
if ((%ni != $me) || (%ni ishop $1) || (%ni isop $1))
set %userLs %userLs => utilise /var
Essaye aussi de voir si /notice nick1,nick2 fait flooder s'il y a beaucoup nicks.
Oublie pas de vérifier que $1 est bien un salon. Si ce n'est pas le cas, peut-être que tu pourrais faire en sorte que ce soit le salon actif, si c'est bien un salon bien sûr ($active)
12 mai 2006 à 19:16
J'ai appris par la même occasion qu'il existe aussi la meme commande pour les privmsg :
[18:55:47] <oug>y'a aussi /privmsg [mode]#chan
toujour utile :)
11 mai 2006 à 11:10
A noter que ta méthode peut être intéressante tout de même, sur un serveur ou je suis, il faut l'utiliser sous peine d'avoir son host décrypté qui apparait.
Bonne journée ;)
11 mai 2006 à 11:06
mais la remarque de PADA r0>< merci a vous 2, j aime quand ça se passe comme ça surtout que je suis loin de maitriser les commandes Irc :D
11 mai 2006 à 09:27
Ca, ca marche :
/notice @#salon blah, envoie blah aux ops du salon
/notice @+#salon blah, envoie blah aux ops+voices du salon
/notice +#salon blah, envoie blah aux voices du salon...
Donc je me demande si :
/notice @%#salon blah, n'enverrait pas blah aux ops+hops ? non ?
De toute facon à titre pédagogique c'est bien pour aider les débutants ;)
Bonne continuation.
10 mai 2006 à 20:19
tu fait une boucle la dessus au lieu de faire une boucle sur tout les users, ca ira bien plus vite !
alias hnotice {
;on initialise les variable
var %a 1 ,%b = $nick($1,0,oh) ,%n
;la boucle
while (%a <= %b) {
;si le nick est different du notre on l'ajoute dans la variable
if ($nick($1,%a,oh) !$me) var %n $addtok(%nick,$ifmatch,44)
;on incremente
inc %a
}
;on envoi la notice.
notice %n <notice moderateur> $2-
}
T'avais demandé plus court :)