Re: [CODE] Exp code and formula

From: Leonardo Herrera L. (leherrer@ENTELCHILE.NET)
Date: 11/19/97


George wrote:
> On Tue, 18 Nov 1997, Chuck Reed wrote:
> >if (GET_LEVEL(ch) >= 0 && GET_LEVEL(ch) < 10)
> >   mod = 1;

[similar stuff snipped]

> >if (GET_LEVEL(ch) >= 50 && GET_LEVEL(ch) < 60)
> >   mod = 25;
> >else
> >   mod = 30;
>
> Notice that your 'mod' will always be 25 or 30.

I don't see why.


> >   exp = 800;
> >else
> >   exp = GET_LEVEL(ch) * 500 * ((GET_LEVEL(ch) - 1) / 10) * mod;
>
> Looks ok, didn't look hard though.

Hm...

> >/* If character is human, grant a 10% xp bonus */

10% bonus??

> >h_mod = exp * (1 / 10);

Yeah, exp *= 0.1

> >if (IS_HUMAN(ch))
> >   exp = exp - h_mod;

exp -= exp * 0.1 ... but is not a bonus

> Subtracting 1/10 of the xp, so...
>
> if (IS_HUMAN(ch))
>   exp *= .9;

Oh, I see.

I have implemented something similar in my MUD, but with Mark Dickey's
exp formula tester's one. This formula uses pow(), but in my linux box I
notice some amount of delay when I type "levels" (is a 486, with 12 mb
of RAM(!)). So, I implemented an int ExpToLev[NUM_CLASSES][LVL_IMPL +1]
that is initializated in boot_db. Easy solution.

Saludos, muchachos.

(Please, if I made a typo correct me... I wanna to learn english :) )

--
Leonardo Herrera L.
mailto:leherrer@entelchile.net
http://www.geocities.com/TimesSquare/Castle/4515
  "Me voy a subai, me voy a costai, me voy a tapai y
me voy a hacei tuto."
        -- Ruy


     +------------------------------------------------------------+
     | 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