Welcome to the Builder Academy

Question Adding Levels

More
11 Jun 2012 03:36 #33 by Rumble
Adding Levels was created by Rumble
If you have any additions or corrections please stop by the
Builder Academy at telnet://tbamud.com:9091 or email:
rumble@tbamud.com -- Rumble

The first thing you need to ask yourself is why? And is it really necessary?
Levels, like experience points, gold, and every other stat in a MUD is
relative and more is NOT always better. I find the stock 30 levels sufficient.
50 is understandable but decreases the "importance" of gaining a level. I've
done 100 levels before and for me that was too many. But, it is your MUD do
as you like just realize the impact having a large number of levels has on the
importance of advancing, the spread of skills/spells, and the intimidation
factor for newbies (imagine being a newbie on a MUD with other mortals level
100+) -- Rumble

Originally created by Mike Levine and B. Brown

Files needed:
structs.h -- defining LVL_IMMORT, etc
class.c -- balancing spells, titles
fight.c -- thaco
/lib/plrfiles/A - ZZZ directories to pwipe, if necessary.

STEP ONE:
Congrats! You have about half the information you need to add levels. The parts
that you need to consider now are:
1. How many mortal, immortal, and mob levels?
2. The spread of spells and skills.
3. Unique titles for all classes. (stock tbaMUD has four classes)
4. Balancing issues.

STEP TWO:
What the heck is THAC0?
To Hit Armor Class 0 - A measure of the ability of the monster to penetrate
armor and cause damage, ranging from 0 to 20. Lower numbers mean the monster
is more likely to penetrate armor. The formal definition of THAC0 is the
minimum roll required on a 20-sided die required to hit an opponent of
equivalent Armor Class 0.

Armor Class
The ability of the monster to avoid damage. Range is from -10 to 10,
with lower values indicating better armor. Roughly, the scale is:

AC 10 Naked person
AC 0 Very heavily armored person (full plate mail)
AC -10 Armored Battle Tank (hopefully impossible for players)

Note on THAC0 and Armor Class (AC): When an attacker is trying to hit a victim,
the attacker's THAC0 and the victim's AC, plus a random roll of the dice,
determines whether or not the attacker can hit the victim. (If a hit occurs, a
different formula determines how much damage is done.) An attacker with a low
THAC0 is theoretically just as likely to hit a victim with a low AC as an
attacker with a high THAC0 is to hit a victim with a high AC. Lower attacker
THAC0's and higher victim AC's favor the attacker; higher attacker THAC0's and
lower victim AC's favor the victim.

STEP THREE:
Modify the THAC0 array:

/* LEVEL 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14 */
/* LEVEL 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 */
/* LEVEL 30, 31, 32, 33, 34, [LVL_IMPL + 1] */

const int thaco[NUM_CLASSES][LVL_IMPL + 1] = {
{100, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 09, 08, 07,
06, 05, 04, 03, 02, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01,
01, 01, 01, 01, 01, 01}};

Stock tbaMUD comes with 34 levels. In the above example the thaco array values
represent a generic distribution. Note that level 0 has a value of 100. This is
because level zero is the initialization level and all characters get promoted
to level 1 upon entry into the game. Level 0 doesn't hit or get hit. To add 6
more levels to this generic THAC0 the array declaration could be:

/* LEVEL 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14 */
/* LEVEL 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 */
/* LEVEL 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, [LVL_IMPL + 1] */

const int thaco[NUM_CLASSES][LVL_IMPL + 1] = {
{100, 20, 19, 18, 17, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11,
10, 10, 09, 09, 08, 08, 07, 07, 06, 06, 05, 05, 04, 04, 03,
03, 02, 02, 01, 01, 01, 01, 01, 01, 01, 01, 01}};

STEP FOUR:
Update all of the skills and spells in class.c. If you have a lot of levels you
will need to add several new skills and spells or at least spread out the
existing ones. Before you changed your mud from 34 levels to n-levels there was
a pretty good balance between what spells and skills were available per level.
Now, with your n-levels you'll have to do a whole load of things in this area
and in a few others. These specifics are beyond the scope of this document.

STEP FIVE:
Just like the THACO array there is a corresponding data structure TITLES which
holds the male and female gender names and experience points for each level and
class. If you change your THAC0 array by adding or deleting levels you must do
the very same thing to the TITLES array.

STEP SIX:
Modify file structs.h to identify what level the gods are going to be and even
possibly add a few god levels in the process. Keep in mind if you perform the
latter then you will possibly need to modify more of structs.h as needed.
Changing anything other than the implementor and existing god levels is all
that is needed.

STEP SEVEN:
You can either do a pwipe by deleting all plrfiles in the tbaMUD path:
/lib/plrfiles/A - ZZZ directories or keep your existing pfiles if there are no
balance issues. The first player to login (IDNUM 1) by default can use the
cheat command to advance to level IMP. You should also note that balancing the
mob files and obj files will probably be necessary at this point to ensure that
everything is balanced, as before.

STEP EIGHT:
Compile your mud and reboot or copyover. Voila. Good luck, if it works pass it on.

Rumble
The Builder Academy
tbamud.com 9091
rumble@tbamud.com

Please Log in or Create an account to join the conversation.

Time to create page: 0.339 seconds