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