On Fri, 21 Jun 1996, zen wrote: > I've come to the conclusion that levels are pretty pointless on my mud I > would like to do away with them and opt for a system based on experience. > My only problem is I'm not sure where to start. I've already mirrored some > of the LVL_defines with EXP_defines and some other small stuff but that's > about it. I was wondering if someone has tried to implement this on their > muds and could help, or if some of you who switched to skill based systems > could help. 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> > > 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: void Write_mobs_to_disk (int znum) { /* move bulk of the medit_save_to_disk function here, save the very * last line (excluding, of course, the closing brace */ } void medit_save_to_disk(struct descriptor_data *d) { Write_mobs_to_disk(OLC_ZNUM(d)); /* last line of medit_save_to_disk */ } 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
This archive was generated by hypermail 2b30 : 12/18/00 PST