-ð- IMPLEMENTOR'S HANDBOOK for LEGENDS version 6.1 -ð- Documentation and program written by: Jeffrey D. Hoffman Copyright (c) 1992-1995. All Rights Reserved. Forward Section I: The Joy of Implementing "As an Implementor always remember that when two roads diverge in a forest, you should create a new one in the middle." - SlashStormBringer. This documentation delves deep into the heart of the LEGENDS game engine and explain the intricate ways that items, monsters, events, and everything else interact to form the believable world you will be implementing ideas into. Each section outlines the screen (known as the gray editing screen) which allows you to create and modify aspects of the world. There is, however, a limit to what I can explain and dictate inside these pages. It is important that as an Implementor you strive to discover new things that can be done with each of the different things you can create. Despite the fact that I have designed the whole system, there are many times when, while creating a quest, I will discover that I can do something I never knew about - something I had never expected I could do. This is especially important in regard to events. There is tremendous power in the event system that only LEGENDS has. Not a day goes by that I am not awe-struck by the capabilities that events have. If you are reading this, two things have happened. You have received the power of an Implementor and the realm is in your hands. It is yours to craft and expand as your heart desires. The second thing that has happened is that you are doing the right thing - reading about the powers you have possess. I have gone to the core of LEGENDS and brought out a wealth of knowledge that I am giving to you now. So, together our journey begins ... Jeffrey D. Hoffman, creator. Section II: Final notes First, this documentation assumes complete understanding of how LEGENDS is played. Knowledge of the commands, features, and ways items-monsters-players interact with the LEGENDS world is expected. Even if you have experience with previous versions of LEGENDS, your knowledge will be limited because of the recent changes in the game. Secondly, I would also like to discuss genders, as I always do. To avoid confusion in this documentation, I will universally refer to players as a She despite the fact that characters may be portrayed as either male or female, if you are a creative, innovative player. Thirdly, I have switched references from DemiGOD to Implementor, because after all, you are implementing new ideas and new areas -- being God-like has nothing to do with this ability. Implementing requires thought whereas being a God simply requires storming around, larger-than-life, wearing a toga and leaves in your hair -- which, by the way, has nothing to do with LEGENDS. (Grin.) -ð- Table of Contents -ð- Chapter I .............................. The privileged commands Chapter II ..................... Implementation of atm. messages Chapter III ............................ Implementation of exits Chapter IV ............................ Implementation of events Chapter V .............................. Implementation of items Chapter VI .......................... Implementation of monsters Chapter VII ......................... Implementation of response Chapter VIII ........................... Implementation of rooms Chapter IX ............................ Implementation of spells Chapter X .............................. Implementation of zones Chapter I: The privileged commands Implementors have whole slew of new commands available at their fingertips to forge new areas in the realm. Although what abilities you have depend on the decision of the God of the realm (also known as your SYSOP), the following section outlines all of the commands and how they are used. This section does not waste space examining the commands that are repeated in the PLAYERS HANDBOOK. One important note is that almost all of the commands which you will use to implement ideas in LEGENDS are condensed to one- or two-letter commands. The name of the command will follow the condensed version in parenthesis (). %E (ENVIRONMENT) The environment command projects a message of your specification to every player who is currently on-line, regardless of location in the realm. This is a valuable command for Implementors who understand the value of detail and special effects in role-playing. Command: %E Thunder roars from the peaks of StormGatherer. All players and other Implementors on-line would see: Thunder roars from the peaks of StormGatherer. %LE (LOCAL ENVIRONMENT) As suggested by the name of the command, the local environment command projects a message to players who are local to you - i.e., in the room with you when you perform the command. This is another valuable tool for Implementors who want to spice up a meeting or action. It can be used to give life to NPCs or cause interesting magics or actions occur to yourself or others in the room. Command: %LE Michael Thull adds, "I've 'erd it only wakes after midnight." Michael Thull adds, "I've 'erd it only wakes after midnight." CM (COPYMONSTER) This command allows you to duplicate a monster or NPC which is standing in the room with you at the time of the command. All attributes about the monster are copied exactly. Note, however, this command does not copy any spells that the monster knows, and therefore you must individually edit each monster if it has a spell casting percentage greater than zero. Command: cm thirteen-headed hydra CREATE [ATMOSPHERE, EVENT, EXIT, ITEM, MONSTER, RESPONSE, ROOM, SPELL, ZONE] This is the tool of implementation. By specifying the type of idea you wish to add into the game, you can access any of the built-in editing screens. These screens are described in the extensive chapters starting with the third. DV (DESTROYEVENT) As the name suggests, this command allows you to remove events from a room by destroying them. You specify the event by adding its command field following the DV. For example, to destroy an event that triggers on .PULL.PUSH. you would type: Command: dv .pull.push. DE (DESTROYEXIT) You can remove an existing exit that connects rooms with this command. Like all other DESTROY commands, this is change is permanent. Specify the exit you wish to destroy by adding the direction of the exit leading off from your current location. For example, to destroy an exit leading northwest from a chamber, you would type: Command: de nw DI (DESTROYITEM) Any guesses to what this command does? Odds are pretty sound that this command allows you to destroy an item that is currently in the room with you. You must identify the item you wish to destroy by the word(s) that were used in the item's keyword field when you created it. For example, a flaming halberd with a keyword of HALBERD would be destroyed like this: Command: di halberd DM (DESTROYMONSTER) Monsters, from time to time, no longer have any use in method of the realm, and therefore should be destroyed. Anyone with an intelligence of five or more can figure out that this command is the tool to use to do so. For example, I happened to find a pesky little Tarrasque (you know, those huge monsters sent to destroy the world) wandering around the courtyard of my fortress the other day. Needless to say, it was causing quite a stir -- eating the villagers, stepping on mountains, etc. --- so I happened to type: Command: dm tarrasque EA (EDITATMOSPHERE) To make changes to an existing atmospheric message you have created, use this command and specify the keyword of the atmosphere. The edit screen will appear and you can change the message as you like. Command: ea ghostwind EI (EDITITEM) Mistakes happen. To deal with mistakes in the items you create, use the edititem command to return to the editing screen which allows you to change it as needed. You must identify the item you wish to edit, which must also be in the room with you, by appending the keyword of the item after the EI command. Command: ei halberd EV (EDITEVENT) Mistakes happen. To deal with mistakes in the events you create, use the editevent command to return to the editing screen which allows you to change it as needed. You must identify the event you wish to edit by specifying either the first- or second-command field. The first example depicts the command used to edit an event that triggers upon .PULL.PUSH. The second command is editing an event that triggers upon any interaction with a coffin. Command: ev .pull.push. ev coffin EE (EDITEXIT) Mistakes happen. To deal with mistakes in the exits you create, use the editexit command to return to the editing screen which allows you to change it as needed. Specify the exit you wish to edit by specifying the direction of the exit from your current location. Command: ee nw EM (EDITMONSTER) Mistakes happen. To deal with mistakes in the monsters you create, use the editmonster command to return to the editing screen which allows you to change it as needed. Specify the monster you wish to edit, which must be standing in the room with you, by appending the name of the monster following the EM command. Command: em tarrasque ET (EDITRESPONSE) Mistakes happen. To deal with mistakes in the responses you create, use the editresponse command to return to the editing screen which allows you to change it as needed. Immediately following the command you must specify the name of the NPC who's response you wish to edit, followed by a comma (,), and concluded with the topic you want to edit. Command: et lord paramount, champions' test ER (EDITROOM) Mistakes happen. To deal with mistakes in the rooms you create, use the editroom command to return to the editing screen which allows you to change it as needed. Command: er EU (EDITSETUP) When teleporting from room to room, Implementors can have a custom message displayed to the players in the room which she leaves and in the one she arrives into. The editsetup command allows you to change your teleportation messages. Command: eu ES (EDITSPELL) Mistakes happen. To deal with mistakes in the spells you create, use the editspell command to return to the editing screen which allows you to change it as needed. You must specify the smell book which contains the spell you created, followed immediately by the name of the spell you wish to edit. For example, to edit the cleric spell cure light wounds, you would type: Command: es cleric cure light wounds EZ (EDITZONE) Mistakes happen. To deal with mistakes in the zones you create, use the editzone command to return to the editing screen which allows you to change it as needed. Specify the zone you wish to edit immediately after the EZ command. Command: ez 14 FA (FINDATMOSPHERES) This command will list out all atmospheric messages that have been written for a specific zone. Identify the zone you wish to view immediately following the FA command. You will see a list of the messages in that zone including all keywords, and the message itself. Command: fa 14 FV (FINDEVENTS) This command will list all events that are in your current location room. This listing includes a variety of important information. First, in parenthesis, the location that the event affects. Secondly the triggering commands and command noun (if any) are listed adjacent to a long string of periods (.). In the event is disarmed, these letters are printed in dark gray, while an active event is listed in green. Finally, the effect and any values that are used during that effect are listed. Command: fv FM (FINDMONSTERS) This command lists all monsters that were created to wander in a specified zone. This exhaustive list contains all monsters in the zone, and at a glance, displays what monsters are dead, which are alive, and other various stats. First, the monsters name is printed in color based on their alignment: green is good, blue is neutral, red is evil, and dark gray is dead. Following that is a list of stats include the monster's level, how much experience they grant upon being slain, their current hitpoints, and the percentage chance of casting a spell. In addition, the damage that the monster causes is also listed. Finally, the location of the monster is listed. After the list is completed, you will see a total amount of experience available if someone killed all of the monsters. Command: fm 14 GIVE The ability to move an item from your current location into the inventory of a monster also in the room is accomplished with the give command. Once an item is given to a monster, which by nature are greedy little creatures, the monster must be slain before the item can be recovered. Command: give tattered rags to nimweaver HIDE As discussed in the fourth chapter, events can bring items and monsters into the current location for purposes of an adventure. Those items and monsters must be hidden before the event can access them. This is performed by, obviously, the hide command. Specify the item or monster to be hidden, and that item or monster will be moved into hiding. Most importantly, you will see the reference number of the object when you use the hide command, which is what you use to specify that object when you unhide it with an event. Command: hide thirteen-headed hydra NC (NEWCHARACTER) Implementors have the capability of having multiple characters. Having multiple characters means you can have multiple characters on-line, each in different zones, if you like, and see all of the interesting things that are going on in those areas. You can use the ONLINE, OFFLINE, and RESUME commands in conjunction with multiple characters. When used, the NC command saves your current character and starts a new one for you. Command: nc OFFLINE When used alone, the offline command will remove any characters are appear on the WHO'S ONLINE listing that aren't really in the game (which sometimes happens.) However, if you specify one of your multiple characters who is listed on-line, they will no longer appear on the WHO'S ONLINE listing. Command: offline lithiumgodslayer offline ONLINE This command allows you to bring one of your multiple characters on-line by making them appear on the WHO'S ONLINE listing. This command only functions on your own characters. Once a character is on-line, they remain on-line until you have used the offline command to remove them - even if you quit, your other characters will remain on-line. Command: online lithiumgodslayer REARM This command will instantly reactivate any and all events that are in the current location with you. It will not, however, put items or monsters that need to be hidden back into hiding. Command: rearm REPLACE Replace is the most powerful command available to an Implementor. This command is used to directly alter any attribute about a player -- and it is because of this fact that this command can also cause irreparable damage to the player or worse. For all practical purposes, this command is used for quick fixes that can not be altered using the editplayer command. RESUME This command allows you to assume control of any of the other characters you have created using the newcharacter command. When you assume control of a different character, the one you have left control of remains on-line and appears on the WHO'S ONLINE listing. You can use the offline command to remove them from that list, or keep that character online and you will see messages from that character if anything interesting happens with her. Command: resume lithiumgodslayer SUMMON This command will bring any monster that is suppose to be in the zone you are currently standing within into your current location. Monsters from different zones can not be summoned, and neither can players. You can only summon monsters you have created yourself. Command: summon thirteen-headed hydra TELEPORT or JUMPROOM These twin commands move your character instantly from your current location into a new, specified location. You can not teleport to a location that does not exist. The messages you have defined using the editsetup command come into play when you use these commands. Command: jumproom 3782 WHO This listing displays first the level of the player, along with three-letter shorts for their race and occupation. Immediately following that is the current location of the player and the zone number that they are standing within. Finally their character's name and their real BBS name is also listed. ZONES This command brings up a list of all zones that have been defined in the realm. In addition to the number and name of the zone, it also lists how many rooms are within that zone, and finally it specifies how many rooms make up the entire realm. Command: zones Chapter II: Implementation of atmospheric messages Atmospheric messages are simply one-line descriptions that are displayed to players, at random, who are on-line and in specific zones. When you create an atmospheric message, you will be asked for three things. First a keyword, which you must specify so that later you can call up this message if you need to edit it. It should be a unique message as to avoid confusion with other messages. Secondly, you need to specify the zone that this message will be displayed to. Finally, you need to enter the message itself, exactly as it should appear when displayed to a player. Chapter III: Exit implementation Exits connect one location to another. Exits consist of their open connectives or blocked passages (such as a door or secret passage) that must be opened first. Exits can be examined, and they can also be one-way doors which can not be progressed through backwards. Section I: The edit screen Location 1: Direction: Location 2: One-way: Keyword: Door status: Lockpick adj: Key: Description: Description for location 1: Description for location 1: (Closed) Description for location 2: Description for location 2: (Closed) Section II: Descriptions of the editing screen LOCATION AND DIRECTION The LOCATION 1 and LOCATION 2 fields represent the room numbers that this exit connects. The DIRECTION field holds the direction that a player must pass in order to go from room one to room two. During room creation, this information will automatically be inserted when this screen comes up. ONE-WAY PASSAGES One-way doors are exits that a player can pass through from location one into location two, but not travel backwards (i.e. from location two back to location one). Simply enter either a "T" if the exit is a one-way door, or "F" if it is not. DOORS Doors are created by a combination of settings in the KEYWORD, DOOR STATUS, LOCKPICK ADJ, and KEY fields. In order for players to interact with a door, it must have a keyword which is set, of course, in the aptly named field. Usually, this field will hold the material of the door, such as 'wooden door.' Once the keyword is established, you must set the current status of the door. A door status can be any of the following: CLOSED, LOCKED, or HIDDEN. This status represents the original state of the door. A closed door can be opened, but can not be locked. A locked door must be unlocked and can also be locked with the appropriate key. A hidden door can not be seen or interacted with until an event opens it. LOCKPICK ADJ represents the level that a thief must be before they will have a good chance at opening this door. Consider this field an adjustment to their ability. For example, if this field is set to 20, a thief of level 14 (unless highly, highly skilled) will be unsuccessful at opening this door. However, if that thief returned at level 20, odds are in her favor she will be able to open it. Of course, this field only has importance if the door has a status of LOCKED. A value of 99 makes it impossible for a thief to unlock the door. If the door status is LOCKED, you can specify the keyword of the item that will open this door in the, as you probably can guess, key field. If you leave this field blank, the door will still be locked but will have no form of visible lock. It can, however, be picked by a skilled thief. DETAILED DESCRIPTION OF THE DOOR Exits can have a two-line description connected with them provided you have supplied a keyword. Keep in mind that a simple passageway does not require a door to have a keyword (such as a STONE ARCHWAY) which can then allow you to describe the exit in the DESCRIPTION field instead of creating a hidden item that explains the archway. DOORS, AS THEY APPEAR IN THE ROOM The DESCRIPTION FOR LOCATION fields represent four different descriptions for the exit you are creating, based both on the room you are viewing the exit from, along with the status of the door. The first and third fields hold the message that is displayed in the room when this exit is open, or if it has a door status of NONE. The second and last fields are important only if the exit you have created is a door. They hold the message that is displayed when the door is closed or locked. Leaving any of these fields empty is acceptable. Often, I leave these blank in order to describe the exit in the room description instead. Players will still be able to interact with an exit even if it is 'invisible' by not having a description in these fields. Section III: Example exits Here are a couple of example exits taken from a section of an upcoming adventure. The first example details the most common type of exit: one that connects to places without a door. Location 1: 318 Direction: SE Location 2: 328 One way: F Keyword: Door status: NONE Lockpick adj: Key: Description: Description for location 1: A mighty stone archway stands in the southeast corner of this chamber. Description for location 1: (Closed) Description for location 2: A mighty stone archway stands in the northwest corner of this chamber. Description for location 2: (Closed) Location 1: 352 Direction: E Location 2: 360 One way: F This second examine details a locked door that can only be opened with a rusty iron key found elsewhere in the dungeon. Keyword: IRON PORTCULLIS Door status: LOCKED Lockpick adj: 99 Key: RUSTY IRON KEY Description: The forge of Thor is visible beyond this iron portcullis which stands strong in the east wall despite the centuries it has guarded here, unopened. Description for location 1: The iron portcullis is raised, leading east into the ancient forge. Description for location 1: (Closed) An iron portcullis stands solid in the eastern wall. Description for location 2: The iron portcullis from which you entered stands open to the west. Description for location 2: (Closed) The iron portcullis stands solid in the west wall. Chapter IV: Event implementation All successful adventure games, whether they are classic text-adventures or contemporary graphic-based role-playing games, have one thing in common: puzzles. Rarely do you see an adventure game which is entirely based on the premise of "Mutilate anything that moves and grab all the gold you see." Adventures today involve a great deal of thinking from its players, who may spend hours trying to solve a puzzle in order to advance one step further toward solving the adventure. Events are the key to implementing your wildest ideas for puzzles, traps, and even interactions between NPCs and characters. In its simplest form, an event allows you to define commands which can over-write the built-in command parser in LEGENDS. When the player enters that command, the event is triggered, and its actions are performed in addition to, or instead of what normally would happen. Events can also happen automatically, after a certain amount of time, or occur upon any interaction with a specific object in the room. Section I: The edit screen Location: Effect location: Seconds: Command: Item test: Destroy item: Ability check: Effect: Optional data: Random roll: + Loop: Disarmed: Automatically disarm: Message to player upon triggering event: Message to effect location upon triggering event: Message to player when item test fails: Message to player when ability check fails: Section II: Description of the edit screen LOCATION AND EFFECT LOCATION Upon creation, your current location is automatically placed into the LOCATION and EFFECT LOCATION fields. Almost always, you will be designing an event for your current location, but certain situations require you to build an event in a different room, but have it saved and placed into another room. You do so by changing the LOCATION of the event. On the other hand, if you change only the EFFECT LOCATION field, you can cause the event to cause its effect in a different room. For example, in the Champions' Test, you encountered a chamber of switched that, when pulled, opened or closed one of six portcullises in an adjacent corridor. The switches were each events that affected a different location. TIMED EVENTS By placing a number higher than zero in the seconds in room field, you can cause an event to be triggered only after that specified number of seconds have passed in a room. Remember the Lair of the Dragon in the Champions' Test? There was a time-based event that if the player hung around for more than thirty seconds, it would summon a dragon into the room, thus teaching the player a valuable lesson. COMMANDS TO TRIGGER AN EVENT There are three ways for an event to be triggered, thereby causing the action is have been programmed to do to be performed. First, the event can be set to go off automatically (known as an auto-event). Second, the event can be triggered by a single command, one of many commands, or a combination of command and a noun (or object). Third, an event can be triggered by any interaction with an object in the room. AUTO-EVENTS An event with a command of .AUTO. is one which is executed (provided any tests that are required prove positive) upon EVERY command. COMMAND-TRIGGERED EVENTS By placing a series of commands, each surrounded by periods (.), you can define the exact commands that a player must use in order to trigger this event. For example, if you want the event to trigger if the player moves northwest out of a room, the command would be: Command: .NW.NORTHWEST. In addition, you can add further limitations by specifically indicating a particular object (such as a monster or item) that the player must interact with in conjunction with this command. For example, an event that requires pulling or throwing switch 7 would appear: Command: .PULL.THROW. SWITCH 7 OBJECT-TRIGGERED EVENTS By leaving the first of the two command fields empty and placing an object (such as a monster or item) in the second field, this event would be triggered upon any interaction with that object - whether it is simply examining the object, attacking it, trying to pick it up, etc. For example, if you have a sleeping beholder that makes up at the slightest approach, you could set an event that has this command: Command: BEHOLDER ITEMIZED TEST The ITEM TEST field, through comments and new ideas, has been granted more advanced capabilities. It serves to functions. First, you can test for a specific item in the player's inventory that is required for the event to trigger. You specify the item by placing its keyword into this field. For example, there is a broken switch in the Champions' Test that requires a wooden rod to be inserted in order to throw the switch. The item test field looks like this: Item test: WOODEN ROD The second capability of an event lies in its ability to test a player's attribute (outside of their ability scores). For example, the guilds of MidDraaven make a lot of use of this field in their events that make it impossible for a character of differing occupation to join specific guilds. In the mages guild, a character who is not a mage should be told that they can not join the guild. In the ITEM TEST field, I programmed the following test: Item test: PLAYERS->OC = "MAGE" If you preface the ITEM TEST field with PLAYERS-> you can test certain attributes about the player. Chart IV.I lists the various attributes that can be tested, along with possible values of those traits. Numbers do not require the quotes (") surrounding their value. Chart IV.I: Attributes, codes, and examples for item tests Att Description Example values ------------------------------------- AC Armor class Any number from -25 to 25. AL Alignment GOOD, EVIL, or NEUT. EXP Experience Any number from 0 to 100,000,000. G Gold Any number from 0 to 1,000,000,000. HP Hitpoints Any number from 1 to 99,999. OC Occupation FIGHTER, THIEF, MAGE, or CLERIC. LOC Location Any number greater than 0. MHP Maximum hitpoints Any number from 1 to 99,999. MSP Maximum spellpoints Any number from 1 to 99,999. RA Race HUMAN, ELF, DWARF, etc. SP Spellpoints Any number from 1 to 99,999. DESTROY ITEM This field has significance only if you are using the item test field to test specifically for an item in the player's inventory. This field allows you to determine if the item you are testing for will be removed from their inventory upon triggering of the event. ABILITY CHECK Events can determine if a player is strong, quick, or intelligent enough to perform a certain action by adding an ability check. A player's ability is checked prior to the event's trigger. This field can hold one of the following: STR, DEX, CON, INT, WIS, or CHA. These six values are shorthands for the attributes you rolled when you generated your character. If the player fails the attribute check, the event does not trigger. THE EFFECT OF AN EVENT By the time you have reached this field, you have completed the information pertaining to how the event will be triggered. Now you must program what the event will do when it is triggered. There are a total of thirteen different effects that an event can have. Each effect, in turn, requires different information to make the event function. The effect is selected by entering one of the three-letter commands from the following list: ADD, ARM, DIS, DRM, ENR, MAK, REP, SUB, SUM, TOG, TXT, UMK, and USM. Most of the above listed effects require a random or specific value. These numbers are programmed into an event by way of the RANDOM ROLL field. The field to the left of the plus (+) sign holds a random dice value. The field to the right of the plus (+) holds an adjustment to that dice roll. If you leave the first field blank, then the second field becomes a constant value when the event is triggered. Here is an example of generating a random number from 3 to 13. Random roll: 1d10 + 3 On the other hand, here is an example which always produces the same number every time the event is triggered. Random roll: + 29 ADD The ADD effect causes a random or a set value to be added to a player attribute. You specify the attribute you wish to add to by placing its keyword in the OPTIONAL DATA field. See chart IV.I for the keywords for a variety of player attributes. Effect: ADD Optional data: PLAYERS->EXP Random roll: + 4000 ARM With this effect you can arm another event that is location in room of the effect location. You specify the command of the event you wish to arm in the optional data field. In the following example, I am arming an event that triggers upon examine or search. Effect: ARM Optional data: .EXAMINE.SEARCH. Random roll: + DIS You can display a one-line message to the user with an event that has an effect of DIS. No additional data is required. DRM This is the opposite of the ARM command. It will disarm an event in the room of the effect location. You specify the command of the event you wish to arm in the optional data field. In the following example, I am disarming the event that triggered upon examine or search. Effect: DRM Optional data: .EXAMINE.SEARCH. Random roll: + ENR This event command enrages a monster, meaning it causes a monster in the room to become aggressive and attack the first character of opposite alignment it sees. You specify the reference number of the monster you wish to enrage in the random roll field. For example, if the reference number of an ogre you wish to enrage is 13789, this event would look like this: Effect: ENR Optional data: Random roll: + 13789 MAK To make an item appear from hiding, you use the MAK effect. This will take the reference number of the hidden item from the random roll field. In the following example, I am making a long sword (reference number 699) appear from hiding: Effect: MAK Optional data: Random roll: + 699 REP This command allows you to replace a player's attribute with a new value. This is especially good at replacing a player's location with a new room. It uses the random roll field to determine what the player's attribute should be replaced with. Effect: REP Optional data: LOC Random roll: + 1829 SUB This event command will subtract a random or preset number from a player's attribute specified in the optional data field. This is good for causing damage to a player. Effect: SUB Optional data: HP Random roll: 1d9 + 4 SUM An event which is built around this command will summon a monster, who's reference number is specified in the random-roll field, into the room with the player. This monster must be hidden before it can be summoned into the room. In the following example, I am summoning a dracolich (number 3119) from hiding. Effect: SUM Optional data: Random roll: + 319 TOG Toggling an exit from open to closed or from hidden to open, and vise versa, is rather common and easily achieved with the TOG command. By specifying the direction of the exit you wish to toggle open, closed, or hidden in the optional data, the event will intelligently change the status of the door upon execution. Effect: TOG Optional data: SW Random roll: + TXT Similar to the display command, this event will automatically display a text file from the TXTFILES\ directory on your BBS. Specify the file name in the optional data field. Effect: TXT Optional data: GARGOYLE.TXT Random roll: + UMK This is the opposite of the MAK command. It will cause an item, specified by reference number in the random roll field, to disappear from the current location and move into hiding. For example I will hide the above mentioned long sword (reference number 699). Effect: UMK Optional data: Random roll: + 699 USM This is the opposite of the SUM command. It will cause a monster, specified by reference number in the random roll field, to disappear from the current location and move into hiding. For example, I will hide the above mentioned dracolich (reference number 3119). Effect: USM Optional data: Random roll: + 3119 LOOP Loop is both incredibly important for most events and also has the potential of trapping your character forever. The loop field orders LEGENDS to skip the normal command parser when this event is triggered. What this means is that if you had an event that triggered on .GET.TAKE. and it looped, then once the event was finished executing, the command prompt would appear -- instead of LEGENDS then processing the player's command to get something. Events that do not loop will allow LEGENDS to process the player's command upon completion of the event. Most events will have precedence over the LEGENDS command parser, so they will LOOP back to the command prompt. However, where Implementors get into trouble is with an .AUTO. event that loops. An .AUTO. event, as you already know, is triggered by ANYTHING, and when it loops - well, EVERY COMMAND is ignored by the LEGENDS command parser, thereby trapping you and making it impossible to do anything but quit. DISARM AND AUTOMATIC DISARM The DISARM field serves two purposes. First, if you wish to immediately disarm the event you are creating (meaning it is never active in the first place) you can put a value of 87000 into this field. Why 87000? That is the number of seconds in a day, because events disarm for until a specific number of seconds have passed in the day. As a result, a value of 87000 is never reached, and the event never rearms. Secondly, if the event has been triggered and disarmed, you can edit it to rearm it or use the REARM command, by placing a 0 in this field. On the other hand, you can instruct an event to disarm upon triggering by way of the AUTOMATICALLY DISARM field. Although normally zero, which means the event never disarms (unless disarmed by another event) you can set this field to anything from 1 to 87000. This is the number of seconds that must pass after the event has been triggered before the event will rearm (by itself) and can be triggered again. If you place a value of 87000 into this field, the event will never rearm unless rearmed by another event. DISPLAYING THE EFFECTS OF AN EVENT There are four fields associated with information that is relayed to the user when an event is triggered or attempts to trigger. These four fields, which are appropriately named for their function and should not require explanation more than what information you can put inside them. Leaving any of these descriptions blank will causing nothing to be displayed, but the event will trigger as normal. MESSAGE TO PLAYER UPON TRIGGERING EVENT: This is the message that is displayed to the user when an event is triggered automatically. In the event that the event does some visible form of damage or other type of effect that requires the number of points lost to be displayed, you can position a %D anywhere in the string and upon triggering, it will be replaced with the dice roll value. MESSAGE TO EFFECT LOCATION UPON TRIGGERING EVENT: This message is broadcast to all of the players who are standing in the room number equal to the event's effect location. You can position a %A anywhere in this description and it will be replaced with the character name who triggers this event. In addition, like the previous message, a %D will be substituted with any random roll value, if it is needed to be displayed. MESSAGE TO PLAYER WHEN ITEM TEST FAILS: This message is shown only to the player who tries to trigger this event in the itemized test fails - meaning the player does not have a specific item, or an attribute isn't right. MESSAGE TO PLAYER WHEN ABILITY CHECK FAILS: As you can guess, this message is also only shown to the player if, when they try to trigger this event, they fail the ability check you have established. CHAINING EVENTS Event-chaining is the most important skill you can learn for creating events. More often than not, a single event will not complete a puzzle or trap that you wish to create. As a result, you must learn to make multiple events with the same command triggers. When more than one event has the same command triggers, each event that falls into this category is executed at the same time. As a result, with a couple of events that trigger on the .EXAMINE.SEARCH. commands, you could cause an item to appear in the room, a secret door to open, and a monster to be awakened -- all from a single command. Section III: Sample events I have included a couple of examples. The first event is taken directly from an event that is located in the Healers in MidDraaven. If you didn't already know, you can stand in the Cleric's Guild, which is above the healers, and watch other characters enter and leave the sanctuary grounds below through a window. This is accomplished with a series of simple events. Location: 38 Effect location: 39 Seconds: 0 Command: .S.SOUTH. Item test: Destroy item: F Ability check: Effect: DIS Optional data: Random roll: + 0 Loop: F Disarmed: 0 Automatically disarm: 0 Message to player upon triggering event: Message to effect location upon triggering event: %A just entered the sanctuary from the healers. Message to player when item test fails: Message to player when ability check fails: In this second example, I have demonstrated what one of the events which checks to see that a player is a member of the fighter guild before the Guild- Master will answer anything that is asked with the ASKABOUT command. Location: 41 Effect location: 41 Seconds: 0 Command: .ASKABOUT. Item test: FIGHTER GUILDRING Destroy item: F Ability check: Effect: NIL Optional data: Random roll: + Loop: F Disarmed: 0 Automatically disarm: 0 Message to player upon triggering event: Message to effect location upon triggering event: Message to player when item test fails: "You must become a member of the guild before you can seek assistance." Message to player when ability check fails: Chapter V: Item implementation Items are defined as anything that are in the room that a player can examine, and in most cases pick-up, ready, and use. Items can be 'invisible' on the screen but still interacted with. These kind of items are known as description items. Normal items are the remaining kind that can be removed from the room. These include treasures, armors, weapons, shields, helmets, magical items, keys, etc. Section I: The editing screen Keyword: (Reference #: 0) Display: Weight: Cost: Class: To hit: + . *damage against: AC adj: Attribute mod: Attribute adj: Cast: Charges: Light: rounds Wield to: Cursed: Store: Description of item: Section II: Description of the edit screen THE KEYWORD OF AN ITEM This field is extremely important because it is used extensively throughout LEGENDS. As you have already learned, this keyword is used in the exit editor and also in the event editor. In addition, the keyword you enter is used by LEGENDS in order to determine if a player is trying to interact with this item. This field should hold a short hand version of the entire name of the item. For example, if the item you are creating is a halberd (+12,+18) of Godly Might, the appropriate keyword would be HALBERD. WHAT AN ITEM LOOKS LIKE When you enter a room or view your character's inventory, you see a list of items that you are carrying. Each item looks different because each item has a different DISPLAY. When you enter the way the item looks, keep in mind that you do not need to add "A" or "AN" to the beginning of the item display. The above mentioned halberd would have a display of: Display: halberd (+12,+18) of Godly Might WEIGHT This field holds the weight of the object, in pounds. If you make an item weight 9999.99 pounds, the item become immobile and can not be picked up, no matter how strong the player is. COST If the item you are creating will eventually end up in a store or if it even has a remote possibility of being sold to a store, then it is important that you enter a value, in terms of gold coins, into this field. The value you enter is used to determine how much the shopkeeper will sell the item for and also how much the item is bought back for. CLASSIFICATION OF ITEMS Items must be grouped into classes, similar to players and their occupation. The reason behind this is that the shopkeepers in MidDraaven determine what items they purchase and sell based on the item's class. As a result, Dvorak Thorbane, who purchases weapons, will not purchase an item with a class of ARMOR. So, refer briefly to chart V.I for a list of some sample classes that are already being used in LEGENDS. You can create your own class of items without problem - which is a surefire way to keep an item out of a store, unless you create a shopkeeper who purchases and sells that class of item. Chart V.I: Item classifications Class Example ------------------------------------------------------- ACCESSORY Shield, gauntlets, boots, helmets. ARMOR Field plate, bronze plate, chain mail. DESCRIPT (See below) LIGHT Torch, lantern, magical flame. MAGIC ITEM Scroll of recall, lightning wand. THIEF Lock picks, keys, thief tools. TREASURE Golden crown, ruby ring, emerald necklace. WEAPON Sword, staff, battle axe, halberd. The DESCRIPT class of items are handled differently from all other classes. Items of this class can not be picked up, and they are invisible in the room - meaning that even if you give a description in the DISPLAY field, the players who enter the room will still be unable to see the item. This is used primarily for adding layered details to a room. For example, if the room description mentions a wooden desk, you could create a DESCRIPT-class item of the wooden desk that players could examine and get description of. TO HIT OR NOT TO HIT The TO HIT field improves or hinders a player's ability to hit an opponent during combat. This field is used only in the item is wielded. Their ability increases approximately one level for every point in this field. For example, if you entered a 5 into the TO HIT field, a level 1 player who wields this item would hit with the skill of a level 6 character. Likewise, a negative number will reduce a player's ability to hit an opponent. SETTING THE DAMAGE FACTOR OF A WEAPON Immediately following the TO HIT field are two fields that are connected with a plus (+). These fields should look remarkably familiar if you have created an event, as they serve similar purposes. These two fields generate random numbers and adjust those random numbers. The first field holds a standard dice roll. The second field holds an adjustment (either positive or negative) which is added to a randomly generated value when the player uses this weapon to attack something. WEAPONS THAT CARRY A GRUDGE You can 'enchant' a weapon to be merciless against a specific race of monster by way of the *DAMAGE AGAINST fields. Basically, this kind of weapon will always hit a specified opponent, and can cause damage greater than against any other monster. You specify this by placing a multiple in the first field. This number must be greater than one. The value you enter is how many times the damage is multiplied against a specific monster. You specify the monster in the field immediately to the right by entering the exact RACE of the monster this weapon dislikes. For example, if I were creating a lance that was designed to slay a dragon by always hitting and inflicting four times that amount of damage against the dragon, I would enter the following: To hit: 1 1d12 + 3 4.00*damage against: DRAGON ITEMS THAT ALTER YOUR ARMOR CLASS When wielded, armors tend to lower a player's armor class. In addition, magical items often perform the same function. You can create an item which modifies a player's armor class by entering a value into the AC ADJ field. This value is subtracted from the player's armor class when the item is wielded. ATTRIBUTE MODIFICATION AND ADJUSTMENT POINTS Another ability that items have is to modify a player's attributes (outside of hit adjustment, damage, and armor class). The ATTRIBUTE MOD and ATTRIBUTE ADJ fields allow you to specify these modifications. There are two ways to use these fields. The simplest way is to specify the player's attribute in the first field and the adjustment in the second. For example, I created a ring of regeneration that allows a player to heal faster during rest periods by adjusting their Healing Rate Adjustment (HRA) by two points: Attribute mod: HRA Attribute adj: 2 Likewise, a negative value in the ATTRIBUTE ADJ field will cause an attribute to be lowered. See chart V.II for an extended list of player attributes. The second capability of this field is to modify a player's immunities and resistance’s. Like monsters, players can become immune or resistant to specific forms of damage by wielding items. This is accomplished by way of two keywords: NE and RE. These keywords can be placed as a prefix in the ATTRIBUTE MOD. NE stands for no effect, meaning that the form of damage following causes no damage to the player. RE means resistance, and the player will take only half value from the damage form following. For example, if you wanted to create a shield that allowed a player to receive half damage from fire, you would enter: Attribute mod: RE FIR Attribute adj: The ATTRIBUTE ADJ field is not used by resistance’s or immunities. Another example is one in which players, when wielding this item, are immune to any form of acid attack. Attribute mod: NE ACI Attribute adj: Chart V.III lists the forms of attack available in LEGENDS. Consult this chart for information on all the kinds of attacks you can use the NE and RE prefixes with. Chart V.II: Extended list of player attributes (These are in addition to the attributes in chart V.I.) Att Description ------------------------------------------ HPA Adjusts how many hitpoints are gained when you advance. HRA Adjusts how fast you heal in real-time. MW The maximum allowance of weight a player can carry. NA Number of attacks per rounds. SPA Adjusts how many spellpoints are gained when you advance. SRA Adjusts how fast you regain spell points in real-time. Chart V.III: Forms of attack Form Description ------------------------------------------ ACI Acid clouds, acid-breath attacks. DEA Death gaze. ELE Lightning, electrocution. FIR Fireballs, flame attacks. ICE Iceballs, frost, sleet, and hail attacks. PHY Wind, invisible force, crushing forces. WEA Bladed weapons, pole-arms, hammers, maces, etc. ITEMS THAT IGNITE THE FORCES OF MAGIC Magical items are ones that can conjure a spell, such as a scroll of healing. You specify the spell that this item invokes when used in the CAST field. You can limit the number of times the spell cast be cast by placing a number in the CHARGES field. A -1 in the CHARGES field will cause the weapon to cast the spell indefinitely. For example, if I was creating an item which casts chain lightning three times, I would enter: Cast: CHAIN LIGHTNING Charges: 3 ITEMS THAT ILLUMINATE This field only has use if the item is of class LIGHT and will wield to the LIG position (see below). This specifies the number of rounds that a light will burn for once it has been wielded. For example, to create a light that is basically indefinite (nearly 10,000 rounds worth of light!) you would enter: Light: 9999 rounds HEA IS WHERE YOU WIELD YOUR HELMET In order to make an item 'wearable,' you must specify a position the item will be placed on a character. Not all items can be wielded, of course, such as a gem or scroll, but armor, weapons, amulets, shields, etc. all have specific places on the body that they belong. Chart V.IV explains all of the positions available on a character's body and examples of items that belong there. For example, if you were creating a weapon, it would wield to the weapon slot, and you would enter: Wield to: WEA Chart V.IV: Wielding locations for items Location Example -------------------------------------------------- HEA Helmet, crown, or cap. NEC Necklace or pendant. BOD A suit of armor or tunic. ARM A shield. HAN A pair of gloves or gauntlets. FIN A ring either non-magical or magical. BEL A belt. FEE A pair of swamp boots ABO A cloak or a cape. WEA A sword, battle axe, halberd, etc. LIG A torch or lantern. CURSED ITEMS Cursed items, as you may or may not know, are items that, once wielded, can not be removed from the body unless magically uncursed at the healers or the player dies while wearing the armor. Cursed items are established by placing a T or F in the CURSED field. The common ground for a cursed item is that the reason you make it so a player can't take it off is because it is evil in some way (such as armor that RAISES a player's armor class instead of lowering it). STORE-STOCK ITEMS VS. SINGLE-APPEARANCE If the item you are creating will end up in a store or has the possibility of ending up there, you need to pay attention to the STORE field. This field determines whether or not the shopkeeper (once s/he has had the item in inventory) will continue to carry the item once it is purchased back by another player. Let me start with the easiest option - leave this field blank. When a store owner purchases the item, when the next player purchases it out of the store owner's inventory, it will NOT reappear the next day. On the other hand, by way of a formatted line of text, you can specify how often the item will return to the store and then how many the store owner will have in-stock that day. The format is: (%chance of appearing), (number appearing). You replace the %chance of appearing with a number between 1 and 100, and the number appearing with a dice roll that randomly picks the number of this item that will be available for sale. For example, if you were creating a rare magic item that would be for sale in the stores, and you wanted it to have a 25% chance of appearing and at most three available for sale, you would enter the following: Store: 25%, 1d3. ITEM DESCRIPTIONS The DESCRIPTION OF ITEM field holds a one-line message which is displayed to the user when they examine this item. If your item requires a longer description, and you can upload a file to your BBS, you can use the &TXT= prefix to specify the name of the text file that will be displayed when a player examines this item. For example, an ordinary flaming halberd could be described like this: Magical flames leap across the blade of this powerful weapon. Whereas, a tablet or scroll may have more information written upon them than can be contained in one line. If you uploaded a file called SCROLL1.TXT and it was placed in the TXTFILES\ directory of your BBS, you would enter the following to make the scroll print SCROLL1.TXT when examined: &TXT=SCROLL1.TXT Section III: Item examples The first example I have created for you is an example magical weapon that, by all standards, would be extremely valuable based on the power it gives the player. Not only does it do a large amount of damage, it lowers the wielder's armor class, doubles its damage capability against undead creatures, plus automatically gives the wielder a second attack per round during combat. Keyword: NIGHTMAN'S FLAIL (Reference #: 32,948) Display: nightman's flail (+3,+4) [Holy defender] Weight: 16.00 Cost: 3998255 Class: WEAPON To hit: 3 3d5 + 6 2.00*damage against: UNDEAD AC adj: 4 Attribute mod: NA Attribute adj: 1 Cast: Charges: Light: rounds Wield to: WEA Cursed: F Store: Description of item: This flails seems to radiate a glowing field of light which protects you. In this second example, I have put together a ring which, when wielded, will cause a player to become invisible. Keyword: SILVER RING (Reference #: 32,949) Display: Silver ring of invisibility Weight: .18 Cost: 988292 Class: MAGIC ITEM To hit: 0 + 0 0.00*damage against: AC adj: 0 Attribute mod: V Attribute adj: -1 Cast: Charges: 0 Light: rounds Wield to: FIN Cursed: F Store: Description of item: It is difficult to make out the shape of this ring as light flows into it. Finally, I would like to demonstrate what a common key would look like, because not everything you create in LEGENDS will have magical abilities like the items in the previous two examples. Keyword: RUSTY IRON KEY (Reference #: 0) Display: rusty iron key, on an equally rusty chain, Weight: .35 Cost: Class: KEY To hit: 0 + 0 0.00*damage against: AC adj: 0 Attribute mod: Attribute adj: 0 Cast: Charges: 0 Light: rounds Wield to: NEC Cursed: F Store: Description of item: This key appears have seen a lot of use over time before being discarded. Chapter VI: Monster implementation The term monster is cosmetic in the respect that more often than not you will be creating monsters. However, in all senses, monsters are nothing more than non-playing characters (character's controlled by the computer instead of a player) and in that respect, monsters are identical to shopkeepers, as shopkeepers are also non-playing characters (NPCs). So, in a nut shell, this edit screen allows you to create NPCs which can serve as monsters, shopkeepers and more. Section I: The edit screen Name: Zone: Reference number: 0 Race: Alignment: Level: Experience: Hit points: Cast chance: % Aggressive: % Mobile: % Gold: Gold roll: upon resurrection Weapon: Attack verb: To hit: + Armor class: Attacks per round: Unaffected by: Resistant to: Description: Section II: Definition of the edit screen WHAT'S IN A NAME? To LEGENDS, name is everything, because without a name players can not interact with this NPC and you can not edit it, so as a result, the game will not save a monster that you create if it does not have a name. The name you specify is what players use to interact with this NPC. NPC ZONE The ZONE field serves two purposes. First and foremost, it limits the wandering area of a monster to a specific set of rooms. Secondly it makes for clean organization of monsters. Using the FM command, you can easily see where your monsters are that are assigned to a specific zone. A monster assigned to a zone will not follow a player outside of a zone more than one room. In addition, when the monster is resurrected, it will appear randomly inside of the specified zone. NPC RACE Remember the grudges that items can carry? This is the field that those items look at to see if they are especially angry at this race of monster. You place a generic race of the monster in this field, although for the most part, monsters are of a race equal to their name, such as Ogre, Orc, or Dragon. On special occasions, NPCs like shopkeepers are human, dwarven, etc. and skeletons, zombies, etc. are usually UNDEAD creatures. GOOD, EVIL, OR NEUTRAL - ITS AN ALIGNMENT THING NPCs can have one of three alignments: GOOD, EVIL or NEUT. Enter one of these three keywords in the ALIGNMENT field. A good monster will only attack evil players, whereas an evil monster will only attack good players. In addition, a neutral monster will attack either or, it does not matter. LEVEL A monster's experience level should be the equal to the experience level of the players you expect to have attacking this monster. The higher the level of the monster, the more skilled they are. EXPERIENCE When a monster is killed by a player, the player gains experience provided they are of differing alignment. The amount of experience a player gains is found in the EXPERIENCE field. HITPOINTS Logically, the HITPOINTS field holds the maximum number of hitpoints that this monster has. This is the value that its hitpoints will be restored to when the monster is resurrected. MONSTERS WITH MAGICAL ABILITY The CAST CHANCE field allows you to specify what percentage of their attacks against a player will be with magical spells. For example, a cast chance of 35% would mean the monster would attack 65% of the time using its weapon and 35% of the time with magic. When the monster has a cast chance, you will be able to edit its spellbook at the end of the edit. AGGRESSIVE A monster that is aggressive with begin combat with a player by itself. Since party adventuring is common in the realm, it would be unfair for the monster to automatically initiate combat with the first person in a party, so to compensate, you can adjust the 'aggressiveness' of a monster down between 60 to 99% which will make a monster attack different people randomly. Monsters that have a 0 in this field are not aggressive at all. MOBILITY If you set the MOBILE field greater than 0, then the monster has that percentage chance of following a player, provided the two are in combat. If you set this field to 99%, the monster will always follow whomever it is in combat with. GOLD AND GOLD ROLL UPON DEATH You can set the amount of gold a monster has in its inventory by entering a value into the GOLD field. This gold will be dropped by the monster when it is killed. When the monster is resurrected, the dice roll you put in the GOLD ROLL field will be used to randomly generate a new amount for the monster's inventory. CARRYING A BIG STICK You can implement the weapon of your choice into the monster by way of the WEAPON field. This is the description of the weapon that players see when they examine this monster. Immediately right of this field is the ATTACK VERB field. This holds the verb that best describes the monster's attack type. For example, if the monster attacked with a sharp tail, it may slash at a player, so you would type: Weapon: sharp, barbed tail Attack verb: slashes Next, the common TO HIT field (remember this from the item editor?) allows you to establish the skill and damage done by the monster. The TO HIT field allows you to specify how many skill levels above the monster's current level does it attack at. For every point, you are basically raising the skill of the monster by one level. Immediately right of this field is the damage and the damage adjustment fields, which are separated by a plus (+) sign. The first field holds the dice roll which is used to calculate damage, and the value immediately right is added onto that damage roll on a successful hit. ARMOR CLASS As you can probably figure out, the armor class of the monster is established by placing a value less-than-or-equal-to 25 in the ARMOR CLASS field. As with players, the lower this value, the more difficult it becomes to hit the monster. Armor class can reach below zero. MULTIPLE ATTACKS PER ROUND If you would like the monster to attack more than once during combat, you can up the NUMBER OF ATTACKS from 1 to any number up to 9. THE NPC'S IMMUNE SYSTEM The UNAFFECTED BY and the RESISTANT TO fields allow you to specify the exact forms of damage that do not do damage or cause only half damage to the monster. The previous chart V.III lists all forms of attack in LEGENDS that a monster can be resistant or immune to. To set this field, collect the three-letter forms of each attack type and then chain them together with periods (.). For example, if you would like to make a monster that is immune to fire and electricity, and resistant to ice, you would put the following: Unaffected by: .FIR.ELE. Resistant to: .ICE. THE NPC'S DESCRIPTION In the DESCRIPTION field, you specify what this NPC looks like when a player sees him/her/it standing in the room. If you leave this field blank, the monster is invisible but can be attacked. Section III: Implementing monster spells If the monster you have created, as mentioned above, has a percentage chance of casting a spell, you will be asked if you wish to edit the monster's spell book when you go to save your changes. Answering yes will bring up the spell book editor for this monster. While in this editor, you can use a variety of commands to alter the spells known by this monster. These commands are listed in the following section. While in combat, the monster will randomly choose one of the spells from its spell book. However, not all spells are equal. The first spell the monster learns has the highest chance of being cast. The second spell has a lesser chance of being cast, and so on. By the time you have added five or six spells, the odds of the last being cast are so minute you may never see the effects of that spell from that monster. + (ADD A SPELL) This command, followed by the name of the spell you wish to add, will cause the monster to learn the specified spell. Command: + poison - (FORGET A SPELL) This command will, obviously, remove a specified spell from the list of known spells. Command: - poison EXIT This command will exit you from the spell book editor and return you to the game. LIST KNOWN This command combination will list out the spells known by this monster that you have added using the + command. LIST AVAILABLE Using this combination will list out all of the spells available to monsters. There are a series of standard CONE OF ... spells which are designed for all-purpose forms of acid, ice, fire, and lightning attacks, which you will see listed. Section IV: Example monsters I've tossed a couple of monsters in your general direction. This first example is that of a popular undead creature known as the zombie. Name: Zombie Lord Zone: 47 Reference number: 0 Race: UNDEAD Alignment: EVIL Level: 26 Experience: 13880 Hit points: 189 Cast chance: 18% Aggressive: 87% Mobile: 99% Gold: 648 Gold roll: 3d300 upon resurrection Weapon: Torn claws Attack verb: slashes To hit: 3 2d4 + 1 Armor class: 1 Attacks per round: 2 Unaffected by: .ICE.DEA. Resistant to: Description: The stench of death crawls around the animated dead of a Zombie Lord here. This second example is that of a great Feyr, a powerful nightmarish creature spawn from magic and dreams. Name: Great feyr Zone: 69 Reference number: 0 Race: FEYR Alignment: NEUT Level: 38 Experience: 26000 Hit points: 299 Cast chance: 33% Aggressive: 56% Mobile: 50% Gold: Gold roll: upon resurrection Weapon: Mucus-dripping jaws Attack verb: slashes To hit: 8 2d6 + 2 Armor class: -2 Attacks per round: 4 Unaffected by: Resistant to: Description: Chapter VII: Response implementation Responses can be classified into two separate functions. The first, and most common, is a response designed to give information to a player when an NPC is properly questioned. The second is to initiate a business transaction (i.e. bartering for a service) between the player and an NPC shopkeeper. Section I: The edit screen Character: Topic: Action: Ignoring: Section II: Description of the edit screen CHARACTER This field defines the name of the NPC that will respond to a specific topic when asked by the player. This field must match the words you entered into the NAME field on the monster creation screen. TOPIC This is the word or series of words that a player must use in order to invoke this response in an NPC. For example, if I wanted to make it so that Dvorak Thorbane knows about a mythical weapon known as the stone claymore, I would enter the following: Character: DVORAK THORBAN Topic: STONE CLAYMORE Although any topic can be used to initiate bartering, I recommend that you use the PURCHASE, SELL, HEAL, WITHDRAW, or DEPOSIT topics that are used already in the stores of MidDraaven. Those commands are recognized by LEGENDS and it automatically searches for responses that match them. However, as in the Copper Cup Inn, I used a topic of ROOMS to initiate the purchase of a room for the night. (See below.) ACTION (also known as ESTABLISHING A BUSINESS) This field determines any action the NPC will take when the player asks about this response. If the NPC is only responding to a player with information, then this field can be left blank. However, in the case of store creation, you have several options for this field. BUY "" The PURCHASE keyword instructs the NPC to purchase an item from the player. You must specify the class of the item that the NPC will buy from the player by placing that class within quotes ("). Using this keyword also causes an additional set of gray fields to appear after you have saved your changes. (See below) CHECKIN This keyword allows a player to purchase a room at an inn, and quit the game. DEPOSIT GOLD This keyword is the opposite of WITHDRAW GOLD and allows a player to put money into their accounts. HEAL This keyword, when placed in the action field, causes the NPC to become a healer, and she will list her services to the player, allowing them to choose one. SELL Placing the SELL keyword into this field causes the NPC to list out all of her inventory and try to sell one of the items to the player. Using this keyword also causes an additional set of gray fields to appear after you have saved your changes. (See below) WITHDRAW GOLD This keyword allows a player to withdraw gold from their account when this topic is asked about. IGNORE THE IGNORING FIELD The ignoring field is on-screen for one reason. This field holds the reference numbers of the players who are being ignored by the store owners because they asked too much or too little to a degree that insulted the NPC. In the event that you are creating a shopkeeper and you mistakenly get thrown out of their store, you can edit the response and clear this line - use CTRL-Y to clear the line instantly - and make it possible for you to enter the store again. Section III: Additional editing for the BUY and SELL actions As mentioned above, the BUY and SELL keywords for the ACTION field will trigger a second set of inputs that will appear on the screen after you have completed your previous changes. BUY ACTION Highest % of price willing to buy back at: % Highest % of price willing to listen to before throwing player out: % The first field represents the highest percentage (of the items original cost) that an NPC will pay for an item. This field should be less-than the percentage of the original price that the player bought the item for. Depending on the attitude of the NPC, this field could range from 51 to 75%. The second field represents the highest price the NPC will tolerate before throwing the player out. I recommend using 95 to 99% for this field. SELL ACTION Lowest % of price willing to accept: % Lowest % of price willing to listen to before throwing player out: % The first field represents the lowest price the NPC will accept for an item. During the bartering process this is the percent of the total cost of an item that an NPC will work towards. Depending on the attitude of the NPC, this field could range from 51 to 75%. The second field determines what price will insult the NPC enough to throw the player out of her store. I recommend using a value between 1 and 5% for this field. Section IV: Editing the response Once you have completed both of these two fields, you will be asked if you wish to save this response. If you select No, the things you have done will be lost. Otherwise, by hitting Yes, you will be automatically entered in the same, simple text-editor that is used by the room creator. The instructions for using the editor are as follows: Once the screen clears, you will be in the simple editor. The editor automatically word-wraps for you, and you can use the arrow keys to move through each line of text. Once you have completed typing how and what the NPC will say, you MUST add a blank line at the end of your paragraph. In order to do so, move your cursor to the end of the last line and then press CONTROL-N. A less-than sign (<) will appear at the far right side of the screen, designating that a blank line is now present. Finally, in order to save your response, you must press CONTROL-W. The message you have entered will be saved, and you will be returned to the command prompt. Section V: Example responses The first response is an example of what a response for a storekeeper might look like. This example would allow a player to sell an item back to this NPC storeowner. Character: DERNIK STONEWILL Topic: SELL Action: BUY "WEAPON" Ignoring: Highest % of price willing to buy back at: 51% Highest % of price willing to listen to before throwing player out: 98% Dernik steps from behind the counter and glances toward the items you are carrying. "So," he comments. "You're interested in selling some of the things you have found on your exploration quest. Let's take a look at what you have." The second example is one of a simple response based on a question to the same NPC concerning the magical, mythical stone claymore. Character: DERNIK STONEWILL Topic: STONE CLAYMORE Action: Ignoring: Dernik runs his hand through his long beard and states, "I've heard some rumors about the weapon, but really, I've never seen it. The talk at the guildship of WeaponsCrafters indicates that Dvorak Thorbane, in MidDraaven, knows who forged the mighty weapon." He pauses, "If it exists, any way." Chapter VIII: Room implementation Rooms are also known as locations, which of course, make up the various places players can visit in the realm. Rooms are divided into sections by way of zones. Zones, in turn, accumulate rooms and the monsters assigned to those zones wander within those rooms. In order to build a room, you must first teleport to the location you wish to build off of, and then use the CREATE ROOM command and specify the direction to build. Section I: The edit screen Title: Zone: Dark: No magic: Section II: Description of the edit screen TITLING YOUR ROOM Throughout your explorations of the realm, you surely noticed that certain rooms had titles while others did not. The TITLE field is used to add a touch of extra description to special, or outstanding rooms such as treasuries, dungeon chambers, fields, etc. If this field is left blank, then the room will not display a title. THIS REALM IS ZONED Specify the zone that this room is included within by placing that zone number inside of the - you guessed it - ZONE field. If the zone you are placing this room into does not exist, you will have to create the zone following the room creation. AFRAID OF THE DARK? The DARK field allows you to set whether the room has a light source or whether the player will have to bring one. If this field is set to True, then the player needs a light source to see within. Otherwise, a False will make it possible for the player to see any time. NO-MAGIC ROOMS You can specify rooms in which it is not possible to cast a magical spell or use a magic item by marking the NO MAGIC field as True. If magic can be performed as normal, place an F in this field. ENTERING A ROOM DESCRIPTION Once you have completed entering the information into the above fields, you will be prompted if you want to save the room. If you select No, then the room will be lost and you will be returned to the command prompt. Otherwise, you will automatically enter the description editor, which is basically a simple word-processor. The following section describes all of the commands you can use to edit your room description. At the top of the screen you will see the word DE. This means that you are now in the simple editor. The editor automatically word-wraps for you, and you can use the arrow keys to move through each line of text. Once you have completed your room description, you MUST add a blank line at the end of your paragraph. In order to do so, move your cursor to the end of the last line and then press CONTROL-N. A less-than sign (<) will appear at the far right side of the screen, designating that a blank line is now present. Finally, in order to save your description, you must press CONTROL-W. The description you have entered will be saved, and you will be returned to the room editor. EDITING THE EXIT INTO THE NEW ROOM If you are creating a new room, you will automatically be moved into the exit editor which will allow you to make any doors, passages, etc. into the new room you have just created. Refer to the section of exit creation for more information on the exit editor. Section III: An example room Here is a sample room, and below it resides the description that would be entered using the simple editor. Title: The foothills of Mount Tharwin Zone: 35 Dark: F No magic: F You find yourself in a large and curving area just below the western-most peaks of Mount Tharwin. The extensive array of mountain sides expands upward a great distance away, making you realize you still have much traveling to do. < Chapter IX: Spell implementation The ability to spell weave is an incredible ability, indeed. Spells conjure a variety of forces, including fire, ice, acid, paralysis, etc. They can have sustained effects on a player, or they can wear out quickly. Section I: The edit screen Name: Location: Spell points: Minimum level to learn: Attack type: Effect: Attribute to affect: Dice: + Duration: Multiply duration by caster's level: Target: Multiply by caster's level: Affect all: Transfer points: On-going: Words to chant to cast this spell: Message displayed when spell is cast: Message seen by victim of on-going spell: Message of expiration of on-going spell: Section II: Description of the edit screen NAME OF SPELL There are two terribly important fields on this screen - the first is the NAME field. In this field you establish the name of the spell that players will use to cast this spell. LOCATION This is the second of the two important fields. In the LOCATION field, you must establish which of the two spell books this spell belongs to. The two options are mCleric or mMage. Notice that both start with a lower cast 'm' and follow with the occupation that is able to learn and cast the spell. If the spell you are creating will be used only on an item, you can place the spell into the mItem location. Finally, if this spell is for monsters to cast, the location is mMonster. SPELL POINTS Enter the number of points it takes to cast this spell, provided this spell is one that players will cast, into this field. MINIMUM LEVEL TO LEARN If this spell is one that can be learned by players, you can establish the level the player must reach before this spell will become visible to them. Enter that level into this field. ATTACK TYPE This field is only important if the spell you are creating will be used in combat to inflict damage upon another creature or player. Remember chart V.III? It listed out the various forms of attack that LEGENDS is currently aware of. You insert a three-letter representation of the form of the attack that this spell uses. You can also create your own type of attack by entering a new three-letter combination into this field. EFFECT OF A SPELL Like events, you must instruct LEGENDS what effect this spell will cause when cast upon another character or monster. There are five possible effects: ADD, CUR, REP, RES, SUB. Each of these affects use the ATTRIBUTE TO AFFECT and DICE fields differently. You can increase the numeric value that a spell produces by marking the MULTIPLY BY CASTER'S LEVEL field as true. For example, a damaging spell would increase the total amount of damage it does as the caster advances in levels. The five spell effects are listed below. ADD When cast at another character, the ADD effect will cause a player's or monster's attribute to be increased by a certain amount. You specify the amount (random or fixed) in the dice field. The attribute you wish to affect is placed into the ATTRIBUTE TO AFFECT field. Consult charts IV.I and V.II for a list of attributes that can be added to. CUR The CUR effect causes a player to be cursed of a duration-effect spell. You specify the attack type of the spell that this one cures in the ATTRIBUTE TO AFFECT field. For example, the poison spell that monsters attack with is of attack type POI, and the cure poison spell CURes POI spells. REP This is the replace effect. It will replace a player's or monster's attribute with a random or fixed value. You specify the value using the DICE field, and the attribute you wish to affect is placed in the ATTRIBUTE TO AFFECT field. Consult charts IV.I and V.II for a list of attributes that can be replaced. RES This effect allows you to alter a player's resistance and immunities with a spell. By specifying either RE or NE in the ATTRIBUTE TO AFFECT field, you determine if this spell will cause resistance or immunity, respectfully. The attack type you will be defending against in put into the DICE field. Consult chart V.III for a list of attack types you can put in the DICE field. SUB This effect is the opposite of the ADD effect. This will subtract a value from a player's or monster's attribute. Specify the attribute to subtract from in the ATTRIBUTE TO AFFECT field. Consult charts IV.I and V.II for a list of attributes that can be subtracted from. The random roll in the DICE field and its adjustment determine the value subtracted by this spell. DURATION SPELLS A duration spell is one that affects a player over a long course of time, such as the Armor or Bless spells. If this spell is going to be a duration spell, specify the number of seconds it will last in the DURATION field. Do not turn a spell that has an effect of REP, RES, or CUR into duration spells. At the end of a duration spell, the effects of the spell, unless it is a damaging spell, are reversed. For example, the Armor spell, which lowers your armor class, raises your armor class back to normal when the spell expires. If you want the spell's duration to increase as the level of the caster increases, mark the MULTIPLY DURATION BY CASTER'S LEVEL as true. Otherwise the spell will remain a fixed duration. ON-GOING SPELLS Although this field appears lower on the screen, the ON-GOING field is important only for duration spells. This field determines if the spell will continue to affect the player every round. An example which explains this better is the Poison spell used by monsters. This is an on-going spell which causes new damage to the user every round. On the other hand, the Armor spell is not an on-going spell, as it only affects the player's armor class when it is cast at them, and then once more when it expires. DISPLAYING DURATION SPELLS In addition, there are two fields at the bottom of the screen that also relate to duration spells. First, if the spell is an on-going spell, you can specify a short message which is displayed to the user every round to let them know that they are still affected by this spell. Within the message you can insert a %D that will be replaced by any damage or healing that the player receives as a result of this spell. Leave this field blank and the player will see nothing. The second field holds the message that is displayed to the user when the duration spell expires. There are no macros that can be placed in this message. Leave this field blank and the player will see nothing when the spell expires. TARGETING VS. AFFECTING EVERYONE The TARGET and AFFECT ALL fields are opposites. You can either mark one or the other, but you can not mark both and you can not leave both false either. The TARGET field means that the spell must be cast a specific character or monster in the room. If the AFFECT ALL is marked, then the spell does not need a target, but will affect everyone who is not of the caster's alignment. For example, Magic Missile is a target spell, while Flame Storm is an affect all spell. TRANSFERING POINTS By marking the TRANSFER POINTS field, you are instructing this spell to return any points added or subtracted from another player back to the caster. Vampiric Touch is a good example here. That spell subtracts hitpoints from a target and adds those hitpoints to the caster's. This field is only useful if the spell's effect is ADD or SUB. CHANTING In the aptly named field, you can specify the words that the spell caster will chant when she is invoking this spell. You do not need quotation marks (") in this field - only the words that will be spoken. If you leave this field blank, no words are spoken when the spell is cast. SEEING THE AFFECTS OF A SPELL Like events, you need to make sure that the caster sees the affects of her spell, along with the player or monster who receives the spell. Enter the message that is displayed to everyone in the room when a spell is cast into the MESSAGE DISPLAYED WHEN SPELL IS CAST field. Within this message, you can use two different macros that will be replaced with more important information when the spell is cast. First, a %A inserted in this field will be replaced by the name of the player who receives the spell. Inserting a %D in this field will be replaced by the damage or points healed that this spell causes. Finally, a %C will be replaced with the name of the character who casts the spell. None of these macros are required by the software. Section III: Example spells The first spell I am including as an example is the mage spell Flame Strike. Name: Flame Strike Location: mMage Spell points: 215 Minimum level to learn: 32 Attack type: FIR Effect: SUB Attribute to affect: HP Dice: 1d4 +6 Duration: Multiply duration by caster's level: F Target: T Multiply by caster's level: T Affect all: F Transfer points: F On-going: F Words to chant to cast this spell: Marring rewot Message displayed when spell is cast: A pillar of flame explodes around %A, inflicting %D damage. Message seen by victim of on-going spell: Message of expiration of on-going spell: The second example is a little more complicated. This is an example of a duration spell which causes damage to a player over a long period of time, (a minute per level!) based entirely on the level of the monster which uses this spell against a player. Name: Leprocy Location: mMonster Spell points: 0 Minimum level to learn: 0 Attack type: POI Effect: SUB Attribute to affect: HP Dice: 1d12 + 18 Duration: 60 Multiply duration by caster's level: T Target: T Multiply by caster's level: F Affect all: F Transfer points: F On-going: T Words to chant to cast this spell: Message displayed when spell is cast: %C reaches out and grasps %A with a decaying, flesh-dripping hand. Message seen by victim of on-going spell: You decay for %D damage. Message of expiration of on-going spell: You have stopped decaying. Chapter X: Implementing zones Creating a zone is nothing more than establishing a name for a zone and having LEGENDS assign you a number. When you use the CREATE ZONE command, you will be supplied with an empty zone, which requires only a name. Enter the name as you would like it to appear on the zone listing, and save your changes. Once you have returned to the command parser, you can use the ZONES command to find out the number you have received for your zone.