on *:TEXT:*:#c5test: { if ($1 == !c5join) && ($numtok($hget(Cop5,Players),32) < 5) && (!$istok($hget(Cop5,Players),$nick,32)) { hadd -m Cop5 Players $hget(Cop5,Players) $nick mode #c5test +v $nick msg #c5test $nick has joined c5. } if ($1 == !c5quit) && ($istok($hget(Cop5,Players),$nick,32)) && (!%c5act) { hadd -m Cop5 Players $remove($hget(Cop5,Players),$nick) mode #c5test -v $nick msg #c5test $nick has quit c5. } if ($1 == !c5reset) { endgame } if ($1 == !c5players) { msg #c5test Current/Living players: $hget(Cop5,Players) } if ($numtok($hget(Cop5,Players),32) == 5) && (!%c5act) { set %c5act 1 mode #c5test +m hadd -m Cop5 Roles Wolf Sane Insane Paranoid Naive roles } if (%c5act) { if ($1 == vote) && ($istok($hget(Cop5,Players),$nick,32)) && (!$istok($hget(Cop5,Voted),$nick,32)) && (%c5 == Day) { if ($istok($hget(Cop5,Players),$2,32)) || ($2 == NoLynch) { hinc -m Votes $2 hinc -m Cop5 Votes hadd -m Cop5 Voted $hget(Cop5,Voted) $nick msg #c5test $nick has voted for $2 if ($hget(Cop5,Votes) == $hget(C5,0).item) { votes } } } } } on *:TEXT:*:?: { if ($istok($hget(Cop5,Players),$nick,32)) { if ($hget(C5,$nick) == Wolf) && ($istok(Night1 Night2,%c5,32)) { if ($1 == kill) && ($istok($hget(Cop5,Players),$2,32)) { if ($2 == $nick) { msg $nick You cannot kill yourself. | halt } hadd -m Actions Wolf $2 } } Else { if ($1 == inspect) && ($istok($hget(Cop5,Players),$2,32)) && ($istok(Night0 Night1 Night2,%c5,32)) { if ($2 == $nick) { msg $nick You cannot inspect yourself. | halt } var %p1 $hget(C5,$nick) var %p2 $hget(C5,$2) if (%p1 == Paranoid) { var %r BAD. } if (%p1 == Naive) { var %r GOOD. } if (%p1 == Sane) { if (%p2 == Wolf) { var %r BAD. } else { var %r GOOD. } } if (%p1 == Insane) { if (%p2 == Wolf) { var %r GOOD. } else { var %r BAD. } } hadd -m Actions %p1 $2 is %r } if (%c5 == Night0) && ($hget(Actions,0).item == 4) { actions } } if ($hget(Actions,0).item == $hget(C5,0).item) { actions } } } alias roles { var %x $hget(Cop5,Roles) var %y $hget(Cop5,Players) while (%x) { var %r $random(%x) var %p $random(%y) hadd -m C5 %p %r if (%r == Wolf) { msg %p You are the wolf. You can kill after night 0. Message me with 'kill nick' after N0. } var %x $remtok(%x,%r,1,32) var %y $remtok(%y,%p,1,32) } msg #c5test Roles are out. If you didn't receive a PM then you are an inspector. Message me with 'inspect nick'. set %c5 Night0 msg #c5test It is now %c5 $+ . } alias actions { if (%c5 != Night0) { var %x $hget(Actions,Wolf) var %y $hget(C5,%x) hadd -m Cop5 Players $remtok($hget(Cop5,Players),%x,32) hadd -m Cop5 Roles $remtok($hget(Cop5,Roles),%y,32) hdel C5 %x hdel Actions %y msg $hfind(C5,Wolf).data %x has been killed. 10 seconds until inspection PMs are sent out. set %c5death %x } timer 1 10 actionpms } alias actionpms { var %x 1 while (%x <= $hget(C5,0).item) { if ($hget(C5,%x).data != Wolf) { msg $hget(C5,%x).item $hget(Actions,$hget(C5,%x).data) } inc %x } hdel -w Actions * if (%c5 == Night0) { set %c5next Night1 } elseif (%c5 == Night1) { set %c5next Night2 } set %c5 Day msg #c5test PMs are out. Day start. Type 'vote nick' to lynch someone or 'vote NoLynch' to skip the day's lynch. You only get to vote once, so think about it. if (%c5death) { msg #c5test $+(,%c5death,) has died. Players still alive are: $hget(Cop5,Players) | mode #c5test -v %c5death } } alias votes { var %x 1 while (%x <= $hget(Votes,0).item) { var %y $hget(Votes,%x).data if (!%z) { var %z %y } elseif (%y > %z) { var %z %y } elseif (%y == %z) { var %a %z } inc %x } if (%z == %a) { msg #c5test Tie. No one will be lynched. } else { var %q $hfind(Votes,%z).data if (%q == NoLynch) { msg #c5test No one will be lynched. } else { var %x %q var %y $hget(C5,%x) hadd -m Cop5 Players $remtok($hget(Cop5,Players),%x,32) hadd -m Cop5 Roles $remtok($hget(Cop5,Roles),%y,32) hdel C5 %x if (%y == Wolf) { msg #c5test The wolf has been lynched, congratulations inspectors! | mode #c5test -v %y | endgame | halt } Else { msg #c5test $+(,%x,)has been lynched. | mode #c5test -v %x } } } hdel -w Votes * hdel Cop5 Votes hdel Cop5 Voted set %c5 %c5next if ($hget(C5,0).item == 2) || ($hget(C5,0).item == 3) { if (%c5 == Night2) { msg #c5test AWOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO! Congratulations Werewolf! | endgame | halt } } msg #c5test It is now %c5 $+ . } alias endgame { mode #c5test $+(-,$str(v,$numtok($hget(Cop5,Players),32))) $hget(Cop5,Players) mode #c5test -m hfree Actions hfree C5 hfree Cop5 hfree Votes unset %c5 %c5next %c5act %c5death } alias random { return $gettok($$1-,$r(1,$0),32) } }