$! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_VERIFY"))' $! $! This archive created by VMS_SHARE Version 7.2-007 22-FEB-1990 $! On 29-NOV-1993 14:50:40.77 By user MASMUMMY $! $! This VMS_SHARE Written by: $! Andy Harper, Kings College London UK $! $! Acknowledgements to: $! James Gray - Original VMS_SHARE $! Michael Bednarek - Original Concept and implementation $! $!+ THIS PACKAGE DISTRIBUTED IN 23 PARTS, TO KEEP EACH PART $! BELOW 30 BLOCKS $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. AAAREADME.TXT;1 $! 2. FG.HELP;1 $! 3. OBJECT.HELP;1 $! 4. RACE.HELP;1 $! 5. ROOM.HELP;1 $! 6. SPELL.HELP;1 $! 7. SR.COM;1 $! 8. SR.MAKE;1 $! 9. SR.PAS;1 $! 10. SRACT.PAS;1 $! 11. SRCLASS.PAS;1 $! 12. SRCOM.PAS;1 $! 13. SRGOD.COM;1 $! 14. SRGOD.MAKE;1 $! 15. SRGOD.PAS;1 $! 16. SRGODACT.PAS;1 $! 17. SRINIT.PAS;1 $! 18. SRIO.PAS;1 $! 19. SRMAP.PAS;1 $! 20. SRMENU.PAS;1 $! 21. SRMISC.PAS;1 $! 22. SRMOVE.PAS;1 $! 23. SROP.PAS;1 $! 24. SROTHER.PAS;1 $! 25. SRSYS.PAS;1 $! 26. SRTIME.PAS;1 $! $set="set" $set symbol/scope=(nolocal,noglobal) $f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID")) $e="write sys$error ""%UNPACK"", " $w="write sys$output ""%UNPACK"", " $ if f$trnlnm("SHARE_LOG") then $ w = "!" $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $UNPACK: SUBROUTINE ! P1=filename, P2=checksum $ if f$search(P1) .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped." $ delete 'f'* $ exit $file_absent: $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'." $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped." $ delete 'f'* $ exit $dirok: $ w "-I-PROCESS, Processing file ''P1'." $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1' PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:= CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b)); LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION( BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1); IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE; MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1; ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")= 1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF"; POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r); ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1; COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE, "output_file"));ENDPROCEDURE;Unpacker;QUIT; $ delete/nolog 'f'* $ CHECKSUM 'P1' $ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT $ e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ ENDSUBROUTINE $START: $ create 'f' X`7B------------------------------------------------------------------------- V-----`7D XWhat to do to get it all working: X XSR.COM X`09This is the file you @ which runs the makefile which actually makes X`09the executable. You'll have to redefine a few things here. X XSRGOD.COM X`09This is basically the same as the above file. The GOD program is what`20 X`09controls the random monsters... X XSRINIT.PAS X`09This contains a few constants in the very beginning which will need to X`09be redefined. X XSRCOM.PAS X`09This contains a brief procedure which associates certain usernames X`09(operators) with privileges. X XOnce you have the executables made, if you do not have a copy of datafiles, V it Xwill be necessary to rebuild the whole "world". To do this, you must have y Vour Xusername as SROP (This constant is in module SRINIT.PAS.). Then when you ru Vn Xthe game, it will ask you if you want to enter the system. Enter the system Xwith a Y, and then use the R command to rebuild. I think you need a note fr Vom Xyour mother to do this... X`7B------------------------------------------------------------------------- V-----`7D XFiles and descriptions: XSR.PAS X`09This is the main unit of the user-run executable. It contains things X`09like getting the user into the game, etc. It also contains all the X`09keyboard information. (What command each key executes...) X XSRACT.PAS X`09This module handles the acts which are received by the mailbox (sent by X`09other users) X XSRCLASS.PAS X`09This module contains information about the classes. It may be tailored X`09as the operator sees fit. X XSRCOM.PAS X`09This module handles a majority of the user's commands from the main X`09prompt. X XSRGOD.PAS X`09This is the main unit of the spawned process. It controls monsters X`09movement, and getting them into the game. X XSRGODACT.PAS X`09This module controls how the acts users send affect the random X`09monsters. X XSRINIT.PAS X`09This contains the datastructure, global variables and constants. X XSRIO.PAS X`09This contains the file IO. Opening files, reading them, etc... X XSRMAP.PAS X`09Originally, there was going to be a more complex map-generating X`09section, but this does an ok job of a random map generator. X XSRMENU.PAS X`09This module does all the menu stuff for the operators so customizing X`09things isn't quite so bad. X XSRMISC.PAS X`09This contains a lot of miscellaneous routines. X XSRMOVE.PAS X`09This was to contain mainly the character's movement, but it contains X`09other stuff too. X XSROP.PAS X`09This contains a majority of the operator's commands. X XSROTHER.PAS X`09This contains a few miscellaneous routines. X XSRSYS.PAS X`09This contains most of the system routines. It sets up the mailboxes, X`09the display's, handles the keyboard input, and much more! X XSRTIME.PAS X`09As in life, all things pass with time. The routines in this section X`09all happen at a certain time. For example, every 10 seconds (I think) X`09a player will heal a certain amount. X`7B------------------------------------------------------------------------- V-----`7D XThe game: X`09Currently, players are to run around, and beat up random monsters as Xwell as each other. I know it's not much of a goal, but if you'd like, it's Xpossible to create a monster called a BALROG, and then you can have fun tryi Vng Xto kill it. :) X X`09The world is created by the operators. They can customize the world X(rooms), objects, random monsters and spells. The game, much like UB's XMonster, is entirely in the hands of the operators. The setting I have chos Ven Xis a fantasy-like setting with wizards, and spells, etc. With the way the Xspells and objects are set up, different scenario's may be easily devised. XEverything except the classes are customizable inside the game. X X`09To get to the op menu, a capital O from the main menu will do the Xtrick. From there, the ? or h key will get a menu up in the upper right han Vd Xcorner which should have all the commands. X XAllocating stuff: X`09Before you can make objects, races, rooms, or spells, you will have to Xallocate them. This is accomplished from the System menu. Once they are Xallocated, you have to make them (M from the Op menu, I think.) Then you ca Vn Xedit them to your liking. Keep in mind your disk quota before you allocate V too Xmuch stuff... X XRooms: X`09You might as well make all rooms as large as possible (132 x 64). It Xdoesn't take any extra space, and you can always wall-off parts not used. X X`09There are two things in a room...there is the background, and the Xforeground. The background is basically text characters. You can import a Xtext background from any standard ascii file into the game. When you edit a Xroom, it will prompt you as to whether you want to edit the characteristics X(size, level of difficulty, etc), or the background. Certain things in the Xbackground are predefined. Such as a "`5E" for mountains...which will slow V you Xdown when you walk on it. X X`09Foregrounds are something different. You can customize around 54 Xforegrounds for a particular room. These can be trees, sliding floors, Xshrines, walls, poison swamps, etc. Standing on some foregrounds can turn Xothers off, etc. You can get pretty tricky with foregrounds if you've got t Vhe Xtime. Foreground data is edited from a different menu than the room data. V Two Xseparate files are used simply becuase one record exceeds the maximum record Xsize. X XExits: X`09Exits can be made to be a face exit (if you walk off the north face of Xa room, you can appear on a different face of another room (or the same room V)). XThis is customized in the room menu. Exits can also be associated with a Xforeground. For example, if you're on a lake, you can customize a lake Xforeground to be an exit to another room. Then you may go through the exit V if Xyou are on any location of the lake. (The 5 key makes you go through an exi Vt Xif possible.) X XObjects: X`09When an objects is first created, it will ask you what type you want it Xto be. Examples are armor, weapon, miscellaneous object. Actually, an obje Vct Xcan have any parameter type. So it may be armor, as well as a weapon, the Xpresets are merely for convenience. X XRaces: X`09Everything moving around in the realm is of a certain race. Each race Xhas it's own individual stats. In addition, some races may be customized to Xhave natural weapons (spells) such as claws/fiery breath. To do something l Vike Xthat, you would create a spell "Claw", and then customize the race to have t Vhe Xattack spell "Claw". X XClasses: X`09For every stat available in one's race, there is a class stat. The Xtotal stat for a person is the sum of their racial stat and their class stat Xplus whatever bonuses that person has achieved. Classes, unlike races, do n Vot Xhave any intrinsic weapon. X XBonuses: X`09When you kill a random monster, or another player, you will probably Xgain a certain amount of points. This is dependant on the other player's ki Vll Xratio, as well as their race. Nasty monsters/races should be customized to Xhave a higher "point" value. X X`09In order to use these points, the player must find a "college" or a Xplace of learning. A foreground must be customized as such. Once on this Xforeground, when the player prays, the points will disappear, and will incre Vase Xhis stats in the appropriate area as dictated by the type of college. X XSpells: X`09Spells are the building blocks of attack forms. They can be circles, Xlines, or squares. Each spell is composed of it's own element. i.e. Fire, Xcold, etc... Therefore some creatures will be more resistant to certain Xelements (dragons to fire, etc.) Spells can be learned if one prays on the Xappropriate college type foreground. If a spell is of the "weapon" or X"natural" type, then it will not be able to learned. If this were so, then Xsomeone praying on the "Weapon" type foreground would not only increase weap Von Xproficiency, but could learn a Sword spell. Objects when used to attack wil Vl Xinvoke the spell they are customized with. X`7B------------------------------------------------------------------------- V-----`7D X`09`09`09That's all folks! X X`09`09`09`09`09`09-Peter Beaty X`09`09`09`09`09`09 maself@ubvms.cc.buffalo.edu X MASELF@UBVMS $ CALL UNPACK AAAREADME.TXT;1 404697241 $ create 'f' XHurt: X 1 - attack form (fire,force, etc...) X 2 - damage X 3 - randomness of damage X XRace: X 1 - Race number to be changed to. X XDoor: X 1 - Foreground to be toggled to. X One foreground simply replaces itself with another foreground, X so an open door will be replaced by a closed door. X (If you want, a closed door may be replaced by something else...) X XClass: X 1 - The number of the class to be changed to. X XShop: X 1 - For a value of 0 :The shop is an op-only drop shop. X`09`09`09 Infinite # of items available. X For a value of -1 :Anyone can get/drop an item. X`09`09`09 Only one may be taken for one dropped. XCollege: X 1 - This will affect an attribute (Health, etc...) X 2 - This will affect an proficiency. $ CALL UNPACK FG.HELP;1 141051571 $ create 'f' XWeight - This is how much time (in hundredths) will be added to one's mov Ve X delay when carried. XComponent - What it takes to make the object. XParm - Each object may have up to 20 parrameters. X A parameter can affect spell proficiencies, armor, etc. $ CALL UNPACK OBJECT.HELP;1 352669019 $ create 'f' Xmost of it is self-explanitory. XThe sound the race makes is a string returned if someone does a listen Xwithin hearing distance of the race. $ CALL UNPACK RACE.HELP;1 1931634073 $ create 'f' Xlevel - This determines how difficult the randoms which are generated will b Ve. X A random monsters "level" is what it is customized as (points), plus X it's particular class points. Xkind - This is for random generation. Put a 1 here for random generation, X otherwise leave it 0. Xsize - How many characters high/wide the room is. Xexits - Each room may have a face exit to other rooms. (Or itself for X wraparound.) $ CALL UNPACK ROOM.HELP;1 218498863 $ create 'f' XEffect - Can be a hurt or freeze type spell. XOffensive - For random monster's information. X (Teleportation would be defensive...) XElement - The physical make-up of the spell (fire, force, etc...) XCaster - If the caster is to be effected by the spell. (in addition to e Vveryone X`09 else) XMana - How much mana is expended by the caster. X If the spell is used as a natural or equipped weapon, mana is X not expended. XDifficulty - How hard it is to cast the spell. X Success chance = (random # 0..100 + proficiency > difficulty) XCast. time - time it takes to cast spell (in hundredths of a second). XDuration - If the spell is long lasting, this is how long it lasts. X`09 (seconds) XCasterdesc - Text message caster sees when casting spell. +-+-+-+-+-+-+-+- END OF PART 1 +-+-+-+-+-+-+-+-