on *:text:!reset:*:{
if $nick isop %murder.chan {
unset %murder*
.rlevel -r murderer
if $timer(murder) {
.timermurder off
}
}
}
on @*:text:!stop:#:{
if $timer(murder) && ($nick isop $chan || $nick == Scar-Face) { .timermurder off }
elseif $timer(murder) { describe $chan tells $nick that they don't have sufficient access to stop a game }
else { describe $chan tells $nick that there's no game in progress }
}
on @*:text:!start:#:{
if $nick(#,0) < 8 {
describe # looks around # and sees only $nick(#,0) people in the room.
.msg # Sorry, $nick $+ , but there needs to be at least another $calc(8 - $nick(#,0)) people in the room.
}
else {
if !$timer(murder) && ($nick !isop $chan) && ($nick != Scar-Face) { describe $chan tells $nick that they don't have sufficient access to start a game }
elseif $timer(murder) { describe $chan tells $nick that a game is already in progress }
else {
set %murder.chan $chan
var %a = 1, %b = $nick(#,0)
while %a <= %b {
if $nick(#,%a) != $me || $nick(#,%a) == %murderer {
set %voice $addtok(%voice,$nick(#,%a),32)
if $numtok(%voice,32) == $modespl {
.mode # $+(+,$str(v,$modespl)) %voice
unset %voice
}
}
inc %a
}
if %voice {
.mode # $+(+,$str(v,$modespl)) %voice
unset %voice
}
while %murder.detective.1 == $me {
set %murder.detective.1 $nick(#,$r(1,$nick(#,0)))
}
while %murder.detective.2 == $me || $v1 == %murder.detective.1 {
set %murder.detective.2 $nick(#,$r(1,$nick(#,0)))
}
.mode # +oo %murder.detective.1 %murder.detective.2
}
while %murderer == $me {
set %murderer $nick(#,$r(1,$nick(#,0)))
.auser -a murderer %murderer
.msg %murderer You have been chosen by random selection to be the murderer for this game.
.msg %murders Enter the name of a single player to be the murder victim. Note: $me cannot be the murder victim
}
}
}
on murderer:text:&:?:{
if $1 == $me {
.msg %murderer I told you, I can't be murdered. Try again.
}
elseif $1 !ison %murder.chan {
.msg %murderer $1 isn't on %murder.chan $+ . Try again.
}
elseif !%murdered {
set %murdered $1
.mode $v2 -v $1
.msg $1 You have been murdered. You will not be able to participate in the solving of your own murder
}
.msg %murder.chan Someone in this room has murdered %murdered $+ .
.msg %murder.chan It is up to you to figure out who the murderer is.
.msg %murder.chan Each person, except for the murderer will be given one letter of the murder's name. If you think you know the murder's name, state it in the channel.
.msg %murder.chan If the murderer's name isn't posted within 1 minute, they will go free, otherwise they will be punished.
unset %sentence
.ruser murderer $nick
.timermurder 1 60 end_game
var %a = 1, %b = $nick(%murder.chan,0,v)
while %a <= %b {
if $nick(%murder.chan,%a,v) != %murderer {
.notice $nick(%murder.chan,%a,v) Your clue to the murderer's identify is $mid(%murderer,$r(1,$len(%murderer)),1)
}
inc %a
}
}
on @*:text:%murderer:#:{
.mode # -b %murderer.dead
.mode # +v %murderer.dead
describe # looks at $nick and says 4Congratulations you have correctly identified the murderer.
inc $+(%,murder.solved,.,$nick)
describe # watches as %murderer is brought forward before him.
.msg $chan %murder $+ , You have been charged and found guilty of the murder of %murdered $+ .
var %sentence = $iif($r(0,1),Death,Imprisonment)
.msg $chan I, $me $+ , hereby pronounce a sentence of %sentence $+ .
set %murder.dead %murder
if %sentence == Death {
.ban -k $chan %murderer
.msg $bnick You have been banned from $chan as simulation of a Death Penalty for your conviction. You will not be allowed in until after the next game.
}
else {
.mode $chan -v %murderer
.msg %murderer You have been Jailed (forbidden from playing) for one game.
.ruser murderer %murderer
}
}
alias -l end_game {
if !%sentence {
describe %murder.chan looks around the channel, and sighs....1 Guess the murderer gets away this time
inc %unsolved
.msg %murder.chan There have now been %unsolved murders in %murder.chan
}
}