Anti idle !!! un de plus

Contenu du snippet

un anti idle de base !
Simple et efficace!
Pas de tests sur le fait d etre operateur , celui qui le charge et ne l est pas doit arreter de scripter.
Désolé pour le goto c est une vieille habitude pour ne pas remplr les pipes de processeurs et creer un Jump ( et un seul ).
Je pourrais mettre du elsif mais c est pareil !! vidage du pipe !
Quelques petites ameliorations a faire, mais pas fioritures.
> multichan
> %server.chan.pseudo pour le multiserver par exemple
...

Source / Exemple :


;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 a faire
}
on *:unload: {
  ;; durée du ban
  unset %idleTime.over
  ;; Raison du kick
}

on *:connect: {
  /timeridstart 1 2  /antiidle stop
  /timeridstart 1 10 /antiidle start %idleTime.over
}

alias antiidle {
  if (($$1 isin start) && ($$2 isnum )) {
    /timerfirstact 1 2 /actidle
    /set %idleTime.over $$2
    /timerantiidle 0 30 /actIdle
    ;;/echo @highlights > Script anti idle launched : $+ $chr(32) $+ $$2  $+ $chr(32) $+ secondes
    /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
  ;; pour tous les utilisateurs de bases (aucun mode)
  while (%idle.ind < %idle.nb.regular) {
    ;; j affiche dans une fenetre speciale ( a commenter ou a créer )
    ;; /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
    ;; si il y a un depassement du temps autoriser >> action
    if ( $nick(#biere-entre-potes,%idle.ind,r).idle > %idleTime.over ) {
      ;; si une variable de type %pseudo existe
      if ($var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1) != $null) {
        ;; alors je l incremente
        /inc $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1) 1 
        ;; si cette valeur est superieure a 2 alors je kick/ban
        if ( $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1).value > 2) {
          /mode #biere-entre-potes +bb $nick(#biere-entre-potes,%idle.ind,r) $address($nick(#biere-entre-potes,%idle.ind,r),2)
          /kick #biere-entre-potes $nick(#biere-entre-potes,%idle.ind,r) $+ $chr(32) IDLE TIME OVER - temps de squattage maximum autoriser $+ $chr(32) $+  $calc(%idleTime.over / 60) $+ $chr(32) $+ minutes ( $+ %idleTime.over $+ $chr(32) $+ secondes) => $+ $chr(32) $nick(#biere-entre-potes,%idle.ind,r).idle $+ ( $+ $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1).value $+ $chr(32) $+ fois, kick/ban à 3)
          ;; je detruit la variable %pseudo
          /unset $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1)
        }
        ;;/echo @highlights >> $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1).value
      }
      ;; sinon si la variable %pseudo n existe pas >> je la crée et je kicke
      else {
        /set % $+ $nick(#biere-entre-potes,%idle.ind,r),1) 1
        /kick #biere-entre-potes $nick(#biere-entre-potes,%idle.ind,r) $+ $chr(32) IDLE TIME OVER - temps de squattage maximum autoriser $+ $chr(32) $+  $calc(%idleTime.over / 60) $+ $chr(32) $+ minutes ( $+ %idleTime.over $+ $chr(32) $+ secondes) => $+ $chr(32) $nick(#biere-entre-potes,%idle.ind,r).idle $+ ( $+ $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1).value $+ $chr(32) $+ fois, kick/ban à 3)
        ;;/echo @highlights >> $var( $chr(37) $+ $nick(#biere-entre-potes,%idle.ind,r),1).value
      }
    }
    ;; j incremente
    /inc %idle.ind 1
  } 
  ;; je detruis les variables pour eviter les residus accidentels
  unset %idle.ind
  unset %idle.nb.regular
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.