Adding, Removing, or Changing Races and Classes for SmaugWizard Version 2. (4/2/99 by Rustry) This document is primarily to give you the inside information on the internals of the race and class files. Races may also be viewed, created and edited online with the Setrace and Showrace commands. See online help for those commands. Also there is a more complete Race editing document available on the SmaugWizard home page at http://www.eticomm.net/~russk2/. RACES: 1. To remove a race, edit the file SmaugServer\races\race.lst. Either remove the filename of the race to be removed, or comment it out by placing the '*' character in position 1 of the line. 2. To add a race, edit the file SmaugServer\races\race.lst. Add the name of the race file (name.race) to be added to the file. 3. The order of the races in race.lst determines the order the races will be displayed in the mud when choosing a race. 4. To create a new race, a new race file must be created. Then follow the instructions for adding a race. SmaugWiz has a race editor, but it does not currently have the ability to create new races. The easiest way to create a new race is to copy an existing race file and then edit it. Choose a race file that is as close as possible to the configuration you want for the new race. Then Edit the race file with the SmaugWiz race edit commands (showrace, setrace), or use a text editor to edit the race file directly (windows notepad will work fine). The following is a description of the data stored in the race files: Version 1000 SmaugWiz V2 Name Elf~ <-- Change the name but leave the '~' Affected 16 * <-- BitVector, see affects list below Str_Plus 0 <-- Amount of strength added to player stats Dex_Plus 2 <-- Amount of dexterity added to player stats Wis_Plus 0 <-- Amount of wisdom added to player stats Int_Plus 1 <-- Amount of intelligence added Con_Plus -1 <-- Amount of constitution added Cha_Plus 1 <-- Amount of charm added to player stats Lck_Plus 0 <-- Amount of luck added to player stats Hit -2 <-- Amount of hit points added Mana 10 <-- Amount of mana added to player stats Resist 0 * <-- BitVector, see Resist list below Suscept 0 * <-- BitVector, see Suscept list below Languages elvish~ <-- String list, see language list (1) Align 0 <-- Initial Racial Alignment Modifier Min_Align -1000 <-- Min alignment limit Max_Align 1000 <-- Max limit - See Align limits (2) AC_Plus 0 <-- Initial Armor value modifier Exp_Mult 110 <-- Experience Modifier - See Experience (3) Attacks 0 * <-- BitVector, see Attacks list below Defenses 0 * <-- BitVector, see Defenses list below Height 63 <-- Nominal height for race members Weight 110 <-- Nominal weight for race members Hunger_Mod 0 <-- Hunger modifier - See Hunger & Thirst (4) Thirst_mod 0 <-- Thirst modifier - See Hunger & Thirst (4) SavingPoisonDeath ** <-- Saving modifiers for new characters SavingWand ** <-- " SavingParaPetri ** <-- " SavingBreath ** <-- " SavingSpellstaff ** <-- " WhereName ** <-- Wear locations - See Wear Locations (6) ManaRegen ** <-- See Hp and Mana Regeneration (5) HpRegen ** <-- See Hp and Mana Regeneration (5) RaceRecall ** <-- Vnum of room where race members will recall ShoveDrag -3 <-- Racial modifier to ease of being shoved End <-- Required * Bit vectors are shown at the end. ** These items will not be saved in file if they are zero or blank. (1) Languages: The languages that a race knows is in the form of a list of strings. All races know common, so it is not included. The language names must match names in the language file that SmaugWiz loads at boot time. If a language name is not found, it is ignored. (2) Align limits: The Max and Min alignment limits specify the normal range of alignment which members of the race are expected to maintain. If, by their actions, they stray from those limits they will receive periodic messages indicating so, and expressing their guilt. There may be other punishments added. (3) Experience: The experience modifier is a percentage, which allows race members to gain experience at a different rate than other races. (4) Hunger & Thirst: These modifiers adjust the rate at which the members of the race get hungry and thirsty. (5) Hp and Mana Regeneration: These modifiers adjust the rate at which members of the race regenerate mana. A value of zero has no effect. Positive values will cause mana or hp to regenerate faster, negative values slower. Things like position, intelligence, hunger, thirst, poison, etc. will also affect regeneration speed. (6) Wear Locations: This is an array of string values, which are used to specify the name of the location where equipment can be worn. They can be blank, and if so will not be saved in the file. There is also a set of where names that applies to all characters, but those will be overridden by these racial values. The array must contains the names of the parts of the race members bodies which can wear items in the following places and order: <used as light> <worn on finger> <worn on finger> <worn around neck> <worn around neck> <worn on body> <worn on head> <worn on legs> <worn on feet> <worn on hands> <worn on arms> <worn as shield> <worn about body> <worn about waist> <worn around wrist> <worn around wrist> <wielded> <held> <dual wielded> <worn on ears> <worn on eyes> <missile wielded> CLASSES: 1. To remove a class, edit the file SmaugServer\classes\class.lst. Either remove the filename of the class to be removed, or comment it out by placing the '*' character in position 1 of the line. 2. To add a class, edit the file SmaugServer\classes\class.lst. Add the name of the class file (name.class) to be added to the file. 3. The order of the classes in class.lst determines the order the classes will be displayed in the mud when choosing a class. 4. To create a new class, a new class file must be created. Then follow the instructions for adding a class. SmaugWiz has a class editor, but it does not currently have the ability to create new classes. The easiest way to create a new class is to copy an existing class file and then edit it. Choose a class file that is as close as possible to the configuration you want for the new class. Then Edit the copied file with the SmaugWiz class edit commands (showclass, setclass), or use a text editor to edit the class file directly (windows notepad will work fine). The following is a description of the data stored in the class files: Version 1000 SmaugWiz V2 Name Mage~ <-- Change the name, leave the '~' Attrprime 3 <-- Prime Attribute of race (see apply types) Weapon 10312 <-- vnum of Class Weapon (Not used) Guild 3018 <-- vnum of Class Guild (Not used) Skilladept 95 <-- Adept level for skills (*See Below) Thac0 18 <-- To Hit AC 0 level Thac32 10 <-- To Hit AC 32 level Hpmin 6 <-- Minimum HP gain when advancing Hpmax 8 <-- Maximum HP gain when advancing Mana 1 <-- Boolean - Class gets mana gain when adv. Expbase 1250 <-- Experience Base (*See below) ShoveDrag 15 <-- Percent chance of sucessful shove/drag Skill 'acid blast' 20 95 <-- Next follows the list of skills that Skill 'acid breath' 43 95 <-- the class can learn. The numbers after Skill 'antimagic shell' 17 95 <-- each skill are the level where the Skill 'aqua breath' 28 95 <-- skill is gotten, and the adept %. Skill 'armor' 5 95 <-- Of course the skills here have to be Skill 'astral walk' 30 95 <-- real skills available in skill.dat. Skill 'blazebane' 30 95 <-- The rest of the skills for this class Skill 'blazeward' 27 95 <-- are truncated for brevity. Title <-- Next follows the list of all the titles Man~ <-- for each level for this class. For Woman~ <-- each possible level in the game, there Title <-- must be 3 lines here: 1) Title, Apprentice of Magic~ <-- 2) Male title for level, Apprentice of Magic~ <-- 3) Female title for level. Title <-- Note that the word 'Title' does not Spell Student~ <-- use the tilde char '~' after it. Spell Student~ <-- The rest of the titles for this class Title <-- are truncated for brevity. Supreme Entity~ <-- Last two titles. Supreme Entity~ End <-- Required Notes: The field 'Skilladept' is used to determine when a skill has been learned well enough by practicing with a teacher. When the players skill level exceeds 20% of Skilladept, the teacher will no longer teach that skill. The field 'Expbase' is used to calculate the experience for this class for each level. The formula is ((level-1)^3 * Expbase). Affects Bits: Affect Bit Number Bit Value --------------- ---------- --------- AFF_BLIND Bit 0 1 AFF_INVISIBLE Bit 1 2 AFF_DETECT_EVIL Bit 2 4 AFF_DETECT_INVIS Bit 3 8 AFF_DETECT_MAGIC Bit 4 16 AFF_DETECT_HIDDEN Bit 5 32 AFF_HOLD Bit 6 64 Unused AFF_SANCTUARY Bit 7 128 AFF_FAERIE_FIRE Bit 8 256 AFF_INFRARED Bit 9 512 AFF_CURSE Bit 10 1024 AFF_FLAMING Bit 11 2048 Unused AFF_POISON Bit 12 4096 AFF_PROTECT Bit 13 8192 AFF_PARALYSIS Bit 14 16384 AFF_SNEAK Bit 15 32768 AFF_HIDE Bit 16 65536 AFF_SLEEP Bit 17 131072 AFF_CHARM Bit 18 262144 AFF_FLYING Bit 19 524288 AFF_PASS_DOOR Bit 20 1048576 AFF_FLOATING Bit 21 2097152 AFF_TRUESIGHT Bit 22 4194304 AFF_DETECTTRAPS Bit 23 8388608 AFF_SCRYING Bit 24 16777216 AFF_FIRESHIELD Bit 25 33554432 AFF_SHOCKSHIELD Bit 26 67108864 AFF_HAUS1 Bit 27 134217728 AFF_ICESHIELD Bit 28 268435456 AFF_POSSESS Bit 29 536870912 AFF_BERSERK Bit 30 1073741824 AFF_AQUA_BREATH Bit 31 2147483648 AFF_RECURRINGSPELL Bit 32 4294967296 AFF_CONTAGIOUS Bit 33 8589934592 To give an example, if you wanted a race that was blind, but was able to detect invisible, you would add the two bit values (1 + 8), and use 9 for affects. Resist, Immune, and Susceptible Bits: Affect Bit Number Bit Value --------------- ---------- --------- RIS_FIRE Bit 00 1 RIS_COLD Bit 01 2 RIS_ELECTRICITY Bit 02 4 RIS_ENERGY Bit 03 8 RIS_BLUNT Bit 04 16 RIS_PIERCE Bit 05 32 RIS_SLASH Bit 06 64 RIS_ACID Bit 07 128 RIS_POISON Bit 08 256 RIS_DRAIN Bit 09 512 RIS_SLEEP Bit 10 1024 RIS_CHARM Bit 11 2048 RIS_HOLD Bit 12 4096 RIS_NONMAGIC Bit 13 8192 RIS_PLUS1 Bit 14 16384 RIS_PLUS2 Bit 15 32768 RIS_PLUS3 Bit 16 65536 RIS_PLUS4 Bit 17 131072 RIS_PLUS5 Bit 18 262144 RIS_PLUS6 Bit 19 524288 RIS_MAGIC Bit 20 1048576 RIS_PARALYSIS Bit 21 2097152 Apply Types for Prime Attributes: APPLY_NONE 0 None APPLY_STR 1 Strength APPLY_DEX 2 Dexterity APPLY_INT 3 Intelligence APPLY_WIS 4 Wisdom APPLY_CON 5 Constitution APPLY_CHA 6 Charisma APPLY_LCK 7 Luck Attacks for Races; Attack Bit Number Bit Value --------------- ---------- --------- ATCK_BITE Bit 0 1 ATCK_CLAWS Bit 1 2 ATCK_TAIL Bit 2 4 ATCK_STING Bit 3 8 ATCK_PUNCH Bit 4 16 ATCK_KICK Bit 5 32 ATCK_TRIP Bit 6 64 ATCK_BASH Bit 7 128 ATCK_STUN Bit 8 256 ATCK_GOUGE Bit 9 512 ATCK_BACKSTAB Bit 10 1024 ATCK_FEED Bit 11 2048 ATCK_DRAIN Bit 12 4096 ATCK_FIREBREATH Bit 13 8192 ATCK_FROSTBREATH Bit 14 16384 ATCK_ACIDBREATH Bit 15 32768 ATCK_LIGHTNBREATH Bit 16 65536 ATCK_GASBREATH Bit 17 131072 ATCK_POISON Bit 18 262144 ATCK_NASTYPOISON Bit 19 524288 ATCK_GAZE Bit 20 1048576 ATCK_BLINDNESS Bit 21 2097152 ATCK_CAUSESERIOUS Bit 22 4194304 ATCK_EARTHQUAKE Bit 23 8388608 ATCK_CAUSECRITICAL Bit 24 16777216 ATCK_CURSE Bit 25 33554432 ATCK_FLAMESTRIKE Bit 26 67108864 ATCK_HARM Bit 27 134217728 ATCK_FIREBALL Bit 28 268435456 ATCK_COLORSPRAY Bit 29 536870912 ATCK_WEAKEN Bit 30 1073741824 ATCK_SPIRALBLAST Bit 31 2147483648 Defenses for Races: Defense Bit Number Bit Value --------------- ---------- --------- DFND_PARRY Bit 0 1 DFND_DODGE Bit 1 2 DFND_HEAL Bit 2 4 DFND_CURELIGHT Bit 3 8 DFND_CURESERIOUS Bit 4 16 DFND_CURECRITICAL Bit 5 32 DFND_DISPELMAGIC Bit 6 64 DFND_DISPELEVIL Bit 7 128 DFND_SANCTUARY Bit 8 256 DFND_FIRESHIELD Bit 9 512 DFND_SHOCKSHIELD Bit 10 1024 DFND_SHIELD Bit 11 2048 DFND_BLESS Bit 12 4096 DFND_STONESKIN Bit 13 8192 DFND_TELEPORT Bit 14 16384 DFND_MONSUM1 Bit 15 32768 DFND_MONSUM2 Bit 16 65536 DFND_MONSUM3 Bit 17 131072 DFND_MONSUM4 Bit 18 262144 DFND_DISARM Bit 19 524288 DFND_ICESHIELD Bit 20 1048576 DFND_GRIP Bit 21 2097152 DFND_TRUESIGHT Bit 22 4194304 *eof* Rustry