<html> <head> <title>Race Information</title> <link rel="stylesheet" type="text/css" href="doc.css" title="Documentation Standard Style"> </head> <body bgcolor="#ffffff"> <table class="main" width="600" border="0"> <tr><td> <div align="right"> DalekenMUD 1.12 documentation. <br>Updated 7 June 2000. </div> </td></tr> <tr><th class="heading"> <h1>Race Information</h1> </th></tr> <tr><td> <p>Experience note: experience per level is based on race with humans at an average of about 1000, all the bonuses/disadvantages in this race_table count toward calculation of this 'tnl' be careful you dont make races too powerful or you will never see a character get to level 2, take a look some time at the experience per level of a God.</p> <p>The central organizing table to races is <code>race_table</code>, which is an array of type <code>struct race_type</code> (defined in <code>types.h</code>) and is defined in <code>const.c</code>. Humans have race 0, and races go through MAX_RACE-1. The order of which each array member does not matter as all necessary work is done by search functions.</p> <p>The fields of race_table are:</p> <dl> <dt><code>const char *name;</code></dt> <dt><code>const char who_name[7];</code></dt> <dd> This is the name of the race group. The mud uses this field not only as a marker for easy access to the information following, but also for displays. The who_name is the shortened version, used in some other places like 'who'. </dd> <dt><code>int race_abilities;</code></dt> <dd> Represented in bit notation, this holds all the information for the natural abilities each race has. You may find these individual bits in merc.h as RACE_*. </dd> <dt><code>int size;</code></dt> <dd> This size value represents the proportional size of this race group. 0 is smallest. Size is used to modify tohit and other transparent modifiers. </dd> <dt><code>int str_mod;</code></dt> <dd> This is the modifier to the natural strength this race may attain. </dd> <dt><code>int int_mod;</code></dt> <dd> This is the modifier to the natural intelligence this race may attain. </dd> <dt><code>int wis_mod;</code></dt> <dd> This is the modifier to the natural wisdom this race may attain. </dd> <dt><code>int dex_mod;</code></dt> <dd> This is the modifier to the natural dexterity this race may attain. </dd> <dt><code>int con_mod;</code></dt> <dd> This is the modifier to the natural constitution this race may attain. </dd> <dt><code>int hp_gain;</code></dt> <dt><code>int mana_gain[MAGIC_MAX];</code></dt> <dt><code>int move_gain;</code></dt> <dd> These add extra regeneration to hps, mana and moves, they also add extra to gains when the character levels, negatives subtract. Look at the values given and choose suitable numbers, 50 will be extremely good and -50 is a severe penalty so be careful, +/-10 should be sufficient in most instances. </dd> <dt><code>int thirst_mod;</code></dt> <dt><code>int hunger_mod;</code></dt> <dd> How big is your stomach? These numbers show the capacity for food and drink for that race, 100 is average and between 60 and 600 sounds decent. The bigger the number the more food/drink you can take, however you will use it up faster as well, only coming out a little ahead of the game. Dragons, for instance, eat a lot more than a human but it gets used faster, they have to eat less often but end up eating more, the same principle applies to all races. </dd> <dt><code>const char *dmg_message;</code></dt> <dd> This is the hand weapon message. Used for display and aesthetic purposes. </dd> <dt><code>const char *hate;</code></dt> <dd> This string represents all the races this race group hates and is aggressive toward. The mud will determine racial hatred by checking if the victim's race name appears in the hate string of the aggressor. If you wish to modify this field, just add a race name to this field as it appears in the name field of the race. </dd> <dt><code>int resil;</code></dt> <dd> This number is a fraction over 1000 of the damage that race takes from regular hits. This means that 900 resilience races only take 90% of the damage actually given to them. If this is too low the race will be very hard to hurt, but the tnl is increased accordingly. </dd> <dt><code>int magic_resist;</code></dt> <dd> This is the magical resistance of the race as a percentage, the higher the better, it represents a modifier to save throw which acts as a modifier on the amount of damage taken from magical attacks. </dd> <dt><code>int body_temp;</code></dt> <dd> Standard racial body temperature, human average is 0 so adjust as you think suits best, high body temperature means less damage from fire but you cop it from ice and vice versa. </dd> <dt><code>int body_parts;</code></dt> <dd> Bitfield like abilities, use BODY_PARTS_HUMAN for most races and consult merc.h to see what parts are available. Don't give a race no body parts if they are to become player races as they wont be able to wear the gear and think that lungs are important too, most players wont be able to live only in the watery places of the worlds, there aren't that many. </dd> <dt><code>const char *racial_skill;</code></dt> <dd> This is a space seperated string of all the skills that a creature of this race can use. If the skill/spell has two words enclose it in '', "" or (), don't overdo these either, just a simple skill if enough sometimes, players dont want to have to pay for these skills in tnl. </dd> </dl> </td></tr> <tr><th class="heading"> <h2>How to Add a New Race</h2> </th></tr> <tr><td> <p>This section enumerates the changes that need to be made to the base level Daleken code necessary for the addition of a new race.</p> <dl> <dt><code>const.h</code></dt> <dd>Increase MAX_RACE by as many races you add</dd> <dt><code>const.c</code></dt> <dd>Add race definition (structure) to race_table. (Order does not matter)</dd> </dl> <p>Obviously adding a new race to Daleken is an easy task. All is required is good planning of what you wish this race to be and entering the appropriate data.</p> </td></tr> </table> </body> </html>