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 } }