Sorry if you receive this message twice. I have serious troubles getting
email outside. (We just upgraded to Solaris 2.3)
> > 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