ON @*:TEXT:*:#:{ if ($calc($len($strip($1-)) / $len($1-)) > 0.1) { checkflood ctrl-flood $chan $wildsite 3:10 if ($result) { if ($istok( %KickPending. [ $+ [ $chan ] ] , $nick, 32) == $false) { set -u45 %KickPending. $+ $chan $addtok( %KickPending. [ $+ [ $chan ] ] , $nick, 32) .raw MODE $chan +b $wildsite $cr KICK $chan $nick :Caps flood: $result } } } } on *:KICK:#:{ if ($istok( %KickPending. [ $+ [ $chan ] ] , $knick, 32)) { set -u45 %KickPending. [ $+ [ $chan ] ] $remtok(%KickPending. [ $+ [ $chan ] ] , $knick, 1, 32) } } alias checkflood { ;# $checkflood(type, target, host, maxrate) var %Lines = $gettok($4, 1, 58) var %Seconds = $gettok($4, 2, 58) var %Data = %Flood. [ $+ [ [ $1 ] $+ . $+ [ $2 ] $+ . $+ [ $3 ] ] ] var %Expire = $calc($ticks - (%Seconds * 1000)) while ($gettok(%Data, 1, 44) < %Expire) { set %Data $gettok(%Data, 2-, 44) } set %Data $addtok(%Data, $ticks, 44) set -u [ $+ [ %Seconds ] ] %Flood. $+ [ $1 ] $+ . $+ [ $2 ] $+ . $+ [ $3 ] %Data if ($numtok(%Data, 44) >= %Lines) { return $numtok(%Data, 44) $+ : $+ $int($calc(($ticks - $gettok(%Data, 1, 44)) / 1000)) } else { return 0 } }