diff --git a/hack/Makefrag b/hack/Makefrag new file mode 100644 index 0000000..eabbd2a --- /dev/null +++ b/hack/Makefrag @@ -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 diff --git a/hack/Makequest b/hack/Makequest new file mode 100644 index 0000000..256d836 --- /dev/null +++ b/hack/Makequest @@ -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 , 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 diff --git a/hack/OWNER b/hack/OWNER new file mode 100644 index 0000000..be2d1e5 --- /dev/null +++ b/hack/OWNER @@ -0,0 +1,2 @@ +Andries Brouwer +mcvax!aeb diff --git a/hack/Original_READ_ME b/hack/Original_READ_ME new file mode 100644 index 0000000..3787a9d --- /dev/null +++ b/hack/Original_READ_ME @@ -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. diff --git a/hack/READ_ME b/hack/READ_ME new file mode 100644 index 0000000..0f3aa89 --- /dev/null +++ b/hack/READ_ME @@ -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. diff --git a/hack/data b/hack/data new file mode 100644 index 0000000..5d8d509 --- /dev/null +++ b/hack/data @@ -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 diff --git a/hack/hh b/hack/hh new file mode 100644 index 0000000..d777102 --- /dev/null +++ b/hack/hh @@ -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: fast movement in direction + (until something interesting is seen) + m: 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 diff --git a/hack/pathnames.h.in b/hack/pathnames.h.in new file mode 100644 index 0000000..a03f407 --- /dev/null +++ b/hack/pathnames.h.in @@ -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@" + diff --git a/hack/rumors b/hack/rumors new file mode 100644 index 0000000..9435a5f --- /dev/null +++ b/hack/rumors @@ -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.