Monday, November 7, 2011

Mental P Imm Disease

Mental P Imm Disease
Adding races to an EmberMUD (v1.0)
(For EmberMUD.029 and.029b)
by Ron Cole

(Some snippets borrowed from the EmberMUD codebase, which is based on ROM 2.3, which is based on MERC, which is based on DIKU. )

Step #1: Plan a race.
The first step in race creation is to plan out the race you
wish to add. Here are some questions you might want to have answered
before going any further:

What does it look like?

If this race is from a myth, what attributes do those myths
give the creature (afraid of the light, hurt by iron, etc..)?

How large is it? (small, normal, large, etc..?)

Is it strong? Smart?

What part of the world does it live in, and has it evolved any
special features to help it survive there? (fur for resistance to
cold weather, infrared vision to help it see underground, etc..)

What is it made of? If it is flesh, does it have fur, skin, or
scales? If it is another material (rock, fire, etc..) what
benefits and hindrances would that material give them?

Will it have any special abilities only available to that race?

Is it resistant to anything (Poison, disease, iron)? Immune?

Is it vulnerable to anything?

Step 2: Adding a race table.
Open the file const.c and look for a structure called the
race table. The race table holds the basic shape and physical
structure for every race, whether PC (player character) or not.
Below is an example of this structure:

{
name, pc race?,
act bits, aff by bits, off bits,
imm, res, vuln,
form, parts
},

What it means...

name: The name of the race. It should be capitolized and in quotes.

pc race?: Can player characters be this race? If so, enter TRUE.

act bits: These are act bits for the races. Most act bits are for
NPC's (aggressive, pet, etc..). You will probably not have to set
any act bits.

aff by bits: These are permanent affects that enchant the creature.
For instance, if you want your creature to be able to fly, you
would most likely enter AFF FLYING. The most common affect you
will probably add is AFF INFRARED.

off bits: These are offensive skills that NPC members of this race
will start out with. It does not affect PC characters.

imm: This represents immunity, or the inability of a substance to
harm said race. This is an extremely powerful gift, so do not add
it lightly.

res: Resistance. Creatures that are resistant to something take
less damage from it and can more-easily overcome its affects.

vuln: Vulnerable. Creatures that are vulnerable to something
take more damage from it and are more easily overcome by it.

form: What form does it take? This is a general description of
its body and general abilities. Unlike most other entries, this
one is done with letters.

parts: These are the body parts that the race has, such as eyes,
hands, legs, tentacles, and fins. These are also denoted with
letters.

Now, plug the values that you want into the structure, and
then add it to the table. If you want to put more than one bit
in a group, separate the bits with a . Lists of the various
bits are at the bottom of this sheet in the appendixes, and
an example of a completed race table is below:

{
"Elf", TRUE,
0, AFF INFRARED, 0,
0, RES CHARM, VULN IRON,
A H M V, A B C D E F G H I J K
},

Step 3: Adding a pc race table.
Open the file const.c and look for a structure called the
pc race table. The PC race table holds important statistical
information about each PC race such as their minimum and
maximum stats. It also contains how well said race will do
within a chosen class. Below is an example of this structure:

{
"race name", short name, points, { class multipliers },
{ bonus skills },
{ base stats }, { max stats }, size
},

What it means...

race name: The name of the race again. This should be all in
lower case.

short name: The short name of the race for the who list. This
should be no larger than 5 characters.

points: The number of points it costs to purchase this race.

class multiplier: Increases the amount of experience needed to
go up in level if the class is chosen. 100 means to increase.

bonus skills: Gives the character whatever skills are listed
here for free.

base stats: Increases or decreases the base amount from which
stats are generated. In other words, it increases the chance
to get better stats while not actually increasing the max
stat number.

max stats: The maximum number any stat for that race can be
without class modifiers.

Just like what you did with the race table, plug the values
you want into the structure and then add it to the table. The
classes are in the following order: Mage, Cleric, Thief, Warrior.
Stats are in this order: STR, DEX, WIS, INT, CON. An example of a
completed pc race table is below:

{
"elf", " Elf ", 5, { 100, 125, 100, 120 },
{ "sneak", "hide" },
{ -1, 1, 0, 2, -2 }, { 16, 20, 18, 21, 15 }, SIZE MEDIUM
},

Step 4: Increasing the Maximum.
Open the file merc.h and look for the constant MAX PC RACE.
If you added a PC race, increase this by one. Below is what the
define should look like, where XX is the new number:

#define MAX PC RACE XX

Step 5: Adding help files.
You will need to add a help file for the race, as well as
altering the current "race" help file. These files can be found
in help.are within the area directory.

Step 6: Final balance check.
This is the last step, and one that most people forget: check
one more time to make sure that your race is balanced. By balanced,
I mean that its benefits do not outweigh its penalties. If you
have given your race an immunity, have you also given it sufficient
penalties like increased cost or vulnerabilities to balance it?

- Appendixes - (Most of which can be found in Merc.h)

Affect List:
AFF BLIND (A)
AFF INVISIBLE (B)
AFF DETECT EVIL (C)
AFF DETECT INVIS (D)
AFF DETECT MAGIC (E)
AFF DETECT HIDDEN (F)
AFF HOLD (G) /* Unused */
AFF SANCTUARY (H)
AFF FAERIE FIRE (I)
AFF INFRARED (J)
AFF CURSE (K)
AFF FLAMING (L) /* Unused */
AFF POISON (M)
AFF PROTECT (N)
AFF PARALYSIS (O) /* Unused */
AFF SNEAK (P)
AFF HIDE (Q)
AFF SLEEP (R)
AFF CHARM (S)
AFF FLYING (T)
AFF PASS DOOR (U)
AFF HASTE (V)
AFF CALM (W)
AFF PLAGUE (X)
AFF WEAKEN (Y)
AFF DARK VISION (Z)
AFF BERSERK (aa)
AFF SWIM (bb)
AFF REGENERATION (cc)
AFF WEB (dd)

Form List:
EDIBLE (A)
POISON (B)
MAGICAL (C)
INSTANT DECAY (D)
FORM OTHER (E)
ANIMAL (G)
SENTIENT (H)
UNDEAD (I)
CONSTRUCT (J)
MIST (K)
INTANGIBLE (L)
BIPED (M)
CENTAUR (N)
INSECT (O)
SPIDER (P)
CRUSTACEAN (Q)
WORM (R)
BLOB (S)
MAMMAL (V)
BIRD (W)
REPTILE (X)
SNAKE (Y)
DRAGON (Z)
AMPHIBIAN (aa)
FISH (bb)
COLD BLOOD (cc)

Immunity List:
IMM SUMMON (A)
IMM CHARM (B)
IMM MAGIC (C)
IMM WEAPON (D)
IMM BASH (E)
IMM PIERCE (F)
IMM SLASH (G)
IMM FIRE (H)
IMM COLD (I)
IMM LIGHTNING (J)
IMM ACID (K)
IMM POISON (L)
IMM NEGATIVE (M)
IMM HOLY (N)
IMM ENERGY (O)
IMM MENTAL (P)
IMM DISEASE (Q)
IMM DROWNING (R)
IMM LIGHT (S)

Part List:
HEAD (A)
ARMS (B)
LEGS (C)
HEART (D)
BRAINS (E)
GUTS (F)
HANDS (G)
FEET (H)
FINGERS (I)
EAR (J)
EYE (K)
LONG TONGUE (L)
EYESTALKS (M)
TENTACLES (N)
FINS (O)
WINGS (P)
TAIL (Q)
CLAWS (U)
FANGS (V)
HORNS (W)
SCALES (X)
TUSKS (Y)

Resistance List:
RES CHARM (B)
RES MAGIC (C)
RES WEAPON (D)
RES BASH (E)
RES PIERCE (F)
RES SLASH (G)
RES FIRE (H)
RES COLD (I)
RES LIGHTNING (J)
RES ACID (K)
RES POISON (L)
RES NEGATIVE (M)
RES HOLY (N)
RES ENERGY (O)
RES MENTAL (P)
RES DISEASE (Q)
RES DROWNING (R)
RES LIGHT (S)

Size List:
SIZE TINY 0
SIZE SMALL 1
SIZE MEDIUM 2
SIZE LARGE 3
SIZE HUGE 4
SIZE GIANT 5

Vulnerability List:
VULN MAGIC (C)
VULN WEAPON (D)
VULN BASH (E)
VULN PIERCE (F)
VULN SLASH (G)
VULN FIRE (H)
VULN COLD (I)
VULN LIGHTNING (J)
VULN ACID (K)
VULN POISON (L)
VULN NEGATIVE (M)
VULN HOLY (N)
VULN ENERGY (O)
VULN MENTAL (P)
VULN DISEASE (Q)
VULN DROWNING (R)
VULN LIGHT (S)
VULN WOOD (X)
VULN SILVER (Y)
VULN IRON (Z)

Did I miss anything? If so, feel free to e-mail me with your comments
and suggestions at clogar@concentric.net.

- END -

/ "/
" " / "/ / " / " / "/ " / " /
/
" "/ " " "/ "
"
/
/ o"/
o"/
/
/

ftp://ftp.game.org/pub/mud FTP.GAME.ORG http://www.game.org/ftpsite/

This file came from FTP.GAME.ORG, the ultimate source for MUD resources.