Tous les collages #838670 Brut Modifier

auto limiter

public text v1 · immuable
#838670 ·publié 2007-12-30 15:53 UTC
corps du collage affiché
alias autolimit {
  var %x 1,%y
  while ($gettok(%limitchannels,%x,32)) {
    %y = $ifmatch
    if ($calc($chan(%y).limit - $nick(%y,0)) < %limitno) && ($chan(%y).limit != $calc($nick(%y,0) + %limitno)) && ($me isop %y) {
      mode %y +l $calc($nick(%y,0) + %limitno) 
    }
    if ($chan(%y).limit == $null) && ($me isop %y) {
      mode %y +l $calc($nick(%y,0) + %limitno) 
    }
    inc %x
  }
}

dialog autolimit {
  title "auto limiter"
  size -1 -1 180 100
  option dbu
  button "ok",1, 190 80 15 10
  box ,2,2 2 176 96
  list 3, 10 16 50 70
  text "channels",4, 21 7 25 7
  button "del",5, 23 80 20 10
  edit ,6, 80 20 15 10
  text "users in",7, 100 20 40 10
  edit ,8, 122 20 18 10
  text "secs",9, 145 20 15 10
  button "start limiter!",10, 87 40 50 10
  button "stop limiter!",11, 87 60 50 10
  text "allow",12, 100 9 25 10
}

on *:dialog:autolimit:*:*: {
  if ($did == 5) && ($devent == sclick) {
    did -d $dname 3 $did($dname,3).sel
  }
  if ($did == 6) && ($devent == edit) {
    set %limitno $did($dname,6).text
  }
  if ($did == 8) && ($devent == edit) {
    set %limittime $did($dname,8).text
  }
  if ($did == 10) && ($devent == sclick) {
    set %limitchannels $didtok($dname,3,32)
    var %x 1
    while ($gettok(%limitchannels,%x,32)) {
      mode $ifmatch +l $calc($nick($ifmatch,0) + %limitno) 
      inc %x
    }
    .timerlimit 0 %limittime autolimit
  }
  if ($did == 11) && ($devent == sclick) {
    .timerlimit off
  }
  if ($did == 0) && ($devent == init) {
    did -h $dname 1
    did -a $dname 6 %limitno
    did -a $dname 8 %limittime
    var %x 1
    while ($chan(%x)) {
      did -a $dname 3 $chan(%x)
      inc %x
    }
  }
}

on *:exit: { unset %limitno,%limittime,%limitchannels }