rendered paste bodyalias hc1 { return 12 }
alias hc2 { return 4 }
on *:Text:!*:#:{ if ($chan == #pc-hq) { halt
}
else {
do.hang $1- } }
on *:Input:#:{
if ((.* iswm $1) || (!* iswm $1)) { do.hang ! $+ $right($1-,-1) } }
alias do.hang {
if (($1 == !hangman) && (!$hget(hangman))) {
set %hangman [ $+ [ $chan ] ] on
hmake hangman 10
set %hangmanword [ $+ [ $chan ] ] $read(hangman.txt)
hadd hangman word %hangmanword [ $+ [ $chan ] ]
hadd hangman chan $chan
hadd hangman man $iif($2 ison $chan, $2, $nick($chan, $rand(1,$nick($chan,0))))
echo 1-12 Game:4 Hangman 1- Channel:4 $chan 1- 12Answer:4 %hangmanword [ $+ [ $chan ] ] 1-
hmsg $msg.hang.start
}
if ($1 == !shangman) {
if (%hangman [ $+ [ $chan ] ] == on) {
hfree hangman
set %hangman [ $+ [ $chan ] ] off
unset %hangmanword [ $+ [ $chan ] ]
msg $chan 12Hangman game has been stopped in4 $chan 12by4 $nick $+ 12.
}
else {
msg $chan 12There is not a current hangman game on. Type "4!hangman12" to start one.
} }
if ($1 == !answer) {
if ($2- == %hangmanword [ $+ [ $chan ] ]) {
msg $chan 12Good job4 $nick $+ 12! You have just saved4 $hget(hangman,man) 12by guessing the correct word.7 Answer:1 (4 %hangmanword [ $+ [ $chan ] ] 1)
hfree hangman
set %hangman [ $+ [ $chan ] ] off
unset %hangmanword [ $+ [ $chan ] ]
halt
}
else { msg $chan 12Sorry4 $nick $+ 12, but that is not the correct answer.
} }
if (!$hget(hangman)) { return }
if ($1 == !hang) {
if (%hangman [ $+ [ $chan ] ] == on) {
if (($2 !isalpha) || ($len($2) != 1)) {
hmsg $hc1 $+ $+ You gotta pick a letter moron.
return
}
elseif (%hangman [ $+ [ $chan ] ] == off) {
msg # 12There is no hangman game currently on. Type: "4!hangman12" to start one.
}
elseif ($hget(hangman,Picked. $+ $2)) {
hmsg $hc1 $+ $+ Idiot... Try picking a letter that somebody else hasn't picked.
return
}
else {
hadd hangman Picked. $+ $2 1
if ($2 isin $hget(hangman,word)) {
hmsg $msg.hang.right
hang.checkwin
}
else {
var %hang.part = $hang.part
hmsg $msg.hang.wrong(%hang.part)
hmsg $msg.hang.answerc
}
}
}
} }
alias hang.part {
hadd hangman wrong $calc($hget(hangman, wrong) + 1)
if ($hang.partname($hget(hangman, wrong)) == hanging) {
hmsg $msg.hang.dead
hfree hangman
set %hangman [ $+ [ $chan ] ] off
unset %hangmanword [ $+ [ $chan ] ]
halt
}
return $hang.partname($hget(hangman, wrong))
}
alias hang.checkwin {
if ($hang.got != $hget(hangman,word)) { return }
hmsg $msg.hang.save
hfree hangman
set %hangman [ $+ [ $chan ] ] off
unset %hangmanword [ $+ [ $chan ] ]
halt
}
alias hang.partname { return $gettok(a head;a neck;torso;arms;hands;legs;feet;hanging, $1, $asc(;)) }
alias hang.got {
var %i = 1,%hang.got = $hget(hangman, word)
unset %hang.left
while (%i <= 26) {
if (!$hget(hangman, Picked. $+ $chr($calc(96 + %i)))) {
%hang.got = $replace(%hang.got, $chr($calc(96 + %i)), @)
set -u120 %hang.left %hang.left $+ $chr($calc(96 + %i))
}
inc %i
}
return %hang.got
}
alias hmsg { msg $$hget(hangman,chan) $1- }
alias msg.hang.clue { return $hc1 $+ Current clue: $hc2 $+ $hang.got $hc1 $+ Letters remaining: $hc2 $+ %hang.left }
alias msg.hang.save { return $hc2 $+ $+ $hget(hangman,man) $+ $hc1 is saved! You're the best channelmates a person could want. }
alias msg.hang.dead { return $hc2 $+ $+ $hget(hangman,man) $+ $hc1 is DEAD! You all suck. Word: $hc2 $+ $hget(hangman,word) }
alias msg.hang.wrong { return $hc1 $+ $+ Smooth gimp! One step closer to dead. You just got $hc2 $+ $hget(hangman, man) $+ $hc1 $+ : $+ $hc2 $1 $+ $hc1 $+ ! $msg.hang.clue }
alias msg.hang.answerc { return 12You can use "4!answer Word(s)12" to guess the word(s) straight off. }
alias msg.hang.right { return $hc1 $+ $+ Well done, $hc2 $+ $nick $+ $hc1 $+ ! You picked a winning letter. $msg.hang.clue }
alias msg.hang.start { return $hc1 $+ $+ Get ready for some hangman... We are hanging $hc2 $+ $hget(hangman,man) $+ $hc1 $+ , unless you can prevent it. $hc2 $+ !hang <letter> $+ $hc1 to guess a letter. $msg.hang.clue }