[CODE] Exp code and formula

From: Chuck Reed (creed@I-55.COM)
Date: 11/18/97


I am trying to figure out an exp formula for levels.  I thought I finally
had it when it starts going crazy in the game.  This is the stuff I have for
it at the end of utils.c.  For the first 10 levels, players have to have -1
exp and then on out, the exp_to_level is far higher than it should be (ie
142K instead of 13K).  Here is the code I am using:


int exp_to_level(struct char_data *ch)
{
int exp, mod, h_mod;

/* Level modifications to exp */
if (GET_LEVEL(ch) >= 0 && GET_LEVEL(ch) < 10)
   mod = 1;
if (GET_LEVEL(ch) >= 10 && GET_LEVEL(ch) < 20)
   mod = 2;
if (GET_LEVEL(ch) >= 20 && GET_LEVEL(ch) < 30)
   mod = 4;
if (GET_LEVEL(ch) >= 30 && GET_LEVEL(ch) < 40)
   mod = 8;
if (GET_LEVEL(ch) >= 40 && GET_LEVEL(ch) < 50)
   mod = 16;
if (GET_LEVEL(ch) >= 50 && GET_LEVEL(ch) < 60)
   mod = 25;
else
   mod = 30;

/*   THE FORMULA!!!!!! */
if (GET_LEVEL(ch) = 1)
   exp = 800;
else
   exp = GET_LEVEL(ch) * 500 * ((GET_LEVEL(ch) - 1) / 10) * mod;

/* If character is human, grant a 10% xp bonus */
h_mod = exp * (1 / 10);
if (IS_HUMAN(ch))
   exp = exp - h_mod;

return exp;
}


     +------------------------------------------------------------+
     | 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/08/00 PST