ver .90
autoset - sets values on a mob based on its level
autoeasy - as above, but as an easy mob for that level
autohard - as above, but as a hard mob for that level.

these functions are usefull olc addins...

Note: i appologize for how ugly sections of this code are...

These are freeware - BUT YOU MUST email franzj@fxlab.net if you use these,
AND you must give credit (to Blade of "- E -") in a helpfile that mortals on 
your mud can read and find easily.

the folowing functions go in olc_act.c, make sure you add 
them to your medit command tables in olc.c and declare them
in olc.h...
Make Sure the values in these functions Fit your mud.
I based the values for AC, hitdice, etc, on slightly modified
values from the original charts... adjust at your liesure.
please email me if you use this: franzj@email.uc.edu
Note: for very low level mobs, make sure you use autoeasy - 
a level 1 autoset mob will be tough compared to a norm (stock)
level 1 mob otherwise...

>>>>>>>
MEDIT( medit_autoset )
{
	MOB_INDEX_DATA *pMob;
char temp[500];
int dice, size, bonus;
int ac_n, ac_x;
EDIT_MOB( ch, pMob );
	if (pMob->level < 1)
{
send_to_char("Set a level on the mob first!!!\n\r", ch);
return FALSE;
}
	/* adjust these next 2 lines to affect ACs */
	ac_n = 95 - (pMob->level * 6.67) - ((pMob->level/10)^2);
	ac_x = 95 - (pMob->level * 4.57) - ((pMob->level/10)^2);
	pMob->ac[AC_PIERCE] = ac_n;
	pMob->ac[AC_BASH]   = ac_n;
	pMob->ac[AC_SLASH]  = ac_n;
	pMob->ac[AC_EXOTIC] = ac_x;
send_to_char("AC Values set.\n\r", ch);
dice = pMob->level;
size = 10;
bonus = 85;
sprintf(temp, "%dd%d + %d", dice, size, bonus);
medit_manadice(ch, temp);
dice = pMob->level/3;
if (dice < 1)
dice = 1;
size = (.87 + pMob->level/dice);
if (size < 2)
size = 2;
bonus = (5.5 + pMob->level/2);
sprintf(temp, "%dd%d + %d", dice, size, bonus);
medit_damdice(ch, temp);
bonus = (pMob->level/53 + 1) * ((pMob->level * 10) + (pMob->level/10)) +1; 
size = pMob->level/3;
if (size < 2)
size = 2;
dice = (pMob->level + .5) * 2 + .2;
if (dice < 1)
dice = 1;
sprintf(temp, "%dD%d + %d", dice, size, bonus);
medit_hitdice(ch, temp);
sprintf(temp, "%d", pMob->level);
medit_hitroll(ch, temp);
send_to_char(" Values set, check for accuracy.\n\r", ch);



return TRUE;
}

MEDIT( medit_autohard )
{
	MOB_INDEX_DATA *pMob;
char temp[500];
int dice, size, bonus;
int ac_n, ac_x;
EDIT_MOB( ch, pMob );
	if (pMob->level < 1)
{
send_to_char("Set a level on the mob first!!!\n\r", ch);
return FALSE;
}
	ac_n = 88 - (pMob->level * 7.05) - ((pMob->level/10)^2);
	ac_x = 88 - (pMob->level * 5.02) - ((pMob->level/10)^2);
// sprintf(temp, "%d %d %d %d", ac_n, ac_n, ac_n, ac_x);
	pMob->ac[AC_PIERCE] = ac_n;
	pMob->ac[AC_BASH]   = ac_n;
	pMob->ac[AC_SLASH]  = ac_n;
	pMob->ac[AC_EXOTIC] = ac_x;
send_to_char("AC Values set.\n\r", ch);
dice = pMob->level;
size = 11;
bonus = 95;
sprintf(temp, "%dd%d + %d", dice, size, bonus);
medit_manadice(ch, temp);
dice = pMob->level/3;
if (dice < 1)
dice = 1;
dice++;
size = (.87 + pMob->level/dice);
if (size < 2)
size = 2;
bonus = (7.5 + pMob->level/1.5);
sprintf(temp, "%dd%d + %d", dice, size, bonus);
medit_damdice(ch, temp);
bonus = (pMob->level/53 + 1) * ((pMob->level * 10) + (pMob->level/10)) +1; 
size = pMob->level/3;
if (size < 2)
size = 2;
size++;
dice = (pMob->level + .6) * 2.05 + .5;
if (dice < 1)
dice = 1;
sprintf(temp, "%dD%d + %d", dice, size, bonus);
medit_hitdice(ch, temp);
sprintf(temp, "%d", pMob->level);
medit_hitroll(ch, temp);

send_to_char("Hard values set, check for accuracy.\n\r", ch);
return TRUE;
}

MEDIT( medit_autoeasy )
{
	MOB_INDEX_DATA *pMob;
char temp[500];
int dice, size, bonus;
int ac_n, ac_x;
EDIT_MOB( ch, pMob );
	if (pMob->level < 1)
{
send_to_char("Set a level on the mob first!!!\n\r", ch);
return FALSE;
}
	ac_n = 99 - (pMob->level * 6.37) - ((pMob->level/10)^2);
	ac_x = 99 - (pMob->level * 4.27) - ((pMob->level/10)^2);
// sprintf(temp, "%d %d %d %d", ac_n, ac_n, ac_n, ac_x);
	pMob->ac[AC_PIERCE] = ac_n;
	pMob->ac[AC_BASH]   = ac_n;
	pMob->ac[AC_SLASH]  = ac_n;
	pMob->ac[AC_EXOTIC] = ac_x;
send_to_char("AC Values set.\n\r", ch);
dice = pMob->level;
size = 9;
bonus = 60;
sprintf(temp, "%dd%d + %d", dice, size, bonus);
medit_manadice(ch, temp);
dice = pMob->level/3 * .95;
if (dice < 1)
dice = 1;
size = (.87 + pMob->level/dice) * .95;
if (size < 2)
size = 2;
bonus = (2.5 + pMob->level/2.1);
sprintf(temp, "%dd%d + %d", dice, size, bonus);
medit_damdice(ch, temp);
bonus = (pMob->level/59 + 1) * ((pMob->level * 9) + (pMob->level/11)) +1; 
size = pMob->level/3;
if (size < 2)
size = 2;
dice = (pMob->level + .5) * 2 + .2;
if (dice < 1)
dice = 1;
sprintf(temp, "%dD%d + %d", dice, size, bonus);
medit_hitdice(ch, temp);
sprintf(temp, "%d", pMob->level);
medit_hitroll(ch, temp);
send_to_char("Easy values set, check for accuracy.\n\r", ch);



return TRUE;
}
<<<<<<<<