|
|
1.1 ! root 1: Hack is a display oriented dungeons & dragons - like game. ! 2: Both display and command structure resemble rogue. ! 3: (For a game with the same structure but entirely different display - ! 4: a real cave instead of dull rectangles - try Quest) ! 5: ! 6: Hack was originally written by Jay Fenlason (at lincolnsudbury: ! 7: 29 East St., Sudbury Mass., 01776) with help from ! 8: Kenny Woodland, Mike Thome and Jon Payne. ! 9: Basically it was an implementation of Rogue, however, with 52+ instead of 26 ! 10: monster types. ! 11: The current version is more than thrice as large (with such new features as ! 12: the dog, the long worms, the shops, etc.) and almost entirely rewritten ! 13: (only the display routines are the original ones - I must rewrite these ! 14: too one day; especially when you are blind strange things still happen). ! 15: ! 16: Files for hack: ! 17: hack The actual game ! 18: record Top 100 list (just start with an empty file) ! 19: news Tells about recent changes in hack, or bugs found ... ! 20: (Just start with no news file.) ! 21: data Auxiliary file used by hack to give you the names ! 22: and sometimes some more information on the ! 23: objects and monsters. ! 24: help Introductory information (no doubt outdated). ! 25: hh Compactified version of help. ! 26: perm An empty file used for locking purposes. ! 27: rumors Texts for fortune cookies. ! 28: (Some of these contain information on the game, ! 29: others are just plain stupid. Additional rumors ! 30: are appreciated.) ! 31: hack.sh A shell script. ! 32: (We have hack.sh in /usr/games/hack and ! 33: hack in /usr/games/lib/hackdir/hack and all the other ! 34: hack stuff in /usr/games/lib/hackdir - perhaps this ! 35: will make the script clear. ! 36: There is no need for you to use it.) ! 37: READ_ME This file. ! 38: Original_READ_ME Jay Fenlason's READ_ME ! 39: ! 40: System files used: ! 41: /etc/termcap Used in conjunction with the environment variable ! 42: $TERM. ! 43: /bin/cat ! 44: /usr/ucb/more ! 45: /bin/sh Used when $SHELL is undefined. ! 46: ! 47: How to install hack: ! 48: 0. Compile the sources. Perhaps you should first look at the file config.h ! 49: and define BSD if you are on a BSDtype system, ! 50: define STUPID if your C-compiler chokes on complicated expressions. ! 51: Make sure schar and uchar represent signed and unsigned types. ! 52: If your C compiler doesnt allow initialization of bit fields ! 53: change Bitfield. When config.h looks reasonable, say 'make'. ! 54: (Perhaps you have to change TERMLIB in the makefile.) ! 55: 1. If it didnt exist already, introduce a loginname `play' . ! 56: 2. The program hack resides in a directory so that it is executable ! 57: for everybody and is suid play: ! 58: ---s--s--x 1 play 206848 Apr 3 00:17 hack ! 59: Perhaps you wish to restrict playing to certain hours, or have games ! 60: running under nice; in that case you might write a program play.c ! 61: such that the program play is suid play and executable for everybody ! 62: while all the games in /usr/games are readable or executable for ! 63: play only; all the program play does is asking for the name of a game, ! 64: checking that time-of-day and system load do not forbid playing, ! 65: and then executing the game. Thus: ! 66: -r-sr-sr-x 1 play 13312 May 24 12:52 play ! 67: ---x------ 1 play 206848 Apr 3 00:17 hack ! 68: If you are worried about security you might let play do ! 69: chroot("/usr/games") so that no player can get access to the rest ! 70: of the system via shell escapes and the likes. ! 71: If you #define SECURE in config.h then hack will not setuid(getuid()) ! 72: before executing a chdir(). Hack will always do setuid(getuid()) with ! 73: a fork. If you do not define UNIX then hack will not fork. ! 74: 3. The rest of the stuff belonging to hack sits in a subdirectory hackdir ! 75: (on our system /usr/games/lib/hackdir) with modes ! 76: drwx------ 3 play 1024 Aug 9 09:03 hackdir ! 77: Here all the temporary files will be created (with names like xlock.17 ! 78: or user.5). ! 79: 4. If you are not really short on file space, creating a subdirectory ! 80: hackdir/save (modes again drwx------) will enable users to save their ! 81: unfinished games. ! 82: ! 83: The program hack is called ! 84: $ hack [-d hackdir] [maxnrofplayers] ! 85: (for playing) or ! 86: $ hack [-d hackdir] -s [listofusers | limit | all] ! 87: (for seeing part of the scorelist). ! 88: The shell file hack (in this kit called hack.sh) takes care of ! 89: calling hack with the right arguments. ! 90: ! 91: Send complaints, bug reports, suggestions for improvements to ! 92: mcvax!aeb - in real life Andries Brouwer.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.