I did this quick code a few months ago to have mobs' stats automatically configured by OasisOLC when a level is input. This way I've achieved a nicer balance in the game, because all the builders make mobs pretty much the same way. You'll naturally have to adjust the settings to suit your MUD, but it's an interesting idea. You probably don't have the xp() function, and I can't recall what the original circle one was, but it calculates exp points based on an algorithm rather than predefined numbers. My MUD also has 100 levels, so you'll need to adjust accordingly. In MEDIT.C: case MEDIT_ATTACK: GET_ATTACK(OLC_MOB(d)) = MAX(0, MIN(NUM_ATTACK_TYPES-1, atoi(arg))); break; case MEDIT_LEVEL: #define LVL GET_LEVEL(OLC_MOB(d)) LVL = MAX(1, MIN(100, atoi(arg))); GET_MOVE(OLC_MOB(d)) = number(4*LVL, 6*LVL); /* HP bonus */ GET_HIT(OLC_MOB(d)) = number(3, 4); /* Num HP Dice */ GET_MANA(OLC_MOB(d)) = number(1*LVL, 2*LVL); /* Size Hp dice */ GET_NDD(OLC_MOB(d)) = 2; GET_SDD(OLC_MOB(d)) = 5 + number(1,3); GET_HITROLL(OLC_MOB(d)) = (LVL / 6) + number(1,4); GET_DAMROLL(OLC_MOB(d)) = (LVL / 7) + number(1,4); GET_EXP(OLC_MOB(d)) = ((xp(LVL+1) - xp(LVL)) / number(16,24)) * 3; break; case MEDIT_ALIGNMENT: GET_ALIGNMENT(OLC_MOB(d)) = MAX(-1000, MIN(1000, atoi(arg))); break; Shawn ================================================================= Shawn J. Wallace Gusto Multimedia Group shawn@gusto.net http://www.gusto.net +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | | Or send 'info circle' to majordomo@cspo.queensu.ca | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST