on *:INPUT:*:{
if (/* !iswm $1) {
if ($active == status window) { haltdef | echo -s $+(<,$me,>) $1- }
if (%trivia.status == on) {
if (%trivia.answer == $strip($1-)) trivia.win $ifmatch
elseif ($1 == !hint) trivia.echo Second Hint: $hint(%trivia.answer).2
elseif ($1 == !!hint) trivia.echo Third Hint: $hint(%trivia.answer).3
}
}
}
alias trivia.echo { echo -s 04<Trivia> 10 $+ $1- }
alias trivia.win {
var %time = $calc(($ticks - %trivia.ticks) / 1000)
var %wpm = $ceil($calc(($len(%trivia.answer) / %time) * 12))
inc %trivia.streak
trivia.echo << $me >> found the right answer << %trivia.answer >> in %time seconds, and average WPM of %wpm
trivia.echo $me has won %trivia.streak times in a row
trivia.nextQ
}
alias trivia.nextQ {
%trivia.status = off
.timertrivia.failQ off
.timertrivia.askQ 1 %trivia.interval trivia.askQ
trivia.echo Next question coming in %trivia.interval seconds, get ready!
trivia.echo $chr(160)
}
alias trivia.failQ {
%trivia.streak = 0
trivia.echo You didn't find the right answer: %trivia.answer
trivia.nextQ
}
alias trivia.askQ {
:begin
var %data = $read(%trivia.questions)
var %number = $readn
if ($istok(%trivia.repeat,%number,46)) goto begin
%trivia.repeat = $addtok(%trivia.repeat,%number,46)
if ($numtok(%trivia.repeat,46) > %trivia.rep) %trivia.repeat = $deltok(%trivia.repeat,1,46)
tokenize 126 %data
%trivia.status = on
%trivia.answer = $2
%trivia.ticks = $ticks
.timertrivia.failQ 1 %trivia.avaltime trivia.failQ
trivia.echo Question $chr(35) $+ %number - $1 ?
trivia.echo First hint: $hint($2).1
trivia.echo $chr(160)
}
alias hint {
if ($prop == 1) {
var %t = $chr(42)
return $lower($replace($1-,a,%t,b,%t,c,%t,d,%t,e,%t,f,%t,g,%t,h,%t,i,%t,j,%t,k,%t,l,%t,m,%t,n,%t,o,%t,p,%t,q,%t,r,%t,s,%t,t,%t,u,%t,v,%t,w,%t,x,%t,y,%t,z,%t,0,%t,1,%t,2,%t,3,%t,4,%t,5,%t,6,%t,7,%t,8,%t,9,%t))
}
elseif ($prop == 2) {
var %t = $chr(42)
return $lower($replace($1-,b,%t,c,%t,d,%t,f,%t,g,%t,h,%t,k,%t,l,%t,m,%t,n,%t,p,%t,q,%t,r,%t,s,%t,t,%t,v,%t,w,%t,x,%t,y,%t,z,%t,1,%t,2,%t,3,%t,4,%t,5,%t,6,%t,7,%t,8,%t,9,%t))
}
elseif ($prop == 3) {
tokenize 32 $1-
var %x = 1
var %word, %newword, %comma, %hint
while (%x <= $0) {
%word = $ [ $+ [ %x ] ]
if ($right(%word,1) == $chr(44)) { %comma = $ifmatch | %word = $left(%word,-1) }
while ($len(%word)) {
if ($rand(1,2) == 1) %newword = $right(%word,1) $+ %newword
else %newword = %newword $+ $right(%word,1)
%word = $left(%word,-1)
}
%hint = %hint %newword $+ %comma
%newword = $null
%comma = $null
inc %x
}
return $lower(%hint)
}
}
alias trivia.load {
set %trivia.questions $+(",$scriptdir,questions.txt,")
set %trivia.rep 5
set %trivia.status off
set %trivia.avaltime 60
set %trivia.interval 10
.timertrivia.askQ 1 10 trivia.askQ
trivia.echo Trivia starting in 10 seconds, get ready!
}
alias trivia.unload {
unset %trivia.*
.timertrivia.* off
trivia.echo Trivia has been fully stopped. Type /trivia.load to start it back up.
}