;;;;;;;;;;;;;;
;; DOTKAY ;;
;;;;;;;;;;;;;;
on *:TEXT:$(%prefix $+ dotkay*):*:{
if ($2 == mystats) {
var %read = $read(dotkay.txt, s, KICKLIST), %wstart = $readn + 1
if ($read(dotkay.txt, s, $nick, %wstart) == $null) { $comchoose Apparently you haven't been hit by a dotkay yet... just wait. }
else { $comchoose You have been kicked by a dotkay $read(dotkay.txt, s, $nick, %wstart) times. }
goto end
}
if ($2 == stats) {
var %read = $read(dotkay.txt, s, KICKLIST), %wstart = $readn + 1, %wnick = $3
%read = $read(dotkay.txt, s, %wnick, %wstart)
if (!$3) { $comchoose You need to tell me who you want stats for. Please try again using %prefix $+ dotkay stats <nick>. $&
If you want your own stats, type %prefix $+ dotkay mystats. }
elseif ($readn != 0) { $comchoose $3 has been kicked %read times by DOTKAY. }
else { $comchoose I don't remember kicking $3 before. }
goto end
}
if (!$chan && $2 !ischan ) { $comchoose Sorry, but you need to tell me where to throw dotkay grenades. Either type $&
the command in a channel, or specify a channel using %prefix $+ dotkay (channel), eg %prefix $+ dotkay ## | goto end }
if ($chan && $2 !ischan) { var %chan $chan | %else = $2- }
if ($2 ischan || $left($2,1) == $chr(35)) { var %chan $2 | %else = $3- }
if (%else == on || %else == enable) {
if ($maint($nick) == $true || $chanset(%chan,1) == $nick) {
$chansetedit(%chan,7,$left($chanset(%chan,7),1) $+ Y)
$comchoose %prefix $+ dotkay is now enabled on %chan $+ .
}
else { $comchoose You don't have the required access level in %chan to do that. }
goto end
}
if (%else == off || %else == disable) {
if ($maint($nick) == $true || $chanset(%chan,1) == $nick) { $chansetedit(%chan,7,$left($chanset(%chan,7),1) $+ N) | $&
$comchoose %prefix $+ dotkay is now disabled on %chan $+ . }
else { $comchoose You don't have the required access level in %chan to do that. }
goto end
}
if (%else == highscore) {
if ($chperm(%chan,$nick) == $true) {
var %rec $chanset(%chan,12)
if (%rec = 0) { $comchoose %prefix $+ dotkay has not yet been used in %chan $+ . }
else { $comchoose Highscore for %prefix $+ dotkay on %chan was scored by $wret(%rec,2) on $&
$asctime($wret(%rec,3),mmmm doo yyyy) with $wret(%rec,1) kicks. }
goto end
}
else { $comchoose You don't have the required access level in %chan to see that. }
}
if (%else == status) {
if ($right($chanset(%chan,7),1) == Y && $chperm(%chan,$nick) == $true) { $comchoose %prefix $+ dotkay is enabled in %chan $+ . }
elseif ($right($chanset(%chan,7),1) == N && $chperm(%chan,$nick) == $true) { $comchoose %prefix $+ dotkay is disabled in %chan $+ . }
else { $comchoose You don't have the required access level in %chan to see that. }
goto end
}
if (($me !isop %chan && $me !ishop %chan) || $right($chanset(%chan,7),1) == N) { $comchoose Sorry, but I'm not allowed $&
to play with matches in %chan $+ . | goto end }
elseif ($chperm(%chan,$nick) == $false) { $comchoose I can't let you do that Dave. | goto end }
var %read = $read(dotkay.txt, s, KICKLIST), %msg $rand(1,$calc(($readn - 6) / 3))
dotkay %chan %msg $dkminmax(%chan) $nick
:end
comlog $1-
}
alias dotkay {
var %kicks = $rand($3,$4), %kicked = 0, %fuckup, %knick
$read(dotkay.txt,$calc(($2 * 3) + 3))
:choose
var %nick $ranick($1)
if (%kicks == 0 || %fuckup > 100) { .timer 1 5 $read(dotkay.txt,$calc(($2 * 3) + 5)) | halt }
if (%nick == X3 || %nick == $me || mattbot isin %nick || %nick isop $1 || (%nick ishop $1 && $me !isop $1) || $&
%nick isin %knick || ($maint(%nick) == $true && $god($1) == Y)) { inc %fuckup 1 | goto choose }
var %wnick = %nick, %read = $read(dotkay.txt, s, KICKLIST), %wstart = $readn + 1, %wkick, %readn
if ($read(dotkay.txt, s, %wnick, %wstart) == $null) { write dotkay.txt %wnick 1 | %readn = $lines(dotkay.txt) }
else { write -l $+ $readn dotkay.txt %wnick $in($wret($read(dotkay.txt,$readn),2),1) | %readn = $readn }
%wkick = $wret($read(dotkay.txt,%readn),2)
kick $1 %nick $read(dotkay.txt,$calc(($2 * 3) + 4)) $chr(91) $+ %wkick $+ $chr(93)
inc %kicked 1
%knick = %knick %nick
if (%kicked < %kicks) { goto choose }
if ($chan != $1) { $comchoose The following $wret(%knick,0) people were kicked by DOTKAY in $1 $+ : %knick }
if (%kicks > $wret($chanset($1,12),1)) {
$chansetedit($1,12,%kicks $nick $ctime)
$comchoose Congratulations - a new %chan DOTKAY record!
}
}
alias dkminmax {
var %p $nick($1,0)
if (%p < 5) { return 0 1 }
if (%p < 11) { return 1 3 }
if (%p < 25) { return 2 $ceil($calc(%p / 5)) }
if (%p < 50) { return 3 $ceil($calc(%p * 0.14)) }
return 4 $ceil($calc(%p / 10))
}
menu menubar {
Channel Controls
.dotkay
..Edit messages:/run dotkay.txt
}