544a5e3331
- WARNSify - getopt returns -1 not EOF - select() uses an fd_set, not int/long; modify code to use FD_* et al instead of direct bitwise operations - in otto.c::look (renamed to ottolook() to prevent name clash), the case WEST section had a 'goto cont_east', instead of 'goto cont_west'. (picked up by WARNS=1, because cont_west was an unused label because of this typo). probably meant that otto got lost in the maze :-/ - deprecate register, convert bcmp() -> memcmp()
381 lines
10 KiB
Groff
381 lines
10 KiB
Groff
.\" $NetBSD: hunt.6,v 1.3 1997/10/10 16:32:30 lukem Exp $
|
|
.\"
|
|
.\" hunt
|
|
.\" Copyright (c) 1985 Conrad C. Huang, Gregory S. Couch, Kenneth C.R.C. Arnold
|
|
.\" San Francisco, California
|
|
.\"
|
|
.\" Copyright (c) 1985 Regents of the University of California.
|
|
.\" All rights reserved. The Berkeley software License Agreement
|
|
.\" specifies the terms and conditions for redistribution.
|
|
.\"
|
|
.TH HUNT 6 "21 August 1986"
|
|
.UC 4
|
|
.SH NAME
|
|
hunt \- a multi-player multi-terminal game
|
|
.SH SYNOPSIS
|
|
\fB/usr/games/hunt\fP [ \fB\-qmcsfbS\fP ] [ \fB\-n\fP name ] [ \fB\-t\fP team ] [ \fB\-p\fP port ] [ \fB\-w\fP message ] [ host ]
|
|
.SH DESCRIPTION
|
|
The object of the game
|
|
.I hunt
|
|
is to kill off the other players.
|
|
There are no rooms, no treasures, and no monsters.
|
|
Instead, you wander around a maze, find grenades, trip mines, and shoot down
|
|
walls and players.
|
|
The more players you kill before you die, the better your score is.
|
|
If the
|
|
.B \-m
|
|
flag is given,
|
|
you enter the game as a monitor
|
|
(you can see the action but you cannot play).
|
|
.PP
|
|
.I Hunt
|
|
normally looks for an active game on the local network;
|
|
if none is found, it starts one up on the local host.
|
|
The location of the game may be specified by giving the
|
|
.I host
|
|
argument.
|
|
This presupposes that a hunt game is already running on that host, see
|
|
.IR huntd (6)
|
|
for details on how to setup a game on a specific host.
|
|
If more than one game if found,
|
|
you may pick which game to play in.
|
|
.PP
|
|
If the
|
|
.B \-q
|
|
flag is given,
|
|
.I hunt
|
|
queries the local network (or specific host)
|
|
and reports on all active games found.
|
|
This is useful for shell startup scripts, \fIe.g.\fP csh's .login.
|
|
.PP
|
|
The player name may be specified on the command line by using the
|
|
.B \-n
|
|
option.
|
|
.PP
|
|
The
|
|
.BR \-c ,
|
|
.BR \-s ,
|
|
and
|
|
.B \-f
|
|
options are for entering the game cloaked, scanning, or flying respectively.
|
|
.PP
|
|
The
|
|
.B \-b
|
|
option turns off beeping when you reach the typeahead limit.
|
|
.PP
|
|
The
|
|
.B \-t
|
|
option aids team playing by making everyone else on one's team
|
|
appear as the team name.
|
|
A team name is a single digit to avoid conflicting with other characters
|
|
used in the game.
|
|
.PP
|
|
The
|
|
.B \-p
|
|
.I port
|
|
option allows the rendezvous port number to be set.
|
|
This is a useful way for people playing on dialup lines to avoid playing
|
|
with people on 9600 baud terminals.
|
|
.PP
|
|
The
|
|
.B \-w
|
|
.I message
|
|
option is the only way to send a message to everyone else's screen when
|
|
you start up.
|
|
It is most often used to say ``eat slime death - NickD's coming in''.
|
|
.PP
|
|
When you die and are asked if you wish to re-enter the game,
|
|
there are other answers than just yes or no.
|
|
You can also reply with a
|
|
.B w
|
|
for write a message before continuing or
|
|
.B o
|
|
to change how you enter the game (cloaked, scanning, or flying).
|
|
.PP
|
|
To be notified automatically when a
|
|
.I hunt
|
|
starts up, add your login to the
|
|
.I hunt-players
|
|
mailing list (see
|
|
.IR huntd (6)).
|
|
.SH "PLAYING HINTS"
|
|
.I Hunt
|
|
only works on crt (vdt) terminals with at least 24 lines, 80 columns, and
|
|
cursor addressing.
|
|
The screen is divided in to 3 areas.
|
|
On the right hand side is the status area.
|
|
It shows damage sustained,
|
|
charges remaining,
|
|
who's in the game,
|
|
who's scanning (the
|
|
.B ``*''
|
|
in front of the name),
|
|
who's cloaked (the
|
|
.B ``+''
|
|
in front of the name),
|
|
and other players' scores.
|
|
The rest of the screen is taken up by your map of the maze.
|
|
The 24th line
|
|
is used for longer messages that don't fit in the status area.
|
|
.PP
|
|
.I Hunt
|
|
uses the same keys to move as
|
|
.IR vi (1)
|
|
does,
|
|
.IR i.e. ,
|
|
.BR h ,
|
|
.BR j ,
|
|
.BR k ,
|
|
and
|
|
.B l
|
|
for left, down, up, right respectively.
|
|
To change which direction you're facing in the maze,
|
|
use the upper case version of the movement key (\c
|
|
.IR i.e. ,
|
|
.BR HJKL ).
|
|
You can only fire or throw things in the direction you're facing.
|
|
.TP
|
|
Other commands are:
|
|
.sp
|
|
.nf
|
|
.ta
|
|
.ta \w'>\|<\|^\|v\ \ 'u
|
|
f or 1 \- Fire a bullet (Takes 1 charge)
|
|
g or 2 \- Throw grenade (Takes 9 charges)
|
|
F or 3 \- Throw satchel charge (Takes 25 charges)
|
|
G or 4 \- Throw bomb (Takes 49 charges)
|
|
5 \- Throw big bomb (Takes 81 charges)
|
|
6 \- Throw even bigger bomb (Takes 121 charges)
|
|
7 \- Throw even more big bomb (Takes 169 charges)
|
|
8 \- Throw even more bigger bomb (Takes 225 charges)
|
|
9 \- Throw very big bomb (Takes 289 charges)
|
|
0 \- Throw very, very big bomb (Takes 361 charges)
|
|
@ \- Throw biggest bomb (Takes 441 charges)
|
|
o \- Throw small slime (Takes 15 charges)
|
|
O \- Throw big slime (Takes 30 charges)
|
|
p \- Throw bigger slime (Takes 45 charges)
|
|
P \- Throw biggest slime (Takes 60 charges)
|
|
s \- Scan (show where other players are) (Takes 1 charge)
|
|
c \- Cloak (hide from scanners) (Takes 1 charge)
|
|
|
|
^L \- Redraw screen
|
|
q \- Quit
|
|
.fi
|
|
.TP
|
|
The symbols on the screen are:
|
|
.sp
|
|
.nf
|
|
.ta
|
|
.ta \w'>\|<\|^\|v\ \ 'u
|
|
\-\||\|+ \- walls
|
|
/\|\\ \- diagonal (deflecting) walls
|
|
# \- doors (dispersion walls)
|
|
; \- small mine
|
|
g \- large mine
|
|
: \- bullet
|
|
o \- grenade
|
|
O \- satchel charge
|
|
@ \- bomb
|
|
s \- small slime
|
|
$ \- big slime
|
|
>\|<\|^\|v \- you facing right, left, up, or down
|
|
}\|{\|i\|! \- other players facing right, left, up, or down
|
|
\(** \- explosion
|
|
.ne 3
|
|
.cs R 24
|
|
.cs I 24
|
|
\fR\\|/\fP
|
|
.cs R
|
|
\fI\-\(**\-\fP \- grenade and large mine explosion
|
|
.fl
|
|
.cs R 24
|
|
\fR/|\\\fP
|
|
.cs R
|
|
.cs I
|
|
.fi
|
|
.LP
|
|
Other helpful hints:
|
|
.sp
|
|
.ie n .ds b []
|
|
.el .ds b \(bu
|
|
.ta
|
|
.ta \w'\*b\ \|'u
|
|
.nr In \n(.i
|
|
.de MP
|
|
.br
|
|
.in \n(Inu+\w'\*b\ \|'u
|
|
.ti \n(Inu
|
|
\*b \c
|
|
..
|
|
.MP
|
|
You can only fire in the direction you are facing.
|
|
.MP
|
|
You can only fire three shots in a row, then the gun must cool off.
|
|
.MP
|
|
Shots move 5 times faster than you do.
|
|
.MP
|
|
To stab someone,
|
|
you face that player and move at them.
|
|
.MP
|
|
Stabbing does 2 points worth of damage and shooting does 5 points.
|
|
.MP
|
|
Slime does 5 points of damage each time it hits.
|
|
.MP
|
|
You start with 15 charges and get 5 more every time a player enters
|
|
or re-enters.
|
|
.MP
|
|
Grenade explosions cover a 3 by 3 area, each larger bomb cover a
|
|
correspondingly larger area (ranging from 5 by 5 to 21 by 21).
|
|
All explosions are centered around the square the shot hits and
|
|
do the most damage in the center.
|
|
.MP
|
|
Slime affects all squares it oozes over.
|
|
The number of squares is equal to the number of charges used.
|
|
.MP
|
|
One small mine and one large mine is placed in the maze for every new player.
|
|
A mine has a 2% probability of tripping when you walk forward on to it;
|
|
50% when going sideways;
|
|
95% when backing up.
|
|
Tripping a mine costs you 5 points or 10 points respectively.
|
|
Defusing a mine is worth 1 charge or 9 charges respectively.
|
|
.MP
|
|
You cannot see behind you.
|
|
.MP
|
|
Cloaking consumes 1 ammo charge per 20 of your moves.
|
|
.MP
|
|
Scanning consumes 1 ammo charge per (20 \(mu the number of players)
|
|
of other player moves.
|
|
.MP
|
|
Turning on cloaking turns off scanning \(em turning on scanning turns off
|
|
cloaking.
|
|
.MP
|
|
When you kill someone,
|
|
you get 2 more damage capacity points and 2 damage points get taken away.
|
|
.MP
|
|
Maximum typeahead is 5 characters.
|
|
.MP
|
|
A shot destroys normal (\c
|
|
.IR i.e.,
|
|
non-diagonal, non-door) walls.
|
|
.MP
|
|
Diagonal walls deflect shots and change orientation.
|
|
.MP
|
|
Doors disperse shots in random directions (up, down, left, right).
|
|
.MP
|
|
Diagonal walls and doors cannot be destroyed by direct shots but may
|
|
be destroyed by an adjacent grenade explosion.
|
|
.MP
|
|
Slime goes around walls, not through them.
|
|
.MP
|
|
Walls regenerate, reappearing in the order they were destroyed.
|
|
One percent of the regenerated walls will be diagonal walls or doors.
|
|
When a wall is generated directly beneath a player, he is thrown in
|
|
a random direction for a random period of time. When he lands, he
|
|
sustains damage (up to 20 percent of the amount of damage already
|
|
sustained);
|
|
.IR i.e. ,
|
|
the less damage he had, the more nimble he is and
|
|
therefore less likely to hurt himself on landing.
|
|
.\"MP
|
|
.\"There is a volcano close to the center of the maze which goes off
|
|
.\"close to every 30 deaths.
|
|
.MP
|
|
Every 30 deaths or so, a
|
|
.B ``?''
|
|
will appear.
|
|
It is a wandering bomb which will explode when it hits someone, or
|
|
when it is slimed.
|
|
.MP
|
|
If no one moves, everything stands still.
|
|
.MP
|
|
The environment variable
|
|
.B HUNT
|
|
is checked to get the player name.
|
|
If you don't have this variable set,
|
|
.I hunt
|
|
will ask you what name you want to play under.
|
|
If you wish to set other options than just your name,
|
|
you can enumerate the options as follows:
|
|
.br
|
|
.ti +1i
|
|
setenv HUNT "name=Sneaky,team=1,cloak,mapkey=zoFfGg1f2g3F4G"
|
|
.br
|
|
sets the player name to Sneaky,
|
|
sets the team to one,
|
|
sets the enter game attribute to cloaked,
|
|
and the maps \fBz\fP to \fBo\fP, \fBF\fP to \fBf\fP, \fBG\fP to \fBg\fP,
|
|
\fB1\fP to \fBf\fP,
|
|
\fB2\fP to \fBg\fP, \fB3\fP to \fBF\fP, and \fB4\fP to \fBG\fP.
|
|
The \fImapkey\fP option must be last.
|
|
Other options are: scan, fly, nobeep, port=string, host=string,
|
|
and message=string \(em which correspond to the command line options.
|
|
String options cannot contain commas since commas
|
|
are used to separate options.
|
|
.MP
|
|
It's a boring game if you're the only one playing.
|
|
.PP
|
|
Your score is the decayed average of the ratio of number of kills to number
|
|
of times you entered the game and is only kept for the duration
|
|
of a single session of \fIhunt\fP.
|
|
.PP
|
|
.I Hunt
|
|
normally drives up the load average to be approximately
|
|
(number_of_players + 0.5) greater than it would be without a
|
|
.I hunt
|
|
game executing.
|
|
.SH STATISTICS
|
|
The
|
|
.B \-S
|
|
option fetches the current game statistics.
|
|
The meaning of the column headings are as follows:
|
|
.I score
|
|
\(em the player's last score;
|
|
.I ducked
|
|
\(em
|
|
how many shots a player ducked;
|
|
.I absorb
|
|
\(em how many shots a player absorbed;
|
|
.I faced
|
|
\(em how many shots were fired at player's face;
|
|
.I shot
|
|
\(em how many shots were fired at player;
|
|
.I robbed
|
|
\(em how many of player's shots were absorbed;
|
|
.I missed
|
|
\(em how many of player's shots were ducked;
|
|
.I slimeK
|
|
\(em how many slime kills player had;
|
|
.I enemy
|
|
\(em how many enemies were killed;
|
|
.I friend
|
|
\(em how many friends were killed (self and same team);
|
|
.I deaths
|
|
\(em how many times player died;
|
|
.I still
|
|
\(em how many times player died without typing in any commands;
|
|
.I saved
|
|
\(em how many times a shot/bomb would have killed player if he hadn't
|
|
ducked or absorbed it.
|
|
.SH FILES
|
|
.nf
|
|
.ta
|
|
.ta \w'/usr/games/huntd\ \ \ 'u
|
|
/usr/games/huntd game coordinator
|
|
.DT
|
|
.fi
|
|
.SH "SEE ALSO"
|
|
huntd(6)
|
|
.SH AUTHORS
|
|
Conrad Huang, Ken Arnold, and Greg Couch;
|
|
.br
|
|
University of California, San Francisco, Computer Graphics Lab
|
|
.SH ACKNOWLEDGEMENTS
|
|
We thank Don Kneller,
|
|
John Thomason, Eric Pettersen, Mark Day,
|
|
and Scott Weiner for providing
|
|
endless hours of play-testing to improve the character of the game.
|
|
We hope their significant others will forgive them;
|
|
we certainly don't.
|
|
.SH BUGS
|
|
To keep up the pace, not everything is as realistic as possible.
|