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
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 !!!
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
}
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 ?...)
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 ?...)
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. (:)
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
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
}