Limit system [gestion d' un chan ou multi(chan/serv)]

Contenu du snippet

Snipet de gestion du mode +l pour un chan ou multi(serv/chan)
clic droit pour activer l addon un fois coller dans vos remote

Note : La source de base est http://www.ircfr.com/codes/MODE-MULTI-CHAN-SERVER_30488.aspx mon ancien compte, alors ne criez pas au ripage :)

Source / Exemple :


;#########################################
;# Limit systeme par n0m@n 20/10/2007    #
;# Script du nanobot socket bot          #
;#########################################

menu channel {
  « nanobot »
  .modules
  ..Mode +l Tous
  ...$iif($group(#limit) == on,Désactiver):mode_-l
  ...$iif($group(#limit) == off,Activer):mode_+l
  ..Mode +l $iif(%ChanLimit == $null,No Chan,%ChanLimit)
  ...$iif(%ChanLimit == $null,Ajouter $active,Effacer %ChanLimit):ChanLimit
  ...$iif($group(#limit) == on,Désactiver):mode_-l
  ...$iif($group(#limit) == off,Activer):mode_+l
}

alias mode_+l {
  if (%ChanLimit == $null) { .enable #limit | var %a = 1 | while ($comchan($me,%a).op) {  mode $comchan($me,%a) +l $calc($nick($comchan($me,%a),0) + 5) | inc %a  } }
elseif ($me isop %ChanLimit) { .enable #limit | mode $chan +l $calc($nick(%ChanLimit,0) + 5) } }
alias mode_-l { 
  if (%ChanLimit == $null) { .disable #limit | var %a = 1 | while ($comchan($me,%a).op) { mode $comchan($me,%a) -l | inc %a } }
elseif ($me isop %ChanLimit) { .disable #limit | mode %ChanLimit -l   } }
alias ChanLimit {
  if (%ChanLimit == $null) { mode_-l | set %ChanLimit $active | mode_+l }
else { mode_-l | unset %ChanLimit } } 

#limit on
on @!*:mode:#: if (l isincs $1) $LimitTimer(1,5)
on @*:KICK:#: $LimitTimer(5,4)
on @!*:JOIN:#: $LimitTimer(8,5)
on @!*:PART:#: $LimitTimer(5,4)
on *:OP:#: if ($opnick == $me) $LimitTimer(1,5)
on @!*:QUIT: LimitTimerA 8 4
#limit end
alias  LimitTimer { 
  if (%ChanLimit == $null) { return .timer [ $+ [ $chan ] $+ [ * ] $+ [ $network ] ] 1 $1 mode $chan +l $calc($nick($chan,0) + $2) }
else { return  .timer [ $+ [ %ChanLimit ] ] 1 $1 mode %ChanLimit +l $calc($nick(%ChanLimit,0) + $2) } }

alias LimitTimerA {
  if  (%ChanLimit == $null)  { var %a = 1 | while ($comchan($nick,%a)) {  .timer [ $+ [ $v1 ] $+ [ * ] $+ [ $network ] ] 1 $1 mode $v1 +l $calc($nick($v1,0) + $2) | inc %a } } 
else { .timer [ $+ [ %ChanLimit ] ] 1 $1 mode %ChanLimit +l $calc($nick(%ChanLimit,0) + $2 } }

Conclusion :


Le core de la source initial a été compétement refondus afin d' optimiser et améliorer le systeme
A venir peut être la gestion des net splits

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.

Du même auteur (n0man)