This is a little piece of code which I made just for the heck of it. Immortals on my MUD were getting pretty annoyed because they wanted to somehow balance out all their mobs without having to calculate/look up in a chart to make sure they had the right amount exp, enough hp, or whatever. So I pretty much just made a little function which I stuck into medit. Basically you enter in the level of the mob and it changes all it's values to an equation that will balance it out for that level (you can always change the equations). I tried to make this as amazingly newbie-friendly as possible as I can. Only 2 files have to be editted, oasis.h and medit.c ------------------------ File One: Go into oasis.h Along with all the other MEDIT_*, add a macro definition for MEDIT_SETTER ------------------------ File Two: Go into medit.c Goto the line that says "%sQ%s) Quit\r\n" (around line 466 or so) Enter in a new line above with this: "%sZ%s) Set Modifier Level\r\n" ------------------------- Now search for "case '1'" (around line 550, under "case MEDIT_MAIN_MENU") It doesn't really matter where you stick this, I just stuck it here. Anyways, put this in next: case 'z': case 'Z': OLC_MODE(d) = MEDIT_SETTER; i++; SEND_TO_Q("\r\nEnter modifier level : ", d); return; -------------------------- Search for medit_parse(struct descriptor_data *d, char *arg) under char *oldtext = NULL; (whatever, the very top of the function) Put in: int modifier = 0; int exp = 0; --------------------------- Search for "case MEDIT_SEX:", above it, put this in. case MEDIT_SETTER: GET_LEVEL(OLC_MOB(d)) = LIMIT(i, 1, 66); if (GET_LEVEL(OLC_MOB(d)) < 10) /* Credit to the zcheck snippet */ modifier = 1; else if (GET_LEVEL(OLC_MOB(d)) < 20) modifier = 2; else if (GET_LEVEL(OLC_MOB(d)) < 30) modifier = 5; else if (GET_LEVEL(OLC_MOB(d)) < 40) modifier = 8; else if (GET_LEVEL(OLC_MOB(d)) < 50) modifier = 11; else if (GET_LEVEL(OLC_MOB(d)) < 60) modifier = 14; else modifier = 17; exp = GET_LEVEL(OLC_MOB(d)) * modifier * 4000; GET_EXP(OLC_MOB(d)) = exp; GET_GOLD(OLC_MOB(d)) = (GET_LEVEL(OLC_MOB(d)) * GET_LEVEL(OLC_MOB(d)) * 50); GET_AC(OLC_MOB(d)) = 100-(GET_LEVEL(OLC_MOB(d))*3); GET_DAMROLL(OLC_MOB(d)) = (GET_LEVEL(OLC_MOB(d))/4); GET_HITROLL(OLC_MOB(d)) = (GET_LEVEL(OLC_MOB(d))/4); GET_DEFAULT_POS(OLC_MOB(d)) = POS_STANDING; GET_POS(OLC_MOB(d)) = POS_STANDING; GET_NDD(OLC_MOB(d)) = (GET_LEVEL(OLC_MOB(d))/2); GET_SDD(OLC_MOB(d)) = (GET_LEVEL(OLC_MOB(d))/2); GET_HIT(OLC_MOB(d)) = GET_LEVEL(OLC_MOB(d)); GET_MANA(OLC_MOB(d)) = GET_LEVEL(OLC_MOB(d)); GET_MOVE(OLC_MOB(d)) = GET_LEVEL(OLC_MOB(d)) * GET_LEVEL(OLC_MOB(d)); break; ----------------------------- As I said before, you can change these equations to whatever you want Basically, in medit, you type Z, and type in the level of the mob. All the stats wil be then changed to fit the newly defined level. Quit, save, medit save whatever, and you're good. Extremely simple. Anyways, hope this helps you if it does. Drop me a line if you have questions at jonsyu@hotmail.com. - Confucius of DeimosMUD (bb12.betterbox.net:6666)