; ; Revolving door kicker ; v0.01 ; For use with mIRC 6.3+ (will probably work in 6.0+) ; Written by Bekar (EFNet @#mIRC) 2007-10-22 ; For support, or bug reporting, please email: mirc@bekar.id.au ; ON *:START: { rdkInit } ON *:LOAD: { rdkInit } ON *:CONNECT: { if ($hget($hName)) { hfree $hName } hmake $hName 20 } ON *:EXIT: { hsave rdk.Settings $lscript(settings) } alias -l hName { return rdk. $+ $cid } alias -l lscript { var %settings = Interval,BanInterval,BanMask,Part,Lines if ($1 == settings) { return $scriptdir\rdk.hsh } elseif ($istok(%settings, $1, 44)) { return $hget(rdk.Settings, $1) } elseif ($1 == Mask) { if ($2) { return $gettok($mask($2, $hget(rdk.Settings, $1)), 2, 33) } return $hget(rdk.Settings, $1) } else { return 6[2A-Thingy6] } } alias -l rdkInit { if ($exists($lscript(settings))) { hload rdk.Settings $lscript(settings) } else { hmake rdk.Settings hadd rdk.Settings Lines 0 hadd rdk.Settings Mask 0 hadd rdk.Settings Part 3 hadd rdk.Settings Interval 300 hadd rdk.Settings BanMask 2 hadd rdk.Settings BanInterval 3600 } } alias -l rdkAct { var %string, %rd = 0, %lc = 0, %mask = $+($$2, ., $lscript(Mask, $$1)) if ($hget($hName, %mask)) { %string = $v1 %rd = $gettok(%string, 1, 58) %lc = $gettok(%string, 2, 58) } %rd = $calc(%rd + $iif($$3 == part, 1, 0)) %lc = $calc(%lc + $iif($$3 == line, 1, 0)) hadd -u $+ $lscript(Interval) $hName %mask $+(%rd, :, %lc) if (%lc <= $lscript(Lines) && %rd >= $lscript(Part)) { return $true } return $false } alias -l rdkClear { var %mask = $+($$2, ., $lscript(Mask, $$1)) hdel $hName %mask } ON @*:TEXT:#: { rdkAct $fulladdress $chan line } ON @*:ACTION:#: { rdkAct $fulladdress $chan line } ON @*:PART:*: { if ($rdkAct($fulladdress, $chan, part)) { ; do ban ban -u3 $+ $lscript(BanInterval) $chan $nick $lscript(BanMask) rdkClear $fulladdress $chan } } ON *:QUIT: { var %chans = $comchan($nick, 0), %chan while (%chans > 0) { %chan = $comchan($nick, %chans) if ($me isop %chan) { if ($rdkAct($fulladdress, %chan, part)) { ban -u $+ $lscript(BanInterval) %chan $nick $lscript(BanMask) rdkClear $fulladdress %chan } } dec %chans } }