I already fixed my problem, see message above, but thanks for the help.
One thing tho...SMALL MUDS?? My mud is not small and why would you assume
that a function can only work on small muds? I just got tired of making
new tables for each of my 20+ classes and 60 levels.
Kyle Goodwin
----------
> From: Axiem <bertelse@SWBELL.NET>
> To: CIRCLE@post.queensu.ca
> Subject: Re: [EXP GAINS] Follow-up
> Date: Tuesday, June 09, 1998 5:02 PM
>
> Kyle Goodwin wrote:
>
> > Here is another example of the same problem with my code below:
> >
> > Outside The East Gate Of Midgaard
> > You are by two small towers that have been built into the city wall
and
> > connected with a footbridge across the heavy wooden gate. To the east
the
> > plains stretch out in the distance.
> > [ Exits: e w ]
> > An oozing green gelatinous blob is here, sucking in bits of debris.
> > A beastly fido is mucking through the garbage looking for food here.
> > A Peacekeeper is standing here, ready to jump in at the first sign of
> > trouble.
> >
> > <14/14H 57/100M 70/84V> cast 'magic missile' blob
> > Okay.
> > You rise 23 levels!
> > You watch with selfpride as your magic missile hits the green
gelatinous
> > blob!
> >
> > <14/129H 32/306M 70/117V>
> > The green gelatinous blob crushes you extremely hard.
> > You are incapacitated an will slowly die, if not aided.
> >
> > <-5/129H 32/306M 70/117V> cast 'magic missile' blob
> > You are in a pretty bad shape, unable to do anything!
> >
> > <-5/129H 32/306M 70/117V>
> > The green gelatinous blob crushes your entire body, making a terrible
mess!
> > You are dead! Sorry...
> >
> > Code:
> >
> > /*
> > * This is the exp given to implementors -- it must always be greater
> > * than the exp required for immortality, plus at least 20,000 or so.
> > */
> > #define EXP_MAX 99999999
> >
> > /* Function to return the exp required for each class/level */
> > int level_exp(int class, int level)
> > {
> > int modifier, exp, racemod, classmod;
> >
> > //TODO: Add race and class modifiers
> >
> > if (level > LVL_IMPL || level < 0) {
> > log("SYSERR: Requesting exp for invalid level!");
> > return 0;
> > }
> >
> > /*
> > * Gods have exp close to EXP_MAX. This statement should never have
to
> > * changed, regardless of how many mortal or immortal levels exist.
> > */
> >
> > if (level > LVL_IMMORT)
> > return EXP_MAX - ((LVL_IMPL-level) * 1000);
> >
> > /* Exp required for normal mortals is below */
> >
> > //int modifier, exp;
> >
> > if (level < 5)
> > modifier = 1;
> > else if (level < 10)
> > modifier = 1;
> > else if (level < 25)
> > modifier = 1;
> > else if (level < 30)
> > modifier = 2;
> > else if (level < 35)
> > modifier = 2;
> > else if (level < 40)
> > modifier = 2;
> > else if (level < 45)
> > modifier = 3;
> > else if (level < 50)
> > modifier = 3;
> > else if (level < 55)
> > modifier = 3;
> > else
> > modifier = 4;
> >
> > //Compute race and class modifiers here
> > racemod = 0;
> > classmod = 0;
> >
> > exp = (modifier * 600) + racemod + classmod;
>
> ^^^^^^^^^^^^- that is your problem. the modifier is the
same in
> each set of levels. my suggestion is to use decimal places by doing some
> subtraction and division, to change modifier. and racemod and classmod
should
> not be added, but multiplied (like 1, 1.2, 0.8, 2.1, etc...)
>
>
> > return exp;
> > }
> >
> > /* I didn't change do_advance so that code is still stock */
> >
> > Kyle Goodwin
>
> a table is easier to mess with value, imo, tho, but, a function like this
could
> be useful for small MUDs.
> - Axiem
>
>
> +------------------------------------------------------------+
> | Ensure that you have read the CircleMUD Mailing List FAQ: |
> | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
> +------------------------------------------------------------+
+------------------------------------------------------------+
| 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