Initial revision

git-svn-id: file:///srv/svn/joey/bsdgames-trunk@5123 a4a2c43b-8ac3-0310-8836-e0e880c912e2
This commit is contained in:
joey
2000-04-19 20:02:59 +00:00
parent 664be3d893
commit 1a1e2c92f0
9 changed files with 1252 additions and 0 deletions

62
hack/Makefrag Normal file
View File

@@ -0,0 +1,62 @@
# Makefrag - makefile fragment for hack
#
# Copyright (c) 2000 Joseph Samuel Myers.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
hack_DIRS := $(GAMESDIR) $(MAN6DIR)
hack_CLEANFILES := hack.onames.h
hack_all: hack/hack hack/hack.6
hack/hack.onames.h: hack/def.objects.h hack/makedefs
hack/makedefs $< >$@
hack/alloc.d hack/hack.Decl.d hack/hack.apply.d hack/hack.bones.d \
hack/hack.d hack/hack.cmd.d hack/hack.do.d hack/hack.do_name.d \
hack/hack.do_wear.d hack/hack.dog.d hack/hack.eat.d hack/hack.end.d \
hack/hack.engrave.d hack/hack.fight.d hack/hack.invent.d \
hack/hack.ioctl.d hack/hack.lev.d hack/hack.main.d hack/hack.makemon.d \
hack/hack.mhitu.d hack/hack.mklev.d hack/hack.mkmaze.d \
hack/hack.mkobj.d hack/hack.mkshop.d hack/hack.mon.d hack/hack.monst.d \
hack/hack.o_init.d hack/hack.objnam.d hack/hack.options.d \
hack/hack.pager.d hack/hack.potion.d hack/hack.pri.d hack/hack.read.d \
hack/hack.rip.d hack/hack.rumors.d hack/hack.save.d hack/hack.search.d \
hack/hack.shk.d hack/hack.shknam.d hack/hack.steal.d \
hack/hack.termcap.d hack/hack.timeout.d hack/hack.topl.d \
hack/hack.track.d hack/hack.trap.d hack/hack.tty.d hack/hack.u_init.d \
hack/hack.unix.d hack/hack.vault.d hack/hack.version.d \
hack/hack.wield.d hack/hack.wizard.d hack/hack.worm.d hack/hack.worn.d \
hack/hack.zap.d hack/rnd.d: hack/hack.onames.h
hack_install: hack_all
$(INSTALL_SCORE_GAME) hack/hack $(INSTALL_PREFIX)$(GAMESDIR)/hack
$(HIDE_GAME) hack
$(INSTALL_HACK_DIR) $(INSTALL_PREFIX)$(HACK_DIR)
set -e; for f in data help hh rumors; do $(INSTALL_DATA) hack/$$f $(INSTALL_PREFIX)$(HACK_DIR)/$$f; done
$(INSTALL_SCORE_FILE) $(HACK_DIR)/perm
$(INSTALL_SCORE_FILE) $(HACK_DIR)/record
$(INSTALL_MANUAL) hack/hack.6

198
hack/Makequest Normal file
View File

@@ -0,0 +1,198 @@
# $NetBSD: Makequest,v 1.2 1995/03/23 08:29:08 cgd Exp $
#
# Hack or Quest Makefile.
# on some systems the termcap library is in -ltermcap
TERMLIB = -ltermlib
# make hack
GAME = quest
GAMEDIR = /usr/games/lib/questdir
CFLAGS = -g -DQUEST
HACKCSRC = hack.Decl.c\
hack.apply.c hack.bones.c hack.c hack.cmd.c hack.do.c\
hack.do_name.c hack.do_wear.c hack.dog.c hack.eat.c hack.end.c\
hack.engrave.c hack.fight.c hack.invent.c hack.ioctl.c\
hack.lev.c hack.main.c hack.makemon.c hack.mhitu.c\
hack.mklev.c hack.mkmaze.c hack.mkobj.c hack.mkshop.c\
hack.mon.c hack.monst.c hack.o_init.c hack.objnam.c\
hack.options.c hack.pager.c hack.potion.c hack.pri.c\
hack.read.c hack.rip.c hack.rumors.c hack.save.c\
hack.search.c hack.shk.c hack.shknam.c hack.steal.c\
hack.termcap.c hack.timeout.c hack.topl.c\
hack.track.c hack.trap.c hack.tty.c hack.unix.c\
hack.u_init.c hack.vault.c\
hack.wield.c hack.wizard.c hack.worm.c hack.worn.c hack.zap.c\
hack.version.c rnd.c alloc.c
CSOURCES = $(HACKCSRC) makedefs.c
HSOURCES = hack.h hack.mfndpos.h config.h\
def.edog.h def.eshk.h def.flag.h def.func_tab.h def.gold.h\
def.mkroom.h\
def.monst.h def.obj.h def.objclass.h def.objects.h\
def.permonst.h def.rm.h def.trap.h def.wseg.h
SOURCES = $(CSOURCES) $(HSOURCES)
AUX = data help hh rumors hack.6 hack.sh
DISTR = $(SOURCES) $(AUX) READ_ME Makefile date.h hack.onames.h
HOBJ = hack.Decl.o hack.apply.o hack.bones.o hack.o hack.cmd.o hack.do.o\
hack.do_name.o hack.do_wear.o hack.dog.o hack.eat.o hack.end.o\
hack.engrave.o hack.fight.o hack.invent.o hack.ioctl.o\
hack.lev.o hack.main.o hack.makemon.o hack.mhitu.o hack.mklev.o\
hack.mkmaze.o hack.mkobj.o hack.mkshop.o hack.mon.o\
hack.monst.o hack.o_init.o hack.objnam.o hack.options.o\
hack.pager.o hack.potion.o hack.pri.o\
hack.read.o hack.rip.o hack.rumors.o hack.save.o\
hack.search.o hack.shk.o hack.shknam.o hack.steal.o\
hack.termcap.o hack.timeout.o hack.topl.o\
hack.track.o hack.trap.o\
hack.tty.o hack.unix.o hack.u_init.o hack.vault.o hack.wield.o\
hack.wizard.o hack.worm.o hack.worn.o hack.zap.o\
hack.version.o rnd.o alloc.o
$(GAME): $(HOBJ) Makefile
@echo "Loading ..."
@ld -X -o $(GAME) /lib/crt0.o $(HOBJ) $(TERMLIB) -lc
all: $(GAME) lint
@echo "Done."
makedefs: makedefs.c
cc -o makedefs makedefs.c
hack.onames.h: makedefs def.objects.h
makedefs > hack.onames.h
lint:
# lint cannot have -p here because (i) capitals are meaningful:
# [Ww]izard, (ii) identifiers may coincide in the first six places:
# doweararm() versus dowearring().
# _flsbuf comes from <stdio.h>, a bug in the system libraries.
@echo lint -axbh -DLINT ...
@lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d'
diff:
@- for i in $(SOURCES) $(AUX) ; do \
cmp -s $$i $D/$$i || \
( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done
distribution: Makefile
@- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h hack.onames.h\
; do \
cmp -s $$i $D/$$i || \
( echo cp $$i $D ; cp $$i $D ) ; done
# the distribution directory also contains the empty files perm and record.
install:
rm -f $(GAMEDIR)/$(GAME)
cp $(GAME) $(GAMEDIR)/$(GAME)
chmod 04511 $(GAMEDIR)/$(GAME)
rm -f $(GAMEDIR)/bones*
# cp hack.6 /usr/man/man6
clean:
rm -f *.o
depend:
# For the moment we are lazy and disregard /usr/include files because
# the sources contain them conditionally. Perhaps we should use cpp.
# ( /bin/grep '^#[ ]*include' $$i | sed -n \
# -e 's,<\(.*\)>,"/usr/include/\1",' \
#
for i in ${CSOURCES}; do \
( /bin/grep '^#[ ]*include[ ]*"' $$i | sed -n \
-e 's/[^"]*"\([^"]*\)".*/\1/' \
-e H -e '$$g' -e '$$s/\n/ /g' \
-e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \
>> makedep); done
for i in ${HSOURCES}; do \
( /bin/grep '^#[ ]*include[ ]*"' $$i | sed -n \
-e 's/[^"]*"\([^"]*\)".*/\1/' \
-e H -e '$$g' -e '$$s/\n/ /g' \
-e '$$s/.*/'$$i': &\
touch '$$i/p \
>> makedep); done
@echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
@echo '$$r makedep' >>eddep
@echo 'w' >>eddep
@cp Makefile Makefile.bak
ed - Makefile < eddep
@rm -f eddep makedep
@echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
@echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
@echo '# see make depend above' >> Makefile
- diff Makefile Makefile.bak
@rm -f Makefile.bak
# DO NOT DELETE THIS LINE
hack.Decl.o: hack.h def.mkroom.h
hack.apply.o: hack.h def.edog.h def.mkroom.h
hack.bones.o: hack.h
hack.o: hack.h
hack.cmd.o: hack.h def.func_tab.h
hack.do.o: hack.h
hack.do_name.o: hack.h
hack.do_wear.o: hack.h
hack.dog.o: hack.h hack.mfndpos.h def.edog.h def.mkroom.h
hack.eat.o: hack.h
hack.end.o: hack.h
hack.engrave.o: hack.h
hack.fight.o: hack.h
hack.invent.o: hack.h def.wseg.h
hack.ioctl.o: config.h
hack.lev.o: hack.h def.mkroom.h def.wseg.h
hack.main.o: hack.h
hack.makemon.o: hack.h
hack.mhitu.o: hack.h
hack.mklev.o: hack.h def.mkroom.h
hack.mkmaze.o: hack.h def.mkroom.h
hack.mkobj.o: hack.h
hack.mkshop.o: hack.h def.mkroom.h def.eshk.h
hack.mon.o: hack.h hack.mfndpos.h
hack.monst.o: hack.h def.eshk.h
hack.o_init.o: config.h def.objects.h hack.onames.h
hack.objnam.o: hack.h
hack.options.o: config.h hack.h
hack.pager.o: hack.h
hack.potion.o: hack.h
hack.pri.o: hack.h def.wseg.h
hack.read.o: hack.h
hack.rip.o: hack.h
hack.rumors.o: hack.h
hack.save.o: hack.h
hack.search.o: hack.h
hack.shk.o: hack.h hack.mfndpos.h def.mkroom.h def.eshk.h
hack.shknam.o: hack.h
hack.steal.o: hack.h
hack.termcap.o: config.h def.flag.h
hack.timeout.o: hack.h
hack.topl.o: hack.h
hack.track.o: hack.h
hack.trap.o: hack.h def.mkroom.h
hack.tty.o: hack.h
hack.unix.o: hack.h def.mkroom.h
hack.u_init.o: hack.h
hack.vault.o: hack.h def.mkroom.h
hack.wield.o: hack.h
hack.wizard.o: hack.h
hack.worm.o: hack.h def.wseg.h
hack.worn.o: hack.h
hack.zap.o: hack.h
hack.version.o: date.h
hack.h: config.h def.objclass.h def.monst.h def.gold.h def.trap.h def.obj.h def.flag.h def.rm.h def.permonst.h hack.onames.h
touch hack.h
def.objects.h: config.h def.objclass.h
touch def.objects.h
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above

2
hack/OWNER Normal file
View File

@@ -0,0 +1,2 @@
Andries Brouwer
mcvax!aeb

63
hack/Original_READ_ME Normal file
View File

@@ -0,0 +1,63 @@
$NetBSD: Original_READ_ME,v 1.2 1995/03/23 08:29:10 cgd Exp $
This is export hack, my first semester programming project.
To set it up for your system, you will have to do the following:
1: create a hack uid, to own the top ten list, etc.
2: create a hack directory "/usr/lib/game/hack" is the default.
2.5: make the directory 700 mode. /* sav files go in there...*/
3: modify hack.main.c to use the new directory.
4: modify hack.main.c so it uses the new hack gid. Gid accounts can
go into magic mode without the password, can get cores with ^G, etc.
(make sure gid isn't checked anywhere else...)
5: recompile hack.
6: put it in games after making it set-uid hack.
8: fix the bugs I undobtedly left in it.
9: tell me what you think of it.
Hack uses the UCB file /etc/termcap to get your terminal escape codes.
If you don't use it, you will have to make extensive changes to hack.pri.c
If you find any bugs (That you think I don't know about), or have any
awesome new changes (Like a better save (One that works!)), or have ANY
questions, write me
Jay Fenlason
29 East St.
Sudbury Mass.
01776
or call me at (617) 443-5036. Since I have both a modem and a teen-age
sister, Good Luck.
Hack is split (roughly) into several source files that do different things.
I have tried to fit all the procedures having to do with a certain segment
of the game into a single file, but the job is not the best in the world.
The rough splits are:
hack.c General random stuff and things I never got around to moving.
hack.main.c main() and other random procedures, also the lock file stuff.
hack.mon.c Monsters, moving, attacking, etc.
hack.do.c drink, eat, read, wield, save, etc.
hack.do1.c zap, wear, remove, etc...
hack.pri.c stuff having to do with the screen, most of the terminal
independant stuff is in here.
hack.lev.c temp files and calling of mklev.
Because of the peculiar restraints on our system, I make mklev (create
a level) a separate procedure execd by hack when needed. The source for
mklev is (Naturaly) mklev.c. You may want to put mklev back into hack.
Good luck.
Most of hack was written by me, with help from
Kenny Woodland (KW) (general random things including
the original BUZZ())
Mike Thome (MT) (The original chamelian)
and Jon Payne (JP) (The original lock file kludge and
the massive CURS())
This entire program would not have been possible without the SFSU Logo
Workshop. I am eternally grateful to all of our students (Especially K.L.),
without whom I would never have seen Rogue. I am especially grateful to
Mike Clancy, without whose generous help I would never have gotten to play
ROGUE.

94
hack/READ_ME Normal file
View File

@@ -0,0 +1,94 @@
$NetBSD: READ_ME,v 1.2 1995/03/23 08:29:12 cgd Exp $
Hack is a display oriented dungeons & dragons - like game.
Both display and command structure resemble rogue.
(For a game with the same structure but entirely different display -
a real cave instead of dull rectangles - try Quest)
Hack was originally written by Jay Fenlason (at lincolnsudbury:
29 East St., Sudbury Mass., 01776) with help from
Kenny Woodland, Mike Thome and Jon Payne.
Basically it was an implementation of Rogue, however, with 52+ instead of 26
monster types.
The current version is more than thrice as large (with such new features as
the dog, the long worms, the shops, etc.) and almost entirely rewritten
(only the display routines are the original ones - I must rewrite these
too one day; especially when you are blind strange things still happen).
Files for hack:
hack The actual game
record Top 100 list (just start with an empty file)
news Tells about recent changes in hack, or bugs found ...
(Just start with no news file.)
data Auxiliary file used by hack to give you the names
and sometimes some more information on the
objects and monsters.
help Introductory information (no doubt outdated).
hh Compactified version of help.
perm An empty file used for locking purposes.
rumors Texts for fortune cookies.
(Some of these contain information on the game,
others are just plain stupid. Additional rumors
are appreciated.)
hack.sh A shell script.
(We have hack.sh in /usr/games/hack and
hack in /usr/games/lib/hackdir/hack and all the other
hack stuff in /usr/games/lib/hackdir - perhaps this
will make the script clear.
There is no need for you to use it.)
READ_ME This file.
Original_READ_ME Jay Fenlason's READ_ME
System files used:
/etc/termcap Used in conjunction with the environment variable
$TERM.
/bin/cat
/usr/ucb/more
/bin/sh Used when $SHELL is undefined.
How to install hack:
0. Compile the sources. Perhaps you should first look at the file config.h
and define BSD if you are on a BSDtype system,
define STUPID if your C-compiler chokes on complicated expressions.
Make sure schar and uchar represent signed and unsigned types.
If your C compiler doesnt allow initialization of bit fields
change Bitfield. When config.h looks reasonable, say 'make'.
(Perhaps you have to change TERMLIB in the makefile.)
1. If it didnt exist already, introduce a loginname `play' .
2. The program hack resides in a directory so that it is executable
for everybody and is suid play:
---s--s--x 1 play 206848 Apr 3 00:17 hack
Perhaps you wish to restrict playing to certain hours, or have games
running under nice; in that case you might write a program play.c
such that the program play is suid play and executable for everybody
while all the games in /usr/games are readable or executable for
play only; all the program play does is asking for the name of a game,
checking that time-of-day and system load do not forbid playing,
and then executing the game. Thus:
-r-sr-sr-x 1 play 13312 May 24 12:52 play
---x------ 1 play 206848 Apr 3 00:17 hack
If you are worried about security you might let play do
chroot("/usr/games") so that no player can get access to the rest
of the system via shell escapes and the likes.
If you #define SECURE in config.h then hack will not setuid(getuid())
before executing a chdir(). Hack will always do setuid(getuid()) with
a fork. If you do not define UNIX then hack will not fork.
3. The rest of the stuff belonging to hack sits in a subdirectory hackdir
(on our system /usr/games/lib/hackdir) with modes
drwx------ 3 play 1024 Aug 9 09:03 hackdir
Here all the temporary files will be created (with names like xlock.17
or user.5).
4. If you are not really short on file space, creating a subdirectory
hackdir/save (modes again drwx------) will enable users to save their
unfinished games.
The program hack is called
$ hack [-d hackdir] [maxnrofplayers]
(for playing) or
$ hack [-d hackdir] -s [listofusers | limit | all]
(for seeing part of the scorelist).
The shell file hack (in this kit called hack.sh) takes care of
calling hack with the right arguments.
Send complaints, bug reports, suggestions for improvements to
mcvax!aeb - in real life Andries Brouwer.

232
hack/data Normal file
View File

@@ -0,0 +1,232 @@
Hack & Quest data file - version 1.0.3
@ human (or you)
- a wall
| a wall
+ a door
. the floor of a room
a dark part of a room
# a corridor
} water filled area
< the staircase to the previous level
> the staircase to the next level
^ a trap
$ a pile, pot or chest of gold
%% a piece of food
! a potion
* a gem
? a scroll
= a ring
/ a wand
[ a suit of armor
) a weapon
( a useful item (camera, key, rope etc.)
0 an iron ball
_ an iron chain
` an enormous rock
" an amulet
, a trapper
: a chameleon
; a giant eel
' a lurker above
& a demon
A a giant ant
B a giant bat
C a centaur;
Of all the monsters put together by the Greek imagination
the Centaurs (Kentauroi) constituted a class in themselves.
Despite a strong streak of sensuality in their make-up,
their normal behaviour was moral, and they took a kindly
thought of man's welfare. The attempted outrage of Nessos on
Deianeira, and that of the whole tribe of Centaurs on the
Lapith women, are more than offset by the hospitality of
Pholos and by the wisdom of Cheiron, physician, prophet,
lyrist, and the instructor of Achilles. Further, the Cen-
taurs were peculiar in that their nature, which united the
body of a horse with the trunk and head of a man, involved
an unthinkable duplication of vital organs and important
members. So grotesque a combination seems almost un-Greek.
These strange creatures were said to live in the caves and
clefts of the mountains, myths associating them especially
with the hills of Thessaly and the range of Erymanthos.
[Mythology of all races, Vol. 1, pp. 270-271]
D a dragon;
In the West the dragon was the natural enemy of man. Although
preferring to live in bleak and desolate regions, whenever it was
seen among men it left in its wake a trail of destruction and
disease. Yet any attempt to slay this beast was a perilous under-
taking. For the dragon's assailant had to contend not only with
clouds of sulphurous fumes pouring from its fire-breathing nos-
trils, but also with the thrashings of its tail, the most deadly
part of its serpent-like body.
[From: Mythical Beasts by Deirdre Headon (The Leprechaun Library)]
E a floating eye
F a freezing sphere
G a gnome;
... And then a gnome came by, carrying a bundle, an old fellow
three times as large as an imp and wearing clothes of a sort,
especially a hat. And he was clearly just as frightened as the
imps though he could not go so fast. Ramon Alonzo saw that there
must be some great trouble that was vexing magical things; and,
since gnomes speak the language of men, and will answer if spoken
to gently, he raised his hat, and asked of the gnome his name.
The gnome did not stop his hasty shuffle a moment as he answered
'Alaraba' and grabbed the rim of his hat but forgot to doff it.
'What is the trouble, Alaraba?' said Ramon Alonzo.
'White magic. Run!' said the gnome ...
[From: The Charwoman's Shadow, by Lord Dunsany.]
H a hobgoblin;
Hobgoblin. Used by the Puritans and in later times for
wicked goblin spirits, as in Bunyan's 'Hobgoblin nor foul
friend', but its more correct use is for the friendly spir-
its of the brownie type. In 'A midsummer night's dream' a
fairy says to Shakespeare's Puck:
Those that Hobgoblin call you, and sweet Puck,
You do their work, and they shall have good luck:
Are you not he?
and obviously Puck would not wish to be called a hobgoblin
if that was an ill-omened word.
Hobgoblins are on the whole, good-humoured and ready to be
helpful, but fond of practical joking, and like most of the
fairies rather nasty people to annoy. Boggarts hover on the
verge of hobgoblindom. Bogles are just over the edge.
One Hob mentioned by Henderson, was Hob Headless who haunted
the road between Hurworth and Neasham, but could not cross
the little river Kent, which flowed into the Tess. He was
exorcised and laid under a large stone by the roadside for
ninety-nine years and a day. If anyone was so unwary as to
sit on that stone, he would be unable to quit it for ever.
The ninety-nine years is nearly up, so trouble may soon be
heard of on the road between Hurworth and Neasham.
[Katharine Briggs, A dictionary of Fairies]
I an invisible stalker
J a jackal
K a kobold
L a leprechaun;
The Irish Leprechaun is the Faeries' shoemaker and is known
under various names in different parts of Ireland: Cluri-
caune in Cork, Lurican in Kerry, Lurikeen in Kildare and Lu-
rigadaun in Tipperary. Although he works for the Faeries,
the Leprechaun is not of the same species. He is small, has
dark skin and wears strange clothes. His nature has some-
thing of the manic-depressive about it: first he is quite
happy, whistling merrily as he nails a sole on to a shoe; a
few minutes later, he is sullen and morose, drunk on his
home-made heather ale. The Leprechaun's two great loves are
tobacco and whiskey, and he is a first-rate con-man, impos-
sible to out-fox. No one, no matter how clever, has ever
managed to cheat him out of his hidden pot of gold or his
magic shilling. At the last minute he always thinks of some
way to divert his captor's attention and vanishes in the
twinkling of an eye.
[From: A Field Guide to the Little People
by Nancy Arrowsmith & George Moorse. ]
M a mimic
N a nymph
O an orc
P a purple worm
Q a quasit
R a rust monster
S a snake
T a troll
U an umber hulk
V a vampire
W a wraith
X a xorn
Y a yeti
Z a zombie
a an acid blob
b a giant beetle
c a cockatrice;
Once in a great while, when the positions of the stars are
just right, a seven-year-old rooster will lay an egg. Then,
along will come a snake, to coil around the egg, or a toad,
to squat upon the egg, keeping it warm and helping it to
hatch. When it hatches, out comes a creature called basil-
isk, or cockatrice, the most deadly of all creatures. A sin-
gle glance from its yellow, piercing toad's eyes will kill
both man and beast. Its power of destruction is said to be
so great that sometimes simply to hear its hiss can prove
fatal. Its breath is so venomenous that it causes all vege-
tation to wither.
There is, however, one creature which can withstand the
basilisk's deadly gaze, and this is the weasel. No one knows
why this is so, but although the fierce weasel can slay the
basilisk, it will itself be killed in the struggle. Perhaps
the weasel knows the basilisk's fatal weakness: if it ever
sees its own reflection in a mirror it will perish instant-
ly. But even a dead basilisk is dangerous, for it is said
that merely touching its lifeless body can cause a person to
sicken and die.
[From: Mythical Beasts by Deirdre Headon (The Leprechaun
Library) and other sources. ]
d a dog
e an ettin
f a fog cloud
g a gelatinous cube
h a homunculus
i an imp;
... imps ... little creatures of two feet high that could
gambol and jump prodigiously; ...
[From: The Charwoman's Shadow, by Lord Dunsany.]
An 'imp' is an off-shoot or cutting. Thus an 'ymp tree' was
a grafted tree, or one grown from a cutting, not from seed.
'Imp' properly means a small devil, an off-shoot of Satan,
but the distinction between goblins or bogles and imps from
hell is hard to make, and many in the Celtic countries as
well as the English Puritans regarded all fairies as devils.
The fairies of tradition often hover uneasily between the
ghostly and the diabolic state.
[Katharine Briggs, A dictionary of Fairies]
j a jaguar
k a killer bee
l a leocrotta
m a minotaur
n a nurse
o an owlbear
p a piercer
q a quivering blob
r a giant rat
s a scorpion
t a tengu;
The tengu was the most troublesome creature of Japanese
legend. Part bird and part man, with red beak for a nose
and flashing eyes, the tengu was notorious for stirring up
feuds and prolonging enmity between families. Indeed, the
belligerent tengus were supposed to have been man's first
instructors in the use of arms.
[From: Mythical Beasts by Deirdre Headon
(The Leprechaun Library). ]
u a unicorn;
Men have always sought the elusive unicorn, for the single
twisted horn which projected from its forehead was thought
to be a powerful talisman. It was said that the unicorn had
simply to dip the tip of its horn in a muddy pool for the
water to become pure. Men also believed that to drink from
this horn was a protection against all sickness, and that if
the horn was ground to a powder it would act as an antidote
to all poisons. Less than 200 years ago in France, the horn
of a unicorn was used in a ceremony to test the royal food
for poison.
Although only the size of a small horse, the unicorn is a
very fierce beast, capable of killing an elephant with a
single thrust from its horn. Its fleetness of foot also
makes this solitary creature difficult to capture. However,
it can be tamed and captured by a maiden. Made gentle by the
sight of a virgin, the unicorn can be lured to lay its head
in her lap, and in this docile mood, the maiden may secure
it with a golden rope.
[From: Mythical Beasts by Deirdre Headon
(The Leprechaun Library). ]
v a violet fungi
w a long worm;
From its teeth the crysknife can be manufactured.
~ the tail of a long worm
x a xan;
The xan were animals sent to prick the legs of the Lords of Xibalba.
y a yellow light
z a zruty;
The zruty are wild and gigantic beings, living in the wildernesses
of the Tatra mountains.
1 The wizard of Yendor
2 The mail daemon

55
hack/hh Normal file
View File

@@ -0,0 +1,55 @@
y k u Move commands:
\|/ hykulnjb: single move in specified direction
h-+-l HYKULNJB: repeated move in specified direction
/|\ (until stopped by e.g. a wall)
b j n f<dir>: fast movement in direction <dir>
(until something interesting is seen)
m<dir>: move without picking up objects
Meta commands:
Q quit leave the game
S save save the game (to be continued later)
! sh escape to some SHELL
^Z suspend suspend the game (independent of your current suspend char)
O set set options
? help print information
/ whatis give name (and sometimes more info) of specified monster
\ known print list of what's been discovered
v version print version number
^R redraw redraw the screen (^R denotes the symbol CTRL/R)
^P print repeat last message (subsequent ^P's repeat earlier messages)
# introduces a long command; not really implemented
Game commands:
^T teleport teleport
a apply, use use something (a key, camera, etc.)
c call give a name to a class of objects
d drop drop an object. d7a: drop seven items of object a.
e eat eat something
i invent list the inventory (all objects you are carrying)
I invent list selected parts of the inventory
IU: list unpaid objects
IX: list unpaid but used up items
I$: count your money
p pay pay your bill
q drink quaff a potion
r read read a scroll
s search search for secret doors, hidden traps and monsters
t throw throw or shoot a weapon
w wield wield a weapon (w- wield nothing)
z zap zap a wand
C name name an individual monster (e.g., baptize your dog)
D Drop drop several things
E Engrave write a message in the dust on the floor (E- use fingers)
P wear put on a ring
R remove remove a ring
T remove take off some armor
W wear put on some armor
< up go up the stairs
> down go down the stairs
^ trap_id identify a previously found trap
),[,= ask for current weapon, armor, rings, respectively
$ gold count your gold
. rest wait a moment
, pickup pick up all you can carry
: look look at what is here

41
hack/pathnames.h.in Normal file
View File

@@ -0,0 +1,41 @@
/* $NetBSD: pathnames.h,v 1.3 1995/03/23 08:32:27 cgd Exp $ */
/*-
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)pathnames.h 8.1 (Berkeley) 5/31/93
*/
#define _PATH_MAIL "/usr/bin/mail"
#define _PATH_QUEST "/var/games/questdir"
#define _PATH_HACK "@hack_dir@"

505
hack/rumors Normal file
View File

@@ -0,0 +1,505 @@
"Quit" is a four letter word.
"So when I die, the first thing I will see in Heaven is a score list?"
-- more --
...and rings may protect your fingers.
...and sometimes a piercer drops by.
A Quasit is even faster than a jaguar!
A chameleon imitating a postman often delivers scrolls of fire.
A chameleon imitating a postman sometimes delivers scrolls of punishment.
A clove of garlic a day keeps your best friends away.
A cockatrice's corpse is guaranteed to be untainted!
A confused acid blob may attack.
A dead lizard is a good thing to turn undead.
A dragon is just a Snake that ate a scroll of fire.
A fading corridor enlightens your insight.
A glowing potion is too hot to drink.
A good amulet may protect you against guards.
A homunculus wouldnt want to hurt a wizard.
A jaguar shouldn't frighten you.
A long worm can be defined recursively. So how should you attack it?
A long worm hits with all of its length.
A magic vomit pump is a necessity for gourmands.
A monstrous mind is a toy for ever.
A nurse a day keeps the doctor away.
A potion of blindness makes you see invisible things.
A ring is just a wound wand.
A ring of adornment protects against Nymphs.
A ring of conflict is a bad thing if there is a nurse in the room.
A ring of extra ringfinger is useless if not enchanted.
A ring of stealth can be recognised by that it does not teleport you.
A rope may form a trail in a maze.
A rumour has it that rumours are just rumours.
A scroll of enchant amulet is only useful on your way back.
A smoky potion surely affects your vision.
A spear might hit a nurse.
A spear will hit an ettin.
A staff may recharge if you drop it for awhile.
A tin of smoked eel is a wonderful find.
A truly wise man never plays leapfrog with a unicorn.
A two-handed sword usually misses.
A unicorn can be tamed only by a fair maiden.
A visit to the Zoo is very educational; you meet interesting animals.
A wand of deaf is a more dangerous weapon than a wand of sheep.
A wand of vibration might bring the whole cave crashing about your ears.
A winner never quits. A quitter never wins.
A xan is a small animal. It doesn't reach higher than your leg.
Acid blobs should be attacked bare-handed.
Affairs with Nymphs are often very expensive.
Afraid of Mimics? Try to wear a ring of true seeing.
Afraid of falling piercers? Wear a helmet!
After being attacked by a Harpy you have a lot of arrows.
All monsters are created evil, but some are more evil than others.
Always attack a floating Eye from behind!
Always be aware of the phase of the moon!
Always read the info about a monster before dealing with it.
Always sweep the floor before engraving important messages.
Amulets are hard to make. Even for a wand of wishing.
An Umber hulk can be a confusing sight.
An elven cloak is always the height of fashion.
An elven cloak protects against magic.
An ettin is hard to kill; an imp is hard to hit. See the difference?
Any small object that is accidentally dropped will hide under a larger object.
Are you blind? Catch a floating Eye!
Asking about monsters may be very useful.
Attack long worms from the rear - that is so much safer!
Attacking an eel when there is none usually is a fatal mistake!
Balrogs only appear on the deeper levels.
Be careful when eating bananas. Monsters might slip on the peels.
Be careful when eating salmon - your fingers might become greasy.
Be careful when the moon is in its last quarter.
Be careful when throwing a boomerang - you might hit the back of your head.
Be nice to a nurse: put away your weapon and take off your clothes.
Being digested is a painfully slow process.
Better go home and hit your kids. They are just little monsters!
Better go home and play with your kids. They are just little monsters!
Better leave the dungeon, otherwise you might get hurt badly.
Beware of dark rooms - they may be the Morgue.
Beware of death rays!
Beware of falling rocks, wear a helmet!
Beware of hungry dogs!
Beware of the minotaur. He's very horny!
Beware of the potion of Nitroglycerine - it's not for the weak of heart.
Beware of wands of instant disaster.
Beware: there's always a chance that your wand explodes as you try to zap it!
Beyond the 23-rd level lies a happy retirement in a room of your own.
Blank scrolls make more interesting reading.
Blind? Eat a carrot!
Booksellers never read scrolls; it might carry them too far away.
Booksellers never read scrolls; it might leave their shop unguarded.
Changing your suit without dropping your sword? You must be kidding!
Cockatrices might turn themselves to stone faced with a mirror.
Consumption of home-made food is strictly forbidden in this dungeon.
Dark gems are just coloured glass.
Dark room? Just flash often with your camera.
Dark room? Your chance to develop your photographs!
Dark rooms are not *completely* dark: just wait and let your eyes adjust...
Dead lizards protect against a cockatrice.
Death is just around the next door.
Death is life's way of telling you you've been fired.
Descend in order to meet more decent monsters.
Did you know worms had teeth?
Didn't you forget to pay?
Didn't you forget to pay?
Direct a direct hit on your direct opponent, directing in the right direction.
Do something big today: lift a boulder.
Do you want to visit hell? Dig a *very* deep hole.
Dogs are attracted by the smell of tripe.
Dogs do not eat when the moon is full.
Dogs never step on cursed items.
Dogs of ghosts aren't angry, just hungry.
Don't bother about money: only Leprechauns and shopkeepers are interested.
Don't create fireballs: they might turn against you.
Don't eat too much: you might start hiccoughing!
Don't forget! Large dogs are MUCH harder to kill than little dogs.
Don't play hack at your work, your boss might hit you!
Don't swim with weapons or armour: they might rust!
Don't tell a soul you found a secret door, otherwise it isn't secret anymore.
Don't throw gems. They are so precious! Besides, you might hit a roommate.
Drinking might affect your health.
Drop your vanity and get rid of your jewels! Pickpockets about!
Dungeon expects every monster to do his duty.
Dust is an armor of poor quality.
Eat 10 cloves of garlic and keep all humans at a two-square distance.
Eat a homunculus if you want to avoid sickness.
Eating a Wraith is a rewarding experience!
Eating a freezing sphere is like eating a yeti.
Eating a killer bee is like eating a scorpion.
Eating a tengu is like eating a Nymph.
Eating unpaid Leprechauns may be advantageous.
Eels hide under mud. Use a unicorn to clear the water and make them visible.
Elven cloaks cannot rust.
Engrave your wishes with a wand of wishing.
Eventually all wands of striking do strike.
Eventually you will come to admire the swift elegance of a retreating nymph.
Ever fought with an enchanted tooth?
Ever heard hissing outside? I *knew* you hadn't!
Ever seen a leocrotta dancing the tengu?
Ever slept in the arms of a homunculus?
Ever tamed a shopkeeper?
Ever tried digging through a Vault Guard?
Ever tried enchanting a rope?
Ever tried to catch a flying boomerang?
Ever tried to put a Troll into a large box?
Ever wondered why one would want to dip something in a potion?
Every dog should be a domesticated one.
Every hand has only one finger to put a ring on. You've got only two hands. So?
Every level contains a shop; only the entrance is often hidden.
Everybody should have tasted a scorpion at least once in his life.
Expensive cameras have penetrating flashlights.
Feeding the animals is strictly prohibited. The Management.
Feeling lousy? Why don't you drink a potion of tea?
Fiery letters might deter monsters.
First Law of Hacking: leaving is much more difficult than entering.
For any remedy there is a misery.
Fourth Law of Hacking: you will find the exit at the entrance.
Gems are the droppings of other inmates.
Gems do get a burden.
Genocide on shopkeepers is punishable.
Getting Hungry? Stop wearing rings!
Getting Hungry? Wear an amulet!
Ghosts always empty the fridge.
Ghosts are visible because they don't leave a trace.
Giant beetles make giant holes in giant trees!
Giving head to a long worm is like a long lasting reception.
Gold is a heavy metal.
Good day for overcoming obstacles. Try a steeplechase.
Gossip is the opiate of the depressed.
Hackers do it with bugs.
Half Moon tonight. (At least it's better than no Moon at all.)
Handle your flasks carefully - there might be a ghost inside!
Have a good meal today: eat a minotaur.
Hey guys, you *WIELD* a dead lizard against a cocatrice! [David London]
Hissing is a sound I hate.
Hitting is the lingua franca in these regions.
Humans use walking canes when they grow old.
Hunger is a confusing experience for a dog!
Hungry dogs are unreliable.
Hungry? There is an abundance of food on the next level.
Hungry? Wear an amulet!
I doubt whether nurses are virgins.
I guess you have never hit a postman with an Amulet of Yendor yet...
I once knew a hacker who ate too fast and choked to death.....
I smell a maze of twisty little passages.
I wished, I never wished a wand of wishing. (Wishful thinking)
If "nothing happens", something *has* happened anyway!!
If a chameleon mimics a mace, it really mimics a Mimic mimicking a mace.
If a shopkeeper kicks you out of his shop, he'll kick you out of the dungeon.
If you are being punished, it's done with a deadly weapon.
If you are the shopkeeper you can take things for free.
If you are too cute some monsters might be tempted to embrace you.
If you can't learn to do it well, learn to enjoy doing it badly.
If you need a wand of digging, kindly ask the minotaur.
If you see nurses you better start looking somewhere for a doctor.
If you turn blind: don't expect your dog to be turned into a seeing-eye dog.
If you want to feal great, you must eat something real big.
If you want to float you'd better eat a floating eye.
If you want to genocide nurses, genocide @'s.
If you want to hit, use a dagger.
If you want to rob a shop, train your dog.
If you're afraid of trapdoors, just cover the floor with all you've got.
If you're lost, try buying a map next time you're in a shop.
If your ghost kills a player, it increases your score.
Important mail? Be careful that it isn't stolen!
Improve your environment, using a wand of rearrangement.
In a hurry? Try a ride on a fast moving quasit!
In a way, a scorpion is like a snake.
In need of a rest? Quaff a potion of sickness!
In total, there are eight sorts of shops.
Increase mindpower: Tame your own ghost!
Inside a shop you better take a look at the price tags before buying anything.
It furthers one to see the great man.
It is bad manners to use a wand in a shop.
It is not always a good idea to whistle for your dog.
It is said that Giant Rabbits can be tamed with carrots only.
It is said that purple worms and trappers fill the same niche.
It might be a good idea to offer the unicorn a ruby.
It seems you keep overlooking a sign reading "No trespassing"!
It would be peculiarly sad were your dog turned to stone.
It's all a matter of life and death, so beware of the undead.
It's bad luck to drown a postman.
It's bad luck, being punished.
It's easy to overlook a monster in a wood.
It's not safe to Save.
Jackals are intrinsically rotten.
Just below any trapdoor there may be another one. Just keep falling!
Keep a clear mind: quaff clear potions.
Keep your armours away from rust.
Keep your weaponry away from acids.
Kicking the terminal doesn't hurt the monsters.
Kill a unicorn and you kill your luck.
Killer bees keep appearing till you kill their queen.
Large dogs make larger turds than little ones.
Latest news? Put 'net.games.hack' in your .newsrc !
Latest news? Put newsgroup 'netUNX.indoor.hackers-scroll' in your .newsrc!
Learn how to spell. Play Hack!
Leather armour cannot rust.
Leprechauns are the most skilled cutpurses in this dungeon.
Leprechauns hide their gold in a secret room.
Let your fingers do the walking on the yulkjhnb keys.
Let's face it: this time you're not going to win.
Let's have a party, drink a lot of booze.
Liquor sellers do not drink; they hate to see you twice.
Looking for a monster -- use a staff of monster summoning.
Looking pale? Quaff a red potion!
M.M.Vault cashiers teleport any amount of gold to the next local branch.
Many monsters make a murdering mob.
Meet yourself! Commit suicide and type "hack"
Meeting your own ghost decreases your luck considerably!
Memory flaw - core dumped.
Money is the root of all evil.
Money to invest? Take it to the local branch of the Magic Memory Vault!
Monsters come from nowhere to hit you everywhere.
Monsters sleep because you are boring, not because they ever get tired.
Most monsters can't swim.
Most monsters prefer minced meat. That's why they are hitting you!
Most rumors are just as misleading as this one.
Much ado Nothing Happens.
Murder complaint? Mail to 'netnix!devil!gamble!freak!trap!lastwill!rip'.
Need money? Sell your corpses to a tin factory.
Never ask a shopkeeper for a price list.
Never attack a guard.
Never drop a crysknife! No, never even unwield it, until...
Never eat with glowing hands!
Never fight a monster: you might get killed.
Never go into the dungeon at midnight.
Never kick a sleeping dog.
Never kiss an animal. It may cause kissing disease.
Never map the labyrinth.
Never mind the monsters hitting you: they just replace the charwomen.
Never ride a long worm.
Never step on a cursed engraving.
Never swim with a camera: there's nothing to take pictures of.
Never trust a random generator in magic fields.
Never use a wand of death.
Never use your best weapon to engrave a curse.
Never vomit on a door mat.
No easy fighting with a heavy load!
No level contains two shops. The maze is no level. So...
No part of this fortune may be reproduced, stored in a retrieval system, ...
No weapon is better than a crysknife.
Not all rumors are as misleading as this one.
Not even a spear will hit a Xorn.
Now what is it that cures digestion?
Nurses are accustomed to touch naked persons: they don't harm them.
Nurses prefer undressed hackers.
Nymphs and nurses like beautiful rings.
Nymphs are blondes. Are you a gentleman?
Nymphs are very pleased when you call them by their real name: Lorelei.
Offering a unicorn a worthless piece of glass might prove to be fatal!
Old hackers never die: young ones do.
Old trees sometimes fall without a warning!
Once your little dog will be a big dog, and you will be proud of it.
One can even choke in a fortune cookie!
One has to leave shops before closing time.
One homunculus a day keeps the doctor away.
One level further down somebody is getting killed, right now.
One wand of concentration equals eight scrolls of create monster.
Only Today! A dramatic price-cut on slightly used wands.
Only a Nymph knows how to unlock chains.
Only a dragon will never get a cold from a wand of cold.
Only a real dummy would ever call his sword 'Elbereth'.
Only a wizard can use a magic whistle.
Only adventurers of evil alignment think of killing their dog.
Only cave-women can catch a unicorn. And then only with a golden rope.
Only chaotic evils kill sleeping monsters.
Only david can find the zoo!
Only real trappers escape traps.
Only real wizards can write scrolls.
Only wizards are able to zap a wand.
Opening a tin is difficult, especially when you are not so strong!
Opening a tin is difficult, especially when you attempt this bare handed!
Operation coded OVERKILL has started now.
Orcs and killer bees share their lifestyle.
Orcs do not procreate in dark rooms.
PLEASE ignore previous rumour.
Plain nymphs are harmless.
Playing billiards pays when you are in a shop.
Polymorphing your dog probably makes you safer.
Praying will frighten Demons.
Punishment is a thing you call over yourself. So why complain?
Pursue the monsters and you will be had indeed.
Put on a ring of teleportation: it will take you away from onslaught.
Rays aren't boomerangs, of course, but still...
Read the manual before entering the cave - You might get killed otherwise.
Reading Herbert will disgust you, but in one case it might be enlightening.
Reading Tolkien might help you.
Reading might change your vision.
Reading might improve your scope.
Relying on a dog might turn you in a dog addict.
Reward your doggie with a giant Bat.
Ropes are made from the long, blond hairs of dead Nymphs.
Row (3x) that boat gently down the stream, Charon (4x), death is but a dream.
Running is good for your legs.
Rust monsters love water. There are potions they hate, however.
Savings do include amnesia.
Scorpions often hide under tripe rations.
Screw up your courage! You've screwed up everything else.
Scrolls of fire are useful against fog clouds.
Second Law of Hacking: first in, first out.
Selling and rebuying a wand will recharge it.
Shopkeepers accept creditcards, as long as you pay cash.
Shopkeepers are vegetarians: they only eat Swedes.
Shopkeepers can't read, so what use is engraving in a shop?
Shopkeepers can't swim.
Shopkeepers have incredible patience.
Shopkeepers often have strange names.
Shopkeepers sometimes die from old age.
Sleeping may increase your strength.
Snakes are often found under worthless objects.
Some Balrogs don't attack if you offer them a ring.
Some mazes (especially small ones) have no solutions, says man 6 maze.
Some monsters can be tamed. I once saw a hacker with a tame Dragon!
Some potions are quite mind-expanding.
Some questions Sphynxes ask just *don't* have any answers.
Sometimes "mu" is the answer.
Sometimes monsters are more likely to fight each other than attack you.
Sorry, no fortune this time. Better luck next cookie!
Spare your scrolls of make-edible until it's really necessary!
Speed Kills (The Doors)
Spinach, carrot, and a melon - a meal fit for a nurse!
Stay clear of the level of no return.
Suddenly the dungeon will collapse ...
Surprise your dog with an acid blob!
Tainted meat is even more sickening than poison!
Take a long worm from the rear, according to its mate it's a lot more fun.
Tame a troll and it will learn you fighting.
Taming a postman may cause a system security violation.
Taming is a gradual process of excercising and rewarding.
Telepathy is just a trick: once you know how to do it, it's easy.
Teleportation lessens your orientation.
The "pray" command is not yet implemented.
The Jackal only eats bad food.
The Leprechaun Gold Tru$t is no division of the Magic Memory Vault.
The Leprechauns hide their treasure in a small hidden room.
The air is positively magic in here. Better wear a negative armor.
The best equipment for your work is, of course, the most expensive.
The emptiness of a ghost is too heavy to bear.
The key to this game is that there are no keys.
The longer the wand the better.
The moon is not the only heavenly body to influence this game.
The postman always rings twice.
The proof of the quivering blob is in the eating thereof.
The secret of wands of Nothing Happens: try again!
The use of dynamite is dangerous.
There are better information sources than fortune cookies.
There are monsters of softening penetration.
There are monsters of striking charity.
There have been people like you in here; their ghosts seek revenge on you.
There is a VIP-lounge on this level. Only first-class travellers admitted.
There is a big treasure hidden in the zoo!
There is a message concealed in each fortune cookie.
There is a trap on this level!
There is more magic in this cave than meets the eye.
There is no business like throw business.
There is no harm in praising a large dog.
There is nothing like eating a Mimic.
There seem to be monsters of touching benevolence.
They say a gelatinous cube can paralyse you...
They say that Elven cloaks absorb enchantments.
They say that a dagger hits.
They say that a dog avoids traps.
They say that a dog can be trained to fetch objects.
They say that a dog never steps on a cursed object.
They say that a spear will hit a Dragon.
They say that a spear will hit a Xorn.
They say that a spear will hit a neo-otyugh. (Do YOU know what that is?)
They say that a spear will hit an ettin.
They say that a two-handed sword misses.
They say that a unicorn might bring you luck.
They say that an elven cloak may be worn over your armor.
They say that an elven cloak protects against magic.
They say that cavemen seldom find tins in the dungeon.
They say that dead lizards protect against a cockatrice.
They say that killing a shopkeeper brings bad luck.
They say that monsters never step on a scare monster scroll.
They say that only david can find the zoo!
They say that shopkeepers often have a large amount of money in their purse.
They say that the owner of the dungeon might change it slightly.
They say that the use of dynamite is dangerous.
They say that the walls in shops are made of extra hard material.
They say that there is a big treasure hidden in the zoo!
They say that there is a message concealed in each fortune cookie.
They say that there is a trap on this level!
They say that throwing food at a wild dog might tame him.
They say that you can meet old friends in the caves.
They say that you can't take your pick-axe into a shop.
They say that you cannot trust scrolls of rumour.
They say that you need a key in order to open locked doors.
Third Law of Hacking: the last blow counts most.
This dungeon is restroom equipped (for your convenience).
This fortune cookie is property of Fortune Cookies, Inc.
This is not a fortune.
This is the Leprechaun Law: every purse has a price.
Throwing food at a wild dog might tame him.
Tin openers are rare indeed.
Tired of irritating bats? Try a scroll of silence.
To hit or not to hit, that is the question.
To reach heaven, escape the dungeon while wearing a ring of levitation.
Tranquillizers might get you killed.
Travel fast, use some magic speed!
Tripe on its own is revolting, but with onions it's delicious!
Try hacking in the wee hours: you will have more room.
Try the fall back end run play against ghosts.
Ulch, that meat was painted.
Unwanted mail? Sell it to the bookshop!
Vampires hate garlic.
Vault guards always make sure you aren't a shopkeeper.
Vault guards never disturb their Lords.
Visitors are requested not to apply genocide to shopkeepers.
WARNING from H.M. Govt: Quaffing may be dangerous to your health.
Wanna fly? Eat a bat.
Want a hint? Zap a wand of make invisible on your weapon!
Want fun? Throw a potion in a pool and go swimming!
Want to conserve your dead corpses? Go to the tin factory!
Wanted: shopkeepers. Send a scroll of mail to: Mage of Yendor/Level 35/Dungeon.
Warning: end of file 'fortunes' reached.
Warning: people who eat dragons can go to hell!!
Watch your steps on staircases.
Wear armor, going naked seems to offend public decency in here.
What a pity, you cannot read it!
What do you think is the use of dead lizards?
What do you think would be the use of a two handed sword called "Orcrist" ?
When a piercer drops in on you, you will be tempted to hit the ceiling!
When in a maze follow the right wall and you will never get lost.
When in a shop, do as shopkeepers do.
When punished, watch your steps on the stairs!
When you have a key, you don't have to wait for the guard.
When you have seen one killer bee, you have seen them all.
When your dog follows you through a trap door, don't hit it!
Where do you think all those demons come from? From Hell, of course.
Where do you think the hell is located? It must be deep, deep down.
Who should ever have thought one could live from eating fog clouds?
Why a "2" for the postman? Well, how many times does he ring?
Why should one ever throw an egg to a cockatrice?
Why would anybody in his sane mind engrave "Elbereth" ?
Wish for a master key and open the Magic Memory Vault!
Wish for a pass-key and pass all obstacles!
Wish for a skeleton-key and open all doors!
Wishing too much may bring you too little.
Wizards do not sleep.
You are heading for head-stone for sure.
You are just the kind of bad food some monsters like to digest.
You can always wear an elven cloak.
You can eat what your dog can eat.
You can get a genuine Amulet of Yendor by doing the following: -- more --
You can't get rid of a cursed plate mail with a can-opener.
You can't leave a shop through the back door: there ain't one!
You cannot ride a long worm.
You cannot trust scrolls of rumour.
You die...
You feel greedy and want more gold? Why don't you try digging?
You feel like someone is pulling your leg.
You have to outwit a Sphynx or pay her.
You may get rich selling letters, but beware of being blackmailed!
You may have a kick from kicking a little dog.
You might choke on your food by eating fortune cookies.
You might cut yourself on a long sword.
You might trick a shopkeeper if you're invisible.
You need a key in order to open locked doors.
You offend Shai-Hulud by sheathing your crysknife without having drawn blood.
You want to regain strength? Two levels ahead is a guesthouse!
You'll need a spear if you want to attack a Dragon.
You've got to know how to put out a yellow light.
Your dog can buy cheaper than you do.
Zapping a wand of Nothing Happens doesn't harm you a bit.
Zapping a wand of undead turning might bring your dog back to life.