-+-+-+-+-+-+-+-+ START OF PART 2 -+-+-+-+-+-+-+-+ X`09`09`09`09 ************************* XInstallation Docs and Manifest for ** BOSS : Beyond Moria ** X`09`09`09`09 ************************* X X`09`09`09`09 (Version 2.0) X XMANIFEST: X-------- X`20 XBOSS.PAS - The main Pascal source program to the game X X*.INC - These files are all of the include files used X`09 when compiling BOSS.PAS. They have been created X`09 to ease finding certain sections of code. These X`09 34 files require about 1 megabyte of storage. X X*.MAR - These are the MACRO source files for some subroutines which X are needed by BOSS.PAS. Note that these are identical to the X macro files from MORIA. These 11 files require about 30k of X storage`20 X X*.DAT - A set of data files that the program uses when it runs. X`09 All data files must have appropriate world X`09 protections set. X `20 XMONSTERS.DAT - Monster list. `09`09`09 `5BWorld Read`5D X XOBJECTS.DAT - Dungeon items.`09`09`09 `5BWorld Read`5D X XINVENT.DAT - Store items.`09`09`09 `5BWorld Read`5D`20 X XSKILLS.DAT - Skill list`09`09`09 `5BWorld Read`5D`20 X XHOURS.DAT - A file containing the valid hours `5BWorld Read`5D X`09 for playing BOSS.`20 X XMESSAGE.DAT - This file is displayed as the opening `5BWorld Read`5D X`09 page of Boss when it is executed. `20 X`09 Messages can be changed, but please`20 X`09 don't change the credits. `20 X XBOSSCHR.DAT - This file contains the database of `5BWorld Read,Write,Exe Vcute`5D X`09`09valid Boss saved characters. It is`20 X`09`09an encrypted file and so editing it`20 X`09`09may corrupt it. `20 X XBOSSTOP.DAT - The high score file for Boss. `5BWorld Read,Write`5D X XWIZARD.DAT - This is a datafile containing the `5BWorld Read`5D X`09 usernames of all valid wizards.`20 X X`09`09A 'wizard' is a person that has X`09`09special game functions available for X`09`09bug testing and administrative needs. X X`09`09Note that people in this file do not need X`09`09to enter the wizard password in X`09`09order to enter wizard mode. X X`09`09The password is used in cases where X`09`09a non-wizard is playing and needs help X`09`09in fixing something. `20 X X XQUOTES.DAT - File of random quotes.`09 `5BWorld Read`5D X XUSERS.DAT - List of everyone who has ever`09 `5BWorld Read,Write`5D X`09 played your version of BOSS.`20 X XLOSER.DAT - File full of usernames that you `5BWorld Read`5D X`09 don't want to play your version of`20 X`09`09BOSS. These users get mysteriously X disconnected. `20 X XPUTZS.DAT - File of usernames that you may wish `5BWorld Read`5D X`09 to discourage from playing. These`20 X`09`09people get triple the usual random`20 X`09`09wierdnesses. (See mess_with_mind()`20 X`09`09in MISC.INC.) X XBUS.DAT - A silly picture of a bus that `5BWorld Read`5D X`09 appears when the player changes `20 X`09`09towns. X XBOSSLOG.DAT - Playlog. CLEANLOG.COM can set this `5BWorld Write`5D`20 X`09`09file up for you. X XNEWUSER.TXT - File that gets displayed to first `5BWorld Read`5D X`09 time players. `20 X`20 XBOSSHLP.HLB - The online help library. `5BWorld Read`5D X`20 XBOSSHLP.HLP - The source code for the online`20 X`09 help libray. `20 X XWISH.LIST - A text file containing some ideas`20 X`09 for further modifications to boss`20 X`09`09that we finally added or never got`20 X`09`09around to. X XBUGS.TXT - Known bugs in BOSS. X XBUILD.COM - a DCL com file that handles the nastiness of compiling this X monster, moving it into the right directory, and setting X appropriate protections on it. Also handles other matters X such as maintaining the help files, etc. X`20 X*.DOC`09 - A bunch of support docs that help explain the X`09 monster and item files. If you can figure out X`09`09how to customize your creatures and objects,`20 X`09`09go for it! X X XInstallation: X------------- X XOk. Now that you know what everything is, here's what you do next: X X1) Move to the `5B.boss.dat`5D directory and run the CLEANLOG.COM X file to create a blank playlog. Type "@cleanlog" X X2) Move back to your `5B.boss`5D directory and type "@build macros" to creat Ve X the macro library (the machine language patches to BOSS). X X3) Type "@build" to compile the entire program. Sit back and wait. This X takes a while. There should be one warning from the compiler that you X can ignore, and one from the linker as well. Don't sweat it, we don't. X X4) Edit STARTUP.COM to correctly define "datadir" and "bossdir" up at the to Vp. X X5) Run the program once and it will create several other data X files that you need. Just type "@startup" and let it go! X X6) Now you need to set the protections on all the files as listed above. X If you don't know how to do this, type "help set protection" and learn. X Another method of setting protections is by using acl's. SETACLS.COM is X an example of how protections could be set up. Type "help set/acl" X for more information. X X7) Inform your users of what you've done. Have them put the line: X X $ boss :== @your_disk:`5Byour_directory.boss`5Dstartup.com X X in their LOGIN.COM files. Obviously, you have to replace "your_disk" X and "your_directory" with the appropriate values which you can find by X typing "show default". This way, they'll be able to just type "boss" X at the command line to run the program. If they have a save file, they X just type its name in after: "boss cool_wrestler.sav" X X8) If you have any major problems with the above or suggestions X on how to improve this system, feel free to mail us. X X`09`09`09`09`09 raoul@u.washington.edu X`09`09`09`09`09 cloister@u.washington.edu X X9) Number nine...number nine...number nine... X X $ CALL UNPACK INSTALL.DOC;1 1683505033 $ create 'f' X$! keep this file around. you need it to make '@build lock' X$! and '@build unlock' work. X$! X$ write sys$output " " X$ write sys$output " " X$ write sys$output " The BOSS is taking a vacation." X$ write sys$output " Let him rest and enjoy himself without" X$ write sys$output " worrying about you ruining his" X$ write sys$output " stay in pago-pago." X$ write sys$output " " X$ write sys$output " " X$ write sys$output " No, actually changes are being made.." X$ write sys$output " BOSS should be back online in a day or s Vo." X$ exit $ CALL UNPACK LOCK.COM;1 1014392199 $ create 'f' X$ set verify ! so you can see what's going on as it happens. X$! X$! let's have some directories. X$ create/dir `5B.boss`5D `20 X$ create/dir `5B.boss.etc`5D X$ create/dir `5B.boss.inc`5D X$ create/dir `5B.boss.dat`5D X$ create/dir `5B.boss.mar`5D X$! X$! move files into the main boss directory X$ if f$search("mailinstruct.txt") .nes. "" ! this file might not exist, so X$ then ! don't freak if it's not there. X$ rename MAILINSTRUCT.TXT `5B.boss`5DMAILINSTRUCT.TXT X$ endif X$ rename BOSS.PAS `5B.boss`5DBOSS.PAS`20 X$ rename BUILD.COM `5B.boss`5DBUILD.COM`20 X$ rename INSTALL.DOC `5B.boss`5DINSTALL.DOC`20 X$ rename STARTUP.COM `5B.boss`5DSTARTUP.COM`20 X$ rename LOCK.COM `5B.boss`5DLOCK.COM X$! X$! dat directory:`20 X$ rename SETACLS.COM `5B.boss.dat`5DSETACLS.COM X$ rename BOSSHLP.HLP `5B.boss.dat`5DBOSSHLP.HLP`20 X$ rename BOSSTOP.DAT `5B.boss.dat`5DBOSSTOP.DAT`20 X$ rename BUS.DAT `5B.boss.dat`5DBUS.DAT`20 X$ rename CLEANLOG.COM `5B.boss.dat`5DCLEANLOG.COM`20 X$ rename HOURS.DAT `5B.boss.dat`5DHOURS.DAT`20 X$ rename LOSER.DAT `5B.boss.dat`5DLOSER.DAT`20 X$ rename MONSTERS.DAT `5B.boss.dat`5DMONSTERS.DAT`20 X$ rename NEWUSER.TXT `5B.boss.dat`5DNEWUSER.TXT`20 X$ rename PUTZS.DAT `5B.boss.dat`5DPUTZS.DAT`20 X$ rename USERS.DAT `5B.boss.dat`5DUSERS.DAT`20 X$ rename MESSAGE.DAT `5B.boss.dat`5DMESSAGE.DAT`20 X$ rename WIZARD.DAT `5B.boss.dat`5DWIZARD.DAT`20 X$ rename OBJECTS.DAT `5B.boss.dat`5DOBJECTS.DAT X$ rename INVENT.DAT `5B.boss.dat`5DINVENT.DAT X$ rename QUOTES.DAT `5B.boss.dat`5DQUOTES.DAT X$ rename SKILLS.DAT `5B.boss.dat`5DSKILLS.DAT X$! X$! etc directory:`20 X$ rename BUGS.TXT `5B.boss.etc`5DBUGS.TXT`20 X$ rename CREATURE.DOC `5B.boss.etc`5DCREATURE.DOC`20 X$ rename ITEMFLAGS.DOC `5B.boss.etc`5DITEMFLAGS.DOC`20 X$ rename OBJECT.DOC `5B.boss.etc`5DOBJECT.DOC`20 X$ rename WISH.LIST `5B.boss.etc`5DWISH.LIST`20 X$! X$! inc directory:`20 X$ rename CONSTANTS.INC `5B.boss.inc`5DCONSTANTS.INC`20 X$ rename CREATE.INC `5B.boss.inc`5DCREATE.INC`20 X$ rename CREATURE.INC `5B.boss.inc`5DCREATURE.INC`20 X$ rename DATAFILES.INC `5B.boss.inc`5DDATAFILES.INC`20 X$ rename DEATH.INC `5B.boss.inc`5DDEATH.INC`20 X$ rename DESC.INC `5B.boss.inc`5DDESC.INC`20 X$ rename DEVICE.INC `5B.boss.inc`5DDEVICE.INC`20 X$ rename DISPLAY.INC `5B.boss.inc`5DDISPLAY.INC`20 X$ rename EAT.INC `5B.boss.inc`5DEAT.INC`20 X$ rename FILES.INC `5B.boss.inc`5DFILES.INC`20 X$ rename FLOPPY.INC `5B.boss.inc`5DFLOPPY.INC`20 X$ rename GENERATE.INC `5B.boss.inc`5DGENERATE.INC`20 X$ rename HELP.INC `5B.boss.inc`5DHELP.INC`20 X$ rename IO.INC `5B.boss.inc`5DIO.INC`20 X$ rename MAIN.INC `5B.boss.inc`5DMAIN.INC`20 X$ rename MISC.INC `5B.boss.inc`5DMISC.INC`20 X$ rename OBJECTS.INC `5B.boss.inc`5DOBJECTS.INC`20 X$ rename POTIONS.INC `5B.boss.inc`5DPOTIONS.INC`20 X$ rename PRAYER.INC `5B.boss.inc`5DPRAYER.INC`20 X$ rename RAYGUN.INC `5B.boss.inc`5DRAYGUN.INC`20 X$ rename SAVE.INC `5B.boss.inc`5DSAVE.INC`20 X$ rename SKILLS.INC `5B.boss.inc`5DSKILLS.INC`20 X$ rename STORE1.INC `5B.boss.inc`5DSTORE1.INC`20 X$ rename STORE2.INC `5B.boss.inc`5DSTORE2.INC`20 X$ rename TECH.INC `5B.boss.inc`5DTECH.INC`20 X$ rename TERMDEF.INC `5B.boss.inc`5DTERMDEF.INC`20 X$ rename TRAIN.INC `5B.boss.inc`5DTRAIN.INC`20 X$ rename TREASURE.INC `5B.boss.inc`5DTREASURE.INC`20 X$ rename TRICK.INC `5B.boss.inc`5DTRICK.INC`20 X$ rename TYPES.INC `5B.boss.inc`5DTYPES.INC`20 X$ rename VALUES.INC `5B.boss.inc`5DVALUES.INC`20 X$ rename VARIABLES.INC `5B.boss.inc`5DVARIABLES.INC`20 X$ rename WIERD.INC `5B.boss.inc`5DWIERD.INC`20 X$ rename WIZARD.INC `5B.boss.inc`5DWIZARD.INC`20 X$! X$! mar directory:`20 X$ rename BITPOS.MAR `5B.boss.mar`5DBITPOS.MAR`20 X$ rename DISTANCE.MAR `5B.boss.mar`5DDISTANCE.MAR`20 X$ rename INSERT.MAR `5B.boss.mar`5DINSERT.MAR`20 X$ rename MAXMIN.MAR `5B.boss.mar`5DMAXMIN.MAR`20 X$ rename MINMAX.MAR `5B.boss.mar`5DMINMAX.MAR`20 X$ rename PUTQIO.MAR `5B.boss.mar`5DPUTQIO.MAR`20 X$ rename RANDINT.MAR `5B.boss.mar`5DRANDINT.MAR`20 X$ rename RANDREP.MAR `5B.boss.mar`5DRANDREP.MAR`20 X$ set noverify X$ write sys$output "Ok. Now move into your new `5B.boss`5D subdirectory " X$ write sys$output "and follow the instructions in install.doc" $ CALL UNPACK ORGANIZE.COM;1 894019592 $ create 'f' X$! X$ define datadir disk$a:`5Bcloister.foo.boss.dat`5D X$ define bossdir disk$a:`5Bcloister.foo.boss`5D X$ X$ if p1 .eqs. "SCORE" then goto score X$ if p1 .eqs. "HELP" then goto help X$ X$ normal: X$! set mess/nof/nos/noi/not X$ X$ !update playlog X$ open/append file datadir:bosslog.dat X$ string = "New Character" X$ if p1 .nes. "" then string = p1 X$ usernam = f$getjpi("","username") X$ line = f$edit(f$getsyi("nodename"),"trim") + "::" + usernam X$ line = line + " started at:"+f$time()+" : "+string X$ write file line X$ close file X$ X$ !check user file. X$ open/read/write/share userfile datadir:users.dat X$ X$ userloop: X$ read/end=newuser userfile line X$ if line .eqs. usernam X$ then X$ close userfile X$ goto start X$ endif X$ goto userloop X$ X$ newuser: X$ write userfile usernam X$ close userfile X$ type/page datadir:newuser.txt X$ inquire hitpage "`09`09`09Press to play." X$ X$ X$ !---start the game--- X$ start: X$ commandline = f$trnlnm ("MAS$DRVCOM") X$ define /nolog sys$input tt X$ define /nolog/user sys$command tt X$ write sys$output commandline X$ mcr bossdir:boss.exe 'commandline 'p1 X$ X$ X$ !update the playlog and exit X$ open/append file datadir:bosslog.dat X$ line = f$edit(f$getsyi("nodename"),"trim")+"::"+usernam X$ if f$extract(0,4,line) .eqs. "MAX:" then line = line + " " X$ if f$extract(0,4,line) .eqs. "VAX1" then line = line + " " X$ line = line + " finished at:"+f$time()+" : "+string X$ write file line X$ close file X$ set mess/s/f/i/t X$ goto exiting X X$ score: X$ n = 0 X$ write sys$output "Username Points Character Level Qu Vality Class" X$ open/read scorefile datadir:bosstop.dat X$ scoreloop: X$ read/end=done scorefile line X$ write sys$output line X$ n = n + 1 X$ if n .eq. 20 then goto pause X$ goto scoreloop X X$ pause: X$ n = 0 X$ inquire line "press enter to continue" X$ if line .eqs. " " then goto done X$ goto scoreloop X X$ done: X$ close scorefile X$ goto exiting X`20 X$ help: X$ spawn/nowait help/prompt/page/noliblist/library=datadir:bosshlp.hlb X$ X$ exiting: X$ deassign datadir X$ deassign bossdir X$ exit X $ CALL UNPACK STARTUP.COM;1 1142783574 $ create 'f' X1 ADVENTURING X`20 X2 Armor-Class X Armor class is a number that describes the amount and the Xquality of armor begin worn. Armor class will generally run from Xabout 0 to 100, but could become negative or greater than 100 in Xsome cases. `20 X`20 X The larger your armor class, the more protective it is. A Xnegative armor class would actually help get you hit. Armor Xprotects you in three manners. One, it makes you harder to be Xhit for damage. A hit for no damage is the same as a miss. Two, Xgood armor will absorb some of the damage that your character Xwould have taken. An armor class of 100 would absorb 25% of any Xdamage meant for him. Three, fire and acid damage are reduced by Xwearing body armor. It is obvious that a high armor class is a Xmust for surviving the lower levels of the Boss's realm. X`20 X Each piece of armor has an armor class adjustment, and a Xspecial bonus. Armor bought in town will have these values Xdisplayed with their description. Armor that is found within the Xrealm must be identified before these values will be displayed. +-+-+-+-+-+-+-+- END OF PART 2 +-+-+-+-+-+-+-+-