All pastes #1560894 Raw Edit

A bit of Help please

public text v1 · immutable
#1560894 ·published 2009-09-10 09:48 UTC
rendered paste body
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
  }
}