Re: [NEWBIE] Vamp stuff (was: really long subj.)

From: Hans H. Hjort (hjort@S-96-226.RESNET.OHIO-STATE.EDU)
Date: 05/06/98


On Wed, 6 May 1998, Owen Brodal-Robertson wrote:

[...]
>
> now it compiles, but I have this REALLY bad feeling that I've gone and
> done something really dumb...
>
> What I want, is to make it so that every level's exp is determined as a
> percentage of the previous level (i.e. level 20 would require 120% of the
> exp level 19 required. I hope that makes sense).

        I'm not sure how curr_exp gets set above, but if its set to the
player's current exp, he will never level as he will always need 120%
more than what he currently has. <G> But we can make the function you
want with recursion:

int prev_exp;  /* put this with variable declarations above ofcourse */

case CLASS_WARRIOR:
   switch (level) {
      case 0:
         return 0;
         break;
      case 1:
         return 1;
         break;
      case 2:
         return 2000;
         break;
      default:
         prev_exp=level_exp(class, level-1);
         return ((prev_exp - level_exp(class, level-2))*level)/100+prev_exp;
         break;
   }

This function will take the amount of exp it took to get to the previous
level from the level before that, multiply it by a percentage equal to
the level, to find the exp needed from the previous level to the new level.
Ofcourse it is a bit CPU intensive with all the recursion, if the call
level_exp(class, level-2) can somehow be avoided it will save alot.

>
> If I've done something wrong, can someone stamp me with a 'STUPID NEWBIE'
> stamp, and help me out?

Sorry, I'm all out of ink. :)


I hope this helped,
                                                        -Hans


     +------------------------------------------------------------+
     | 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/15/00 PST