COOLMAN002
Messages postés969Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention 1 juillet 2012
-
7 juin 2005 à 23:30
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009
-
14 juil. 2006 à 00:23
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 14 juil. 2006 à 00:23
et t'en fais quoi des elseif et des else ?
elkwi
Messages postés7Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention14 juillet 2006 14 juil. 2006 à 00:08
l interet c est de montrer l utilisation de la fonction $nick(...).idle.
Le reste viendra plus tard c est en projet mais sur une source complete !!!
a titre d info arkanais ... un bon goto est un goto qui va empecher le pipe du processeur de se remplir et empecher la creation d un jump lors du test du second if (qui evidement n arrivera jamais). Donc dans ce genre de cas, il est completement justifié. Et c est ce genre de detail qui fait qu a la longue les scripts deviennent tres lourds pour une machine.
exemple :
if (machin1) ....... ==> if (machin1) ....... /goto ok
if (machin2) ....... ==> if (machin2) ....... /goto ok
if (machin3) ....... ==> if (machin3) ....... /goto ok
if (machin4) ....... ==> if (machin4) .......
==> :ok
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 13 juil. 2006 à 23:45
il est mal codé en tout cas ^^
berk les goto :(
utilise les variables locales ^^
la variable %idletime.over ne sert à rien, autant remplacer directement par 600 ^^
elkwi
Messages postés7Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention14 juillet 2006 13 juil. 2006 à 23:35
désolé j ai laisser un /echo -a @highlights pour afficher ça dans une fenetre et savoir ou j en suis !!! vous trouverez bien une bidouille a faire avec !!!
elkwi
Messages postés7Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention14 juillet 2006 13 juil. 2006 à 23:31
ce script est super car il montre une utilisation un peu plus poussée des concaténations de chaines de caracteres. Mais je pense qu il y a plus direct, surtout que ce script oblige a jongler avec les timers !!!! moi je propose celui la!!
Il est reglé pour un salon bien défini et pour un idle de 600 secondes! Certains me diront qu ils manquent des choses comme un ban mais ça peut montrer une autre optique.
Cf $nick(#salon,nick/index,aohvr,aohvr).idle
;;;;;;;;;;;;;;;;;;;;;;;;;;; anti idle ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Script : anti Idle ;;
;; Doit pouvoir permettre de virer quelqu un sur idle time over ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on *:load : {
;; durée du ban
set %idleTime.over 600
;; Raison du kick
;; salons
}
on *:unload: {
;; durée du ban
unset %idleTime.over
;; Raison du kick
;; salons
}
alias antiidle {
if ($$1 isin start) {
/actidle
/timerantiidle 0 60 /actIdle
/goto done
}
if ($$1 isin stop) {
/timerantiidle off
}
:done
}
alias actIdle {
set %idle.nb.regular $calc($nick(#biere-entre-potes,0,r) + 1)
set %idle.ind 1
while (%idle.ind < %idle.nb.regular) {
/echo @highlights $nick(#biere-entre-potes,%idle.ind,r) $+ $chr(32) $+ idle time : $+ $chr(32) $+ $nick(#biere-entre-potes,%idle.ind,r).idle $+ $chr(32) $+ secondes
if ($nick(#biere-entre-potes,%idle.ind,r).idle > 600) {
/kick #biere-entre-potes $nick(#biere-entre-potes,%idle.ind,r) $+ $chr(32) IDLE TIME OVER - temps de squattage maximum autoriser 10 minutes (600 secondes) => $+ $chr(32) $nick(#biere-entre-potes,%idle.ind,r).idle
}
/inc %idle.ind 1
}
unset %idle.ind
unset %idle.nb.regular
}
MaX_62
Messages postés879Date d'inscriptionvendredi 22 octobre 2004StatutMembreDernière intervention29 juin 2007 8 juin 2005 à 10:53
Si t'as qu'une seule commande, pas besoin d'accolades :
on *:voice:%salonai:.timer $+ $vnick off
Pour le ban, je pense qu'il vaut mieux faire :
/ban -ku300 $$2 $$1 2 Ban 5mins No idle please. (sinon t'es pas sur de récupérer les $address, et ça evite de faire un /kick)
(et les halfops ?...)
MaX_62
Messages postés879Date d'inscriptionvendredi 22 octobre 2004StatutMembreDernière intervention29 juin 2007 8 juin 2005 à 10:52
Si t'as qu'une seule commande, pas besoin d'accolades :
on *:voice:%salonai:.timer $+ $vnick off
Pour le ban, je pense qu'il vaut mieux faire :
/ban -ku300 $$2 $$1 2 Ban 5mins No idle please. (sinon t'es pas sur de récupérer les $address, et ça evite de faire un /kick)
(et les halfops ?...)
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 8 juin 2005 à 01:13
ta première ligne n'est pas nécessaire, vu que tu as donné un nom au timer
si la personne change de nick, elle est sauvée :p
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 8 juin 2005 à 00:51
je suis personnellement contre cette pratique de bannir les users qui idle sur les chans d'aide. (dailleurs jss jms sur les salons d'aident qui kick les gens qui idle va savoir pk jss tjrs ban. (:)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 8 juin 2005 à 00:32
Generalement sur les salon d'aide ce qui ne sont ni voice ni op ( ni halfop. pas traité ici ) bah c'est ceux qui aide le plus.J'vois pas l'utilité de les viré parce qu'il parle pas.
ajoute un truc du style : on load var %z $$input(quel sont les channel,e,(separé par une virgule)) et tu set %z ds ta var et tu utilise $istok
COOLMAN002
Messages postés969Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention 1 juillet 20121 7 juin 2005 à 23:30
Utilise RAWMODE, verifie que tu es op du salon.
Renome le query en cas de changement de nick.
Vérifier que $nick != toi :)
En mettant un nom de $chan dans le timer, tu pourrais faire multi chan ! (et un nom de $server, multi serveur)
14 juil. 2006 à 00:23
14 juil. 2006 à 00:08
Le reste viendra plus tard c est en projet mais sur une source complete !!!
a titre d info arkanais ... un bon goto est un goto qui va empecher le pipe du processeur de se remplir et empecher la creation d un jump lors du test du second if (qui evidement n arrivera jamais). Donc dans ce genre de cas, il est completement justifié. Et c est ce genre de detail qui fait qu a la longue les scripts deviennent tres lourds pour une machine.
exemple :
if (machin1) ....... ==> if (machin1) ....... /goto ok
if (machin2) ....... ==> if (machin2) ....... /goto ok
if (machin3) ....... ==> if (machin3) ....... /goto ok
if (machin4) ....... ==> if (machin4) .......
==> :ok
13 juil. 2006 à 23:45
berk les goto :(
utilise les variables locales ^^
la variable %idletime.over ne sert à rien, autant remplacer directement par 600 ^^
13 juil. 2006 à 23:35
13 juil. 2006 à 23:31
Il est reglé pour un salon bien défini et pour un idle de 600 secondes! Certains me diront qu ils manquent des choses comme un ban mais ça peut montrer une autre optique.
Cf $nick(#salon,nick/index,aohvr,aohvr).idle
;;;;;;;;;;;;;;;;;;;;;;;;;;; anti idle ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Script : anti Idle ;;
;; Doit pouvoir permettre de virer quelqu un sur idle time over ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on *:load : {
;; durée du ban
set %idleTime.over 600
;; Raison du kick
;; salons
}
on *:unload: {
;; durée du ban
unset %idleTime.over
;; Raison du kick
;; salons
}
alias antiidle {
if ($$1 isin start) {
/actidle
/timerantiidle 0 60 /actIdle
/goto done
}
if ($$1 isin stop) {
/timerantiidle off
}
:done
}
alias actIdle {
set %idle.nb.regular $calc($nick(#biere-entre-potes,0,r) + 1)
set %idle.ind 1
while (%idle.ind < %idle.nb.regular) {
/echo @highlights $nick(#biere-entre-potes,%idle.ind,r) $+ $chr(32) $+ idle time : $+ $chr(32) $+ $nick(#biere-entre-potes,%idle.ind,r).idle $+ $chr(32) $+ secondes
if ($nick(#biere-entre-potes,%idle.ind,r).idle > 600) {
/kick #biere-entre-potes $nick(#biere-entre-potes,%idle.ind,r) $+ $chr(32) IDLE TIME OVER - temps de squattage maximum autoriser 10 minutes (600 secondes) => $+ $chr(32) $nick(#biere-entre-potes,%idle.ind,r).idle
}
/inc %idle.ind 1
}
unset %idle.ind
unset %idle.nb.regular
}
8 juin 2005 à 10:53
on *:voice:%salonai:.timer $+ $vnick off
Pour le ban, je pense qu'il vaut mieux faire :
/ban -ku300 $$2 $$1 2 Ban 5mins No idle please. (sinon t'es pas sur de récupérer les $address, et ça evite de faire un /kick)
(et les halfops ?...)
8 juin 2005 à 10:52
on *:voice:%salonai:.timer $+ $vnick off
Pour le ban, je pense qu'il vaut mieux faire :
/ban -ku300 $$2 $$1 2 Ban 5mins No idle please. (sinon t'es pas sur de récupérer les $address, et ça evite de faire un /kick)
(et les halfops ?...)
8 juin 2005 à 01:13
.timer $+ $nick 1 600 kbidle $nick $chan
ta première ligne n'est pas nécessaire, vu que tu as donné un nom au timer
si la personne change de nick, elle est sauvée :p
8 juin 2005 à 00:51
8 juin 2005 à 00:32
ajoute un truc du style : on load var %z $$input(quel sont les channel,e,(separé par une virgule)) et tu set %z ds ta var et tu utilise $istok
7 juin 2005 à 23:30
Renome le query en cas de changement de nick.
Vérifier que $nick != toi :)
En mettant un nom de $chan dans le timer, tu pourrais faire multi chan ! (et un nom de $server, multi serveur)
Niveau utilité...