Re: well my exp thing (fwd)

Guido.Witmond@si.hhs.nl
Date: 07/21/94


> > what i did was this....now i have less exp.
> >
> > 1.  get exp for damage.
> > 2. add all of groups levels.
> > 3 exp gain = group_gain/num_of_levels * GET_LEVEL(ch);
> >
> > so a 30, a 25, and 1 would be a grtoup of 56 levels...
> > ws the 1st level woulg get 1/56 of group exp, the 30 would gert 30/56 etc...
>
> A lot of muds use this same equation, and it's fine to an extent.
> All of these muds have the same exact problem:
>
> MOB's EXP:  560000
>
> 1/56 * 560000 = 10000 EXP to the level 1 player (wow, he's level 4 already).
>
> Okay, the exp cap explained once more:
>
> MAX EXP GAINED = (MIN EXP FOR NEXT LEVEL - MIN EXP FOR CURRENT LEVEL) / INT
>
> where INT is minimum number of mobs that a character must defeat before
> moving on to the next level.  The larger this number, the longer it
> takes to level.
 
The exp needed for a next level is often double of what you got. This means
this is an exponential function of the level.
 
Example: next exp = 1000*2^^level.
 
Any linear gain function gives the problem mentioned wiht the 560k mob.
What you need is a gain function that is logarithmic.
 
Example: exp gain = mob exp * (log (own level) / log (mob level)
         you calculate this for each groupmember.
         in case you kill a mob alone you get full exp.
 
The problem of mortally wounding a mob so a level one can advance too fast can
be solved by applying such logaritmic funtion to the fraction of the damage
done by a groupmember.
 
example: exp gain = mob exp * (log (damage done) / log (mob hitpoints)
 
This might be the best of these solutions.
Math disclaimer. I have to brush up my maths before i can give accurate
logarithmic gain functions. But my point should be clear: With a exponential
function for needed exp you also need a logarithmic function for exp gain.
 
Guido.



This archive was generated by hypermail 2b30 : 12/07/00 PST