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