Here is another example of the same problem with my code below:
Outside The East Gate Of Midgaard
You are by two small towers that have been built into the city wall and
connected with a footbridge across the heavy wooden gate. To the east the
plains stretch out in the distance.
[ Exits: e w ]
An oozing green gelatinous blob is here, sucking in bits of debris.
A beastly fido is mucking through the garbage looking for food here.
A Peacekeeper is standing here, ready to jump in at the first sign of
trouble.
<14/14H 57/100M 70/84V> cast 'magic missile' blob
Okay.
You rise 23 levels!
You watch with selfpride as your magic missile hits the green gelatinous
blob!
<14/129H 32/306M 70/117V>
The green gelatinous blob crushes you extremely hard.
You are incapacitated an will slowly die, if not aided.
<-5/129H 32/306M 70/117V> cast 'magic missile' blob
You are in a pretty bad shape, unable to do anything!
<-5/129H 32/306M 70/117V>
The green gelatinous blob crushes your entire body, making a terrible mess!
You are dead! Sorry...
Code:
/*
* This is the exp given to implementors -- it must always be greater
* than the exp required for immortality, plus at least 20,000 or so.
*/
#define EXP_MAX 99999999
/* Function to return the exp required for each class/level */
int level_exp(int class, int level)
{
int modifier, exp, racemod, classmod;
//TODO: Add race and class modifiers
if (level > LVL_IMPL || level < 0) {
log("SYSERR: Requesting exp for invalid level!");
return 0;
}
/*
* Gods have exp close to EXP_MAX. This statement should never have to
* changed, regardless of how many mortal or immortal levels exist.
*/
if (level > LVL_IMMORT)
return EXP_MAX - ((LVL_IMPL-level) * 1000);
/* Exp required for normal mortals is below */
//int modifier, exp;
if (level < 5)
modifier = 1;
else if (level < 10)
modifier = 1;
else if (level < 25)
modifier = 1;
else if (level < 30)
modifier = 2;
else if (level < 35)
modifier = 2;
else if (level < 40)
modifier = 2;
else if (level < 45)
modifier = 3;
else if (level < 50)
modifier = 3;
else if (level < 55)
modifier = 3;
else
modifier = 4;
//Compute race and class modifiers here
racemod = 0;
classmod = 0;
exp = (modifier * 600) + racemod + classmod;
return exp;
}
/* I didn't change do_advance so that code is still stock */
Kyle Goodwin
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST