Re: CODE: EXPERIENCE Based MUD

From: zen (ricky.newson@nashville.com)
Date: 06/21/96


At 02:41 PM 6/21/96 -0700, you wrote:
>Explain, first, what an experience based MUD is?  I did, btw, remove
>levels.  And  must say I found quite a few things I deem stupid while
>going through all the source code.  The one that really sticks out in my
>mind is the 'kick' skill.  It has NOTHING to with strength.  It's just
>your level halved, I believe.  That means a weak person the same level as
>a strong person kicks just as hard.  <blink>
>

Okay, here's the low down on what I hope to transform my mud into.  Instead
of gaining levels, characters will get experience, and based on the amount
of experience gained, they will become better at doing things, gain more hit
points, ect.  And, hopefully, you want get the same type of experience for
everything.  If you just run around killing things with a weapon and your a
mage, then you won't get experience for mage related attributes like mana,
and some other fields that I've added.  You will, however, get experience as
a warrior and you'll become more proficient in whatever weapon you are using
to kill everything.  This way if a mage wnated to be able to cast a lot of
kills, but didn't really care about hit points, he could focus on working on
attributes that would be helped by gaining experience in Magic instead of
conditioning his body.  

Example:

Jim starts off as a new character.  He chooses to be a warrior for his
primary profession, finds himself a sword and goes to work.  After about
five days of playing he's killed several thousand mobs using only his sword,
no skills whatsoever.  
Now Jo here starts the same day as Jim and decides to be a mage.  He goes
and buys a dagger but instead of actually using, he Magic Missiles
everything that moves.  After 5 days of magic missiling everything that
moves, Jo has become pretty damn good at casting magic missiles and has
gotten himself a pretty powerful spell strength modifier.  He now decides
that he wants to learn some healing spells so he finds himself a teacher and
learns MASSIVE_HEAL.  So he goes adventuring and accidentlly runs into Jim
and pisses Jim off.  Now remember, Jim the warrior has been working out for
five days(several years in mud time) and has become pretty well built.  He
swings at Jo and hurts Jo pretty bad(Remember, Jo's a little girly man with
hardly and muscle, but a gut that could rival Homer Simpson's =>)In
retalliation, Jo blast Jim with a magic Missile, and to Jim's surprise, it
Actually hurt, it hurt bad, and the bad thing about it is that Jo can cast a
whole lot more(and when I get around to it, can add extra mana to it to
achieve more punch for his dollar).  So Jim here, has two choices, he can
either keep at it and hope that Jo only has a few more HP's or he can haul
ass outta there.  Jo also has the same choice.  He knows that he's hurting
pretty bad and that if he should blotch a spell, he could be going to meet
his creator.  He also knows that if he decides to pump all of his mana into
his next spell(once it's implemented) he could risk frying
himself(channeling more spell energy then his body can handle).  So each
person is in the same position, and both have handicaps, thus making it
fair, I hope.  

Now these examples were extremes from both ends, but they show the basics of
what I'm trying to achieve, hopefully.  An even balance of power with a nice
middle ground.  The superpowerful wizard and the superpowerful warrior could
continue to fight each other, but either one could die as a result.  I must
admit that the situation would be somewhat different if the superpowerful
warrior met the smart warrior, or vice-versa, but still, each has it
handicaps and advantages.  So what I'm trying to do is to create a system
that rewards for what you do.  This way, the character has more control over
what his character is or becomes, making the mud more personal.  It also
stops higer level players from picking on lower level players because, well,
there's no way of telling if your victim is of a lower or higher level.  It,
in a way, can also make it harder to become an immortal.  Because of a
little function that I plan to add, the max amount of main exp you can get
is 500 and to become an immortal you need 10000 =>.  Now the only way to
become a immortal is to get a god or higher to do it for you or find
something that bypasses that function and sets your exp to 10000 or higher,
i.e. some special object from a quest.  Well I hope this explains what I'm
trying to achieve.
>> 
>> Also, I'm trying to add several more fields on to objects like weapon
>> type(i.e. Sword, Pole arm, etc.) and I'm not sure how to do this.  I know
>> that I need to make modifications to the obj structure in structs.h and add
>> something in db.c and objsave.c but I'm not exactly sure what that is.  Any
>> help would be greatly appreciated.
>
>You can use object value 0 (unused) for the weapon types.  I also extended
>values so I have 10 instead of 4.  It was easy to convert the world files,
>if you have OasisOLC just go through each ?edit.c file, move the majority
>of the code from the ?edit_save_to_disk functions to a seperate function
>which takes a zone number as an argument.  In that functio nreplace all
>the OLC_ZNUM calls with the name of the passed variable, and in the
>?edit_save_to_disk function call the above function.  For instance:
>
>Then just go into olc.c, play with the do_olc function, moving the
>two_arguments() call before the subcmd check, then inside the subcmd
>check check for an argument, if it's there, call all of the Write_*
>functions. :)
>
>Easy... (I'm sure the above confused the hell out of everyone)
>
>	-dak
Well, uh, say what?  Okay, to start off I'm not using olc, I prefer to do it
all the old fashioned way so what you said and posted seemed to go way over
my head. Also, you lost me when you started talking about zones and worlds
and everything.  Do I have to modify those to to add maybe 3 or 4 extra
fields to the obj data base.  If so, then boil me a pot of coffee because I
have a feeling I'll need it.  Well if you could suggest a way that doesn't
involve OLC then see what I can do.  Thanks for the suggestions.  I sure
they'll come in handy when I do decide to install olc.  Maybe Circle r. 3.01 =>.



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