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