ircN for mIRC — File Browser

ircNformIRCv6.0 / ircNformIRCv6.0 / ircn / SYSTEM / Fldprot.mrc

Fldprot.mrc — 17.85 KB — Download this file

on 1:CONNECT {
  .timer 0 600 cclr
  set %chantimer $ltimer
  .remove $tp(chan.txt)
}
on @1:TEXT:*:# {
  if ((%capsfld == on) && ($capschn($chan)) && ($caps($1-) > %maxcaps)) {
    if ((%capskops == n) && ($nick isop $chan)) goto caps-end
    if ((%capskfrnd == n) && ($ulevel >= 40)) goto caps-end
    set %caps.address $nick $+ ! $+ $address
    set %caps.address caps- $+ $mask(%caps.address,3)
    if (($pls($caps.lines($chan,%caps.address),1) >= %maxcplines) && ($div($sub($ticks,$caps.time($chan,%caps.address)),1000) < %capstime)) {
      if (%capskick) kick $chan $nick %capskick
      else {
        set %caps.avg $round($div($caps.caps($chan,%caps.address),$caps.lines($chan,%caps.address)),1)
        set %caps.time $round($div($sub($ticks,$caps.time($chan,%caps.address)),1000),1)
        kick $chan $nick Caps Flood ( $+ $pls($caps.lines($chan,%caps.address),1) lines with an average of %caps.avg $+ $chr(37) caps in %caps.time seconds $+ )
        unset %caps.avg %caps.time
      }
      remini $tp( [ [ $chan ] $+ .fld ] ) %caps.address
    }
    elseif (($caps.time($chan,%caps.address) == $null) || ($div($sub($ticks,$caps.time($chan,%caps.address)),1000) > %capstime)) {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address time $ticks
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address caps $caps($1-)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address lines 1
    }
    else {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address lines $pls($caps.lines($chan,%caps.address),1)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address caps $pls($caps.caps($chan,%caps.address),$caps($1-))
    }
    unset %caps.address
    :caps-end
  }
  if ((%asciifld == on) && ($asichn($chan)) && ($ascode(123,255,$1-) > %maxascii)) {
    if ((%asciikops == n) && ($nick isop $chan)) goto ascii-end
    if ((%asciikfrnd == n) && ($ulevel >= 40)) goto caps-end
    set %ascii.address $nick $+ ! $+ $address
    set %ascii.address ascii- $+ $mask(%ascii.address,3)
    if (($pls($asii.lines($chan,%ascii.address),1) >= %maxaslines) && ($div($sub($ticks,$asii.time($chan,%ascii.address)),1000) < %asciitime)) {
      if (%asciikick) kick $chan $nick %asciikick
      set %ascii.avg $round($div($asii.codes($chan,%ascii.address),$asii.lines($chan,%ascii.address)),1)
      set %ascii.time $round($div($sub($ticks,$asii.time($chan,%ascii.address)),1000),1)
      kick $chan $nick ASCII Code Flood ( $+ $pls($asii.lines($chan,%ascii.address),1) lines with an average of %ascii.avg $+ $chr(37) ascii in %ascii.time seconds $+ )
      remini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address
      unset %ascii.avg %ascii.time
    }
    elseif (($asii.time($chan,%ascii.address) == $null) || ($div($sub($ticks,$asii.time($chan,%ascii.address)),1000) > %asciitime)) {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address time $ticks
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address codes $ascode(123,255,$1-)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address lines 1
    }
    else {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address lines $pls($asii.lines($chan,%ascii.address),1)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address codes $pls($asii.codes($chan,%ascii.address),$ascode(123,255,$1-))
    }
    unset %ascii.address
    :ascii-end
  }
  if (%txtfld == on) {
    if ((%ktops == n) && ($nick isop $chan)) return
    elseif ((%tck == n) && ($ulevel >= 40)) return
    elseif (($chan isin %tfchans) || (%tfchans == all)) && ($nick ison $chan) {
      if ($c.lines($nick,$chan) == $null) {
        writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) lines 1
        writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) ltime $ticks
        writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) laps 1000
        return
      }
      if ($c.lines($nick,$chan) < %maxlines) {
        if ($sub($ticks,$c.ltime($nick,$chan)) < %lps) {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) lines $pls(1,$c.lines($nick,$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) laps $pls($sub($ticks,$c.ltime($nick,$chan)),$c.laps($nick,$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) ltime $ticks
        }
        else {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) lines 1
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) ltime $ticks
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) laps 1000
        }
      }
      if ($c.lines($nick,$chan) >= %maxlines) {
        if (%txban == y) ban $chan $nick 2
        if (%kckmsg.txt) kick $chan $nick %kckmsg.txt
        else kick $chan $nick Text Flood ( $+ %maxlines lines at $rrpt($div($c.laps($nick,$chan),%maxlines)) line/s $+ )
        remini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) lines
      }
    }
  }
}
on @1:ACTION:*:# {
  if ((%capsfld == on) && ($capschn($chan)) && ($caps($1-) > %maxcaps)) {
    if ((%capskops == n) && ($nick isop $chan)) goto caps-end
    if ((%capskfrnd == n) && ($ulevel >= 40)) goto caps-end
    set %caps.address $nick $+ ! $+ $address
    set %caps.address caps- $+ $mask(%caps.address,3)
    if (($pls($caps.lines($chan,%caps.address),1) >= %maxcplines) && ($div($sub($ticks,$caps.time($chan,%caps.address)),1000) < %capstime)) {
      if (%capskick) kick $chan $nick %capskick
      set %caps.avg $round($div($caps.caps($chan,%caps.address),$caps.lines($chan,%caps.address)),1)
      set %caps.time $round($div($sub($ticks,$caps.time($chan,%caps.address)),1000),1)
      kick $chan $nick kick $chan $nick Caps Flood ( $+ $pls($caps.lines($chan,%caps.address),1) lines with an average of %caps.avg $+ $chr(37) caps in %caps.time seconds $+ )
      remini $tp( [ [ $chan ] $+ .fld ] ) %caps.address
      unset %caps.avg %caps.time
    }
    elseif (($caps.time($chan,%caps.address) == $null) || ($div($sub($ticks,$caps.time($chan,%caps.address)),1000) > %capstime)) {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address time $ticks
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address caps $caps($1-)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address lines 1
    }
    else {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address lines $pls($caps.lines($chan,%caps.address),1)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %caps.address caps $pls($caps.caps($chan,%caps.address),$caps($1-))
    }
    unset %caps.address
    :caps-end
  }
  if ((%asciifld == on) && ($asichn($chan)) && ($ascode(123,255,$1-) > %maxascii)) {
    if ((%asciikops == n) && ($nick isop $chan)) goto ascii-end
    if ((%asciikfrnd == n) && ($ulevel >= 40)) goto caps-end
    set %ascii.address $nick $+ ! $+ $address
    set %ascii.address ascii- $+ $mask(%ascii.address,3)
    if (($pls($asii.lines($chan,%ascii.address),1) >= %maxaslines) && ($div($sub($ticks,$asii.time($chan,%ascii.address)),1000) < %asciitime)) {
      if (%asciikick) kick $chan $nick %asciikick
      set %ascii.avg $round($div($asii.codes($chan,%ascii.address),$asii.lines($chan,%ascii.address)),1)
      set %ascii.time $round($div($sub($ticks,$asii.time($chan,%ascii.address)),1000),1)
      kick $chan $nick ASCII Crap Flood ( $+ $pls($asii.lines($chan,%ascii.address),1) lines with an average of %ascii.avg $+ $chr(37) ascii in %ascii.time seconds $+ )
      remini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address
      unset %ascii.avg %ascii.time
    }
    elseif (($asii.time($chan,%ascii.address) == $null) || ($div($sub($ticks,$asii.time($chan,%ascii.address)),1000) > %asciitime)) {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address time $ticks
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address codes $ascode(123,255,$1-)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address lines 1
    }
    else {
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address lines $pls($asii.lines($chan,%ascii.address),1)
      writeini $tp( [ [ $chan ] $+ .fld ] ) %ascii.address codes $pls($asii.codes($chan,%ascii.address),$ascode(123,255,$1-))
    }
    unset %ascii.address
    :ascii-end
  }
  if (%actfld == on) {
    if ((%atops == n) && ($nick isop $chan)) return
    elseif ((%ack == n) && ($ulevel >= 40)) return
    elseif (($chan isin %afchans) || (%afchans == all)) && ($nick ison $chan) {
      if ($c.alines($nick,$chan) == $null) {
        writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) alines 1
        writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) atime $ticks
        writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) aaps 1000
        return
      }
      if ($c.alines($nick,$chan) < %amaxlines) {
        if ($sub($ticks,$c.atime($nick,$chan)) < %aaps) {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) alines $pls(1,$c.alines($nick,$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) aaps $pls($sub($ticks,$c.atime($nick,$chan)),$c.aaps($nick,$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) atime $ticks
        }
        else {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) alines 1
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) atime $ticks
          writeini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) aaps 1000
        }
      }
      if ($c.alines($nick,$chan) >= %amaxlines) {
        if (%aban == y) ban $chan $nick 2
        if (%kckmsg.act) kick $chan $nick %kckmsg.act
        else kick $chan $nick  Action Flood ( $+ %amaxlines lines at $rrpt($div($c.aaps($nick,$chan),%amaxlines)) line/s $+ )
        remini $tp( [ [ $chan ] $+ .fld ] ) $rb($nick) alines
      }
    }
  }
}
on @1:JOIN:# {
  if (%joinfld == on) {
    if ((%jck == n) && ($ulevel >= 40)) return
    elseif (($chan isin %jfchans) || (%jfchans == all)) {
      if ($c.joins($mask($addie($nick,$address),2),$chan) == $null) {
        writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) joins 1
        writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) jtime $ticks
        writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) japs 1000
        return
      }
      if ($c.joins($mask($addie($nick,$address),2),$chan) < %maxjoins) {
        if ($sub($ticks,$c.jtime($mask($addie($nick,$address),2),$chan)) < %jps) {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) joins $pls(1,$c.joins($mask($addie($nick,$address),2),$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) japs $pls($sub($ticks,$c.jtime($mask($addie($nick,$address),2),$chan)),$c.japs($mask($addie($nick,$address),2),$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) jtime $ticks
        }
        else {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) joins 1
          writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) jtime $ticks
          writeini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) japs 1000
        }
      }
      if ($c.joins($mask($addie($nick,$address),2),$chan) >= %maxjoins) {
        if (%jban == y) ban $chan $nick 2
        if (%kckmsg.join) kick $chan $nick %kckmsg.join
        else kick $chan $nick Join Flood ( $+ %maxjoins joins at $rrpt($div($c.japs($mask($addie($nick,$address),2),$chan),%maxjoins)) join/s $+ )
        remini $tp( [ [ $chan ] $+ .fld ] ) $mask($addie($nick,$address),2) joins
      }
    }
  }
}
on 1:NICK {
  if (%nickfld == on) {
    if ($address($newnick,1) == $null) return
    elseif ((%nck == n) && ($ulevel >= 40)) return
    elseif ((%knpops == n) && ($newnick isop $comchan($newnick,1))) return
    elseif ($c.nicks($address($newnick,1)) == $null) {
      writeini $tp(chan.txt) $address($newnick,1) nicks 1
      writeini $tp(chan.txt) $address($newnick,1) ntime $ticks
      writeini $tp(chan.txt) $address($newnick,1) naps 1000
      return
    }
    if ($c.nicks($address($newnick,1)) < %maxnicks) {
      if ($sub($ticks,$c.ntime($address($newnick,1))) < %nps) {
        writeini $tp(chan.txt) $address($newnick,1) nicks $pls(1,$c.nicks($address($newnick,1)))
        writeini $tp(chan.txt) $address($newnick,1) naps $pls($sub($ticks,$c.ntime($address($newnick,1))),$c.naps($address($newnick,1)))
        writeini $tp(chan.txt) $address($newnick,1) ntime $ticks
      }
      else {
        writeini $tp(chan.txt) $address($newnick,1) nicks 1
        writeini $tp(chan.txt) $address($newnick,1) ntime $ticks
        writeini $tp(chan.txt) $address($newnick,1) naps 1000
      }
    }
    if ($c.nicks($address($newnick,1)) >= %maxnicks) {
      if (%nban == y) cban $newnick
      if (%kckmsg.nick) ckick $newnick %kckmsg.nick
      else ckick $newnick Nick Food ( $+ %maxnicks nicks at $rrpt($div($c.naps($address($newnick,1)),%maxnicks)) nick/s $+ )
      remini $tp(chan.txt) $address($newnick,1) nicks
    }
  }
}
on @1:DEOP:# {
  if (%mdopfld == on) {
    if ($address($nick,2) == $null) return
    elseif ((%kdops == n) && ($nick isop $chan)) return
    elseif ((%dck == n) && ($level($maddress($address($nick,5))) >= 30)) return
    elseif (($chan isin %dfchans) || (%dfchans == all)) && ($nick != $me) {
      if ($c.deops($address($nick,2),$chan) == $null) {
        writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) deops 1
        writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) dtime $ticks
        writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) daps 1000
        return
      }
      if ($c.deops($address($nick,2),$chan) < %maxdeops) {
        if ($sub($ticks,$c.dtime($address($nick,2),$chan)) < %dps) {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) deops $pls(1,$c.deops($address($nick,2),$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) daps $pls($sub($ticks,$c.dtime($address($nick,2),$chan)),$c.daps($address($nick,2),$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) dtime $ticks
        }
        else {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) deops 1
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) dtime $ticks
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) daps 1000
        }
      }
      if ($c.deops($address($nick,2),$chan) >= %maxdeops) {
        mode $chan -o $nick
        if (%dban == y) ban $chan $nick 2
        if (%kckmsg.deop) kick $chan $nick %kckmsg.deop
        else kick $chan $nick Mass Deop ( $+ %maxdeops deops at $rrpt($div($c.daps($address($nick,2),$chan),%maxdeops)) deop/s $+ )
        remini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) deops
      }
    }
  }
}
on @1:KICK:# {
  if (%kickfld == on) {
    if ($address($nick,2) == $null) return
    elseif ((%kkops == n) && ($nick isop $chan)) return
    elseif ((%dck == n) && ($level($maddress($address($nick,5))) >= 30)) return
    elseif (($chan isin %kfchans) || (%kfchans == all)) && ($nick != $me) && ($knick != $me) {
      if ($c.kicks($address($nick,2),$chan) == $null) {
        writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kicks 1
        writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) ktime $ticks
        writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kaps 1000
        return
      }
      if ($c.kicks($address($nick,2),$chan) < %maxkicks) {
        if ($sub($ticks,$c.ktime($address($nick,2),$chan)) < %kcps) {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kicks $pls(1,$c.kicks($address($nick,2),$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kaps $pls($sub($ticks,$c.ktime($address($nick,2),$chan)),$c.kaps($address($nick,2),$chan))
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) ktime $ticks
        }
        else {
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kicks 1
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) ktime $ticks
          writeini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kaps 1000
        }
      }
      if ($c.kicks($address($nick,2),$chan) >= %maxkicks) {
        if (%kban == y) ban $chan $nick 2
        if (%kckmsg.kick) kick $chan $nick %kckmsg.kick
        else kick $chan $nick Mass Kick ( $+ %maxkicks kicks at $rrpt($div($c.kaps($address($nick,2),$chan),%maxkicks)) kick/s $+ )
        remini $tp( [ [ $chan ] $+ .fld ] ) $address($nick,2) kicks
      }
    }
  }
}
alias c.lines return $readini $tp( [ [ $2 ] $+ .fld ] ) $rb($1) lines
alias c.ltime return $readini $tp( [ [ $2 ] $+ .fld ] ) $rb($1) ltime
alias c.laps return $readini $tp( [ [ $2 ] $+ .fld ] ) $rb($1) laps
alias c.alines return $readini $tp( [ [ $2 ] $+ .fld ] ) $rb($1) alines
alias c.atime return $readini $tp( [ [ $2 ] $+ .fld ] ) $rb($1) atime
alias c.aaps return $readini $tp( [ [ $2 ] $+ .fld ] ) $rb($1) aaps
alias c.joins return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 joins
alias c.jtime return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 jtime
alias c.japs return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 japs
alias c.nicks return $readini $tp(chan.txt) $1 nicks
alias c.ntime return $readini $tp(chan.txt) $1 ntime
alias c.naps return $readini $tp(chan.txt) $1 naps
alias c.deops return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 deops
alias c.dtime return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 dtime
alias c.daps return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 daps
alias c.kicks return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 kicks
alias c.ktime return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 ktime
alias c.kaps return $readini $tp( [ [ $2 ] $+ .fld ] ) $1 kaps
alias caps.caps return $readini $tp( [ [ $1 ] $+ .fld ] ) $2 caps
alias caps.lines return $readini $tp( [ [ $1 ] $+ .fld ] ) $2 lines
alias caps.time return $readini $tp( [ [ $1 ] $+ .fld ] ) $2 time
alias capschn if (($findtok(%capschn,$1,44)) || (%capschn == all)) return $1
alias asii.codes return $readini $tp( [ [ $1 ] $+ .fld ] ) $2 codes
alias asii.lines return $readini $tp( [ [ $1 ] $+ .fld ] ) $2 lines
alias asii.time return $readini $tp( [ [ $1 ] $+ .fld ] ) [ [ $2 ] ] time
alias asichn if (($findtok(%asciichn,$1,44)) || (%asciichn == all)) return $1