! ! This file contains NAMES that can be used instead of numeric values ! when you are writing scripts or creating worlds. These names make ! it a lot easier to create the games because you don't have to remember ! what the numbers mean. You can use the name instead. ! ! For example, the script line: ! ! if object.type = WEAPON then .. ! ! clearly is testing whether a given object is of type WEAPON. It is ! a lot better than trying to remember that weapons are represented by ! a # 1, as in: ! ! if object.type = 1 then .. ! ! You are welcome to add new tokens to this list, and to change the names ! being used. However, you should not REMOVE entries unless you are very ! sure of what you are doing. ! ! Tokens are listed in groups, with the name of the group enclosed in ! brackets [group-name] and preceeding each group. You can create your ! own groups, but the groups already here must remain. You can change ! the lists, but the group names must not be changed. They are used to ! tell the game system what names are associated with specific types of ! values. ! ! A brief explanation of what the values in a group mean preceeds each ! group. ! ! EDITING OF THIS FILE WILL BRING NO BENEFITS TO THE PLAYER, AND MAY MESS UP ! THE GAME. SO, EVEN THOUGH IT LOOKS LIKE A FILE THAT COULD REALLY HELP A ! PLAYER TO CHEAT - IT'S NOT. , where name is one of those listed below. The ACTION ! global variable returns the value of the action that invoked the script. ! [ACTIONS] TALK 0 ! 'T'alk to OBJECT or NPC GET 1 ! 'G'et OBJECT or NPC DROP 2 ! 'D'rop item (from backpack to floor). CURRITEM = which. WEAR 3 ! 'W'ear item (currently in backpack). CURRITEM = which. REMOVE 4 ! 'R'emove item being worn (to backpack). CURRITEM = which. LOOK 5 ! 'L'ook at OBJECT or NPC EXAMINE 6 ! detailed look at an OBJECT or NPC (often a spell). INVOKE 7 ! i'N'voke a magical object being carried. CURRITEM = which. USE 8 ! 'U'se an OBJECT (not carried). ENTER 9 ! 'E'nter a new world. (World scripts only). EXIT 10 ! 'E'xit a world. (World scripts only). CAST 11 ! Fall into a world through a TRAP door. ! ! TYPES OF OBJECTS. May be extended up to 255. Object types 0 through ! 35 are reserved. You can create your own starting with 36 and going ! all the way to 255. This way, I can add new types without affecting ! anything you write. ! ! Note that object behaviour is controlled by the script OBJECT.SCR, which ! uses the object's TYPE and CLASS to decide how the object behaves. ! [OBJECT TYPES] FOOD 0 ! This can be eaten. WEAPON 1 ! This can be wielded as a weapon. AMMO 2 ! This is ammunition for a weapon. ARMOR 3 ! This can be worn as armor. SHIELD 4 ! This can be carried as a shield. AMULET 5 ! This can be worn around your neck. RING 6 ! This can be worn around your finger. POTION 7 ! This can be drunk (some people say drinked) SCROLL 8 ! This can be invoked STAFF 9 ! This can be wielded and used to ZAP spells CHEST 10 ! A chest covers other objects. May be locked. KEYS 11 ! This key may be used to open doors or chests GEMS 12 ! This gems may be invoked. BOOK 13 ! This book may be read. GOLDSACK 14 ! Contains gold or silver. TORCH 15 ! has no special qualities yet. LANTERN 16 ! has no special qualities yet. ROPE 17 ! has no special qualities yet. HOOKS 18 ! has no special qualities yet. MIRROR 19 ! has no special qualities yet. SIGN 20 ! This has some text written on it VEHICLE 21 ! This can be used for transportation. BED 36 ! This is where the player can sleep while in town. FOUNTAIN 37 ! Get a drink. BODY 38 ! Gross stuff. ! ! Types of CHARACTERS. The type determines the default behaviour of the ! character. The DCWORLD world builder will assume that a script has ! been (or will be) written to control the character's normal behaviour. ! ! The script name must be the first 8 characters of the token name below. ! [CHARACTER TYPES] REGULAR 0 ! REGULAR.SCR - Will join the party if asked to.. HOSTILE 1 ! HOSTILE.SCR - Will attack on sight and follow you.. MERCHANT 2 ! MERCHANT.SCR - Buys and Sells stuff.. BARTENDER 3 ! BARTENDE.SCR - Sells beer. Good source of information. HEALER 4 ! HEALER.SCR - Cure, Heal, Resurrect, Remove Curse,.. CIVILIAN 5 ! CIVILIAN.SCR - Will talk, but won't join.. TELLER 6 ! TELLER.SCR - Fortune Teller or Oracle type.. QUESTER 7 ! QUESTER.SCR - Asks you to find an object or person. BEGGAR 8 ! BEGGAR.SCR - Want's money. Might give you a tip. TRAINER 9 ! TRAINER.SCR - Will train someone (STR,DEX,AIM,IQ) GUARD 10 ! GUARD.SCR - Blocks your way unless given the password. PRISONER 11 ! PRISONER.SCR - Will join your party temporarily (to escape). ! ! World TYPES ! [WORLD TYPES] ENDGAME 0 ! Game will end if the players enter this room OUTDOORS 1 ! Outdoors CITYTYPE 2 ! Big civilized city TOWNTYPE 3 ! Small town DUNGEON 4 ! Dungeon HIDEOUT 5 ! Town that caters to thieves and pirates.. HOUSE 6 ! Someone's house CASTLE 7 ! A lord's or king's castle ARENA 8 ! Training area. Frequent random monsters HAUNTED 9 ! Haunted place. Random monsters ! ! System Graphics: The following values are used to differentiate ! graphics blocks in the DCSYSTEM graphics file. The first 5 entries ! (shown below) are also the first 5 graphics blocks in the file, and ! are used during regular game play. ! [SYSTEM TYPES] SYS_PARTY 0 ! The party, except when fighting. SYS_FRAME 1 ! A frame around the character whose turn it is to move. SYS_SPLAT 2 ! Used to indicate the character was hit. SYS_TARGET 3 ! Used to point at things. SYS_BULLET 4 ! Use to represent a moving missle when fired. ! ! CHARACTER CLASSES (ALL CHARACTER TYPES EXCEPT HOSTILE) ! [CHARACTER CLASSES] HUMAN 0 ! standard stuff, with magic power! ELF 1 ! fast, magical power, not strong DWARF 2 ! slow, STRONG, no magic, no missles or shields WIZARD 3 ! slow, lot's of magic, not strong ARCHER 4 ! fast, no magic, + on missle weapons FIGHTER 5 ! fast, strong, no magic of any kind KULHAIN 6 ! The big bad guy. . . ! ! MONSTER CLASSES (For HOSTILE type characters). ! [MONSTER CLASSES] LAND_MONSTER 0 ! Land Based, cannot walk over water WATER_MONSTER 1 ! Water Based, cannot walk over land CAVE_MONSTER 2 ! Dungeon Based, found mostly in dungeons SPOOK_MONSTER 3 ! Ghosts, Zombies, Undead, etc. ! ! Magical Effects, Type 1 ! [OBJECT CLASS: FOOD, POTION, RING, AMULET, GEMS] NONE 0 ! No magical effect CURE 1 ! Remove POISON HEAL 2 ! Restore some HP POISON 3 ! (Trap) POISON drinker RESTORE 4 ! Restore ALL HP PLUS_STR 5 ! Increase STRENGTH PLUS_DEX 6 ! Increase DEXTERITY PLUS_SPD 7 ! Increase SPEED PLUS_AIM 8 ! Increase AIM PLUS_AC 9 ! Increase AC PLUS_HP 10 ! Increase HP PLUS_IQ 11 ! Increase IQ PLUS_PWR 12 ! Increase POWER ! ! Magical Effects, Type 2 ! [OBJECT CLASS: STAFF, SCROLL] NO_MAGIC 0 ! No magical effect DESTROY 1 ! Destroy an object DUPLICATE 2 ! Duplicates an object LEAVE 3 ! Exit through a DOOR from anywhere RESURRECT 4 ! Revive a DEAD person INFORM 5 ! Displays some text DOORS 6 ! Locate doors KILL 7 ! Kill 1 monster CONFUSE 8 ! Makes monsters shoot at other monsters SCARE 9 ! Scares monsters DAMAGE 10 ! Causes damage to monsters PARALYZE 11 ! Monster can't move RECHARGE 12 ! Recharge an ITEM FLOAT 13 ! Remove an object's weight ANALYZE 14 ! Discover object's properties ZOOM 15 ! Eagle-Eye's view of the world ! ! WEAPON CLASSES ! [OBJECT CLASS: WEAPON] BLUNT 0 EDGED 1 MISSILE 2 ! ! VEHICLE CLASSES ! [OBJECT CLASS: VEHICLE] WALKING 0 ! Same as walking, no help at all. MOUNTED 1 ! Mounted ATV 2 ! All Terray Vehicle LOWFLYER 3 ! Not over mountains or deep water MIDFLYER 4 ! Not over mountains, but yes over water HIGHFLYER 5 ! Over mountains and water RAFT 6 ! Low water only BOAT 7 ! Deep water only !------------------------------------------------------------------------- ! ! OBJECT MODIFIERS: ! ! Every object has a set of 5 'generic' attributes which have different ! meaning depending on the object's type. These attributes are named ! m0 through m4, but this section allows you to assign specific names to ! the attributes. ! ! For example, a WEAPON may use the attributes as follows: ! ! object.m0 = # of HANDS needed to hold the weapon (0, 1 or 2) ! object.m1 = RANGE of the weapon (how many squares away can it hit) ! object.m2 = DAMAGE done during battle (deducted from monster's hit points) ! object.m3 = Type of AMMUNITION used by the weapon (if any) ! object.m4 = not used for weapons ! ! Thus, the following definitions are made below: ! ! .M0 = HANDS ! .M1 = RANGE ! .M2 = DAMAGE ! .M3 = AMMONEEDED ! ! Which means that your script can have the line: ! ! if player.weapon.hands > 2 then ! writeln( "That weapon was made for an octupuss, which you are not.." ); ! .. ! ! instead of ! ! if player.weapon.m0 > 2 then ! writeln( "That weapon was made for an octupuss, which you are not.." ); ! .. ! ! NOTE: The names listed below are 'aliases' for the real names m0 through m4, ! which exist for all objects. No attempt is made to verify that the alias ! you have used is 'valid' for the object's type. Thus, the following line ! is also equivalent to the two lines in the example above: ! ! if player.weapon.ac > 2 then ! writeln( "That weapon was made for an octupus, which you are not.." ); ! .. ! ! because the alias 'ac' is an alias for m0, the same as the alias 'hands'. ! [OBJECT MODIFIERS] ! Object Type: FOOD ! 0 Is not used UNITS 1 ! If magical, how many units are affected PERMANENT 2 ! If magical, how long does effect last? (0=one day, 1=permanent) ! 3 Is not used ! 4 Is not used ! Object Type: WEAPON HANDS 0 ! # of hands needed to use the weapon RANGE 1 ! Range of this weapon DAMAGE 2 ! Damage done when using this weapon. AMMONEEDED 3 ! Type of ammunition needed (See AMMOTYPE below..) ! 4 Is not used ! Object Type: AMMO AMMOTYPE 0 ! Code that differentiates one ammunition from another RANGE 1 ! Range of this ammunition DAMAGE 2 ! Extra Damage (in addition to the weapon's normal damage) ! 3 Is not used ! 4 Is not used ! Object Type: ARMOR AC 0 ! Armor Class of the armor ACTYPE 1 ! Armor Type (not currently implemented) ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: SHIELD AC 0 ! Armor Class of the shield ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: AMULET CHARGES 0 ! Number of times this item can be used UNITS 1 ! If magical, how many units are affected PERMANENT 2 ! If magical, how long does effect last? (0=one day, 1=permanent) ! 3 Is not used ! 4 Is not used ! Object Type: RING CHARGES 0 ! Number of times this item can be used UNITS 1 ! If magical, how many units are affected PERMANENT 2 ! If magical, how long does effect last? (0=one day, 1=permanent) ! 3 Is not used ! 4 Is not used ! Object Type: POTION ! 0 Is not used UNITS 1 ! If magical, how many units are affected PERMANENT 2 ! If magical, how long does effect last? (0=one day, 1=permanent) ! 3 Is not used ! 4 Is not used ! Object Type: SCROLL ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: STAFF CHARGES 0 ! Number of times this item can be used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: CHEST LOCKTYPE 0 ! Type of lock on the chest (0=None, 1+=KEYTYPE needed) TRAPTYPE 1 ! Type of trap on the lock. 0=No trap, 1=poison,2+=bomb trap) ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: KEYS KEYTYPE 0 ! Type of lock that the key opens ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: GEMS CHARGES 0 ! Number of times this item can be used UNITS 1 ! If magical, how many units are affected PERMANENT 2 ! If magical, how long does effect last? (0=one day, 1=permanent) ! 3 Is not used ! 4 Is not used ! Object Type: BOOK ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: GOLDSACK ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: TORCH ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: LANTERN ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: ROPE ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: HOOKS ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: MIRROR ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: SIGN ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: VEHICLE ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: BED ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! Object Type: Fountain ! 0 Is not used ! 1 Is not used ! 2 Is not used ! 3 Is not used ! 4 Is not used ! ! WORLD DENSITIES ! ! These values are used to represent the landscaping density, and are ! used by the game driver to determine where a player can go, whether ! walking or riding a vehicle. The values between 0 and 15 are reserved ! for use by the game system, but you can add new values from 16 to 255. ! ! For example, you might use value 27 to indicate a block that is a ! magical gate. If you step on the gate at exactly midnight, you get ! transported somewhere. You can then add some lines to the control ! script to check for midnight, and at exactly midnight verify if the ! character is standing on a landscape block with density 27. If so, ! you would transfer the character to wherever you wanted to go. ! ! Any density value over 15 is treated as a 0, which means that it is ! equivalent to LAND (i.e. the character can walk on it, but a raft or ! boat cannot). ! [WORLD DENSITIES] FLAT 0 ROUGH 1 VERY_ROUGH 2 HIGH 3 VERY_HIGH 4 WALL 5 ! # 6 is reserved LOW_WATER 7 ROUGH_WATER 8 DEEP_WATER 9 ! # 10 through 15 are reserved LOCKED_DOOR 16 HIDDEN_DOOR 17 ! # 18 through 31 are reserved. You can use 32-255 for anything. ! ! OTHER TOKENS ! ! The rest of the tokens are just names associated with values. They ! are not used internally by the game system, only by the scripts. You ! may add any number of sections below, as long as the names are unique ! and different from the ones above. ! ! ! ENDGAME attribute values: The object attribute 'endgame' can be set ! to a non-zero value to indicate that the object causes the end of the ! game when a certain action happens. The value 1 indicates that the game ! should end when the player GETs the object. The value 2 indicates that ! the game should end when the object is given to a quester. (See the ! QUESTER script). The value 3 means the game should end when the player ! USEs the object. Values 4 through 15 are reserved for expansion. The ! values from 16 to 255 may be used as you please. ! [END-GAME VALUES] END_ON_GET 1 ! Game ends if you GET this object (OBJECT.SCR) END_ON_GIVE 2 ! Game ends if you GIVE the object (QUESTER.SCR) END_ON_USE 3 ! Game ends if you USE/INVOKE the object (OBJECT.SCR) ! ! Some usefull constant values used for general purposes ! [CONSTANTS] FALSE 0 ! TRUE 1 ! NO 0 ! YES 1 !