Re: [NEWBIE] Auto-Setting Mobs w/ Oasis OLC

From: Neal and Kristen (nlahndorff@earthlink.net)
Date: 07/25/01


Here's the quick version of what I used on my mud.  I'm still in the
dark ages of Oasis 1.6, but it shouldn't be too hard to figure out
how to adapt it.. you might want to vary it based on the mobs class,
race etc as well.. but thats another exercise left to you..

Neal

---------------------------------------------------------------------
In structs.h

struct mob_level_data {
  byte level;
  byte thaco;
  sh_int ac;
  byte x;
  byte y;
  sh_int z;
  byte a;
  byte b;
  sh_int c;
  long exp;
};

Somewhere (mine is in class.c)

struct mob_level_data mob_table[NUM_MOB_LEVELS] =
{
  { 0, 65, 10, 1,  6,    4, 1,  2,  0, 20},
  { 1, 65, 10, 1,  8,   15, 1,  3,  0, 60},
  { 2, 65, 10, 1,  8,   25, 1,  4,  0, 80},
  .
  .
  .

In medit.c

void medit_level_info(struct char_data *mob, int level)
{
  extern struct mob_level_data mob_table[102];
  int j;

  mob->points.hitroll = 60 - mob_table[level].thaco;
  mob->points.damroll[WEAPON] = mob_table[level].c;

  mob->points.max_hit = 0;      /* flag that H, M, V is xdy+z */
  mob->points.hit = mob_table[level].x;
  mob->points.mana = mob_table[level].y;
  mob->points.move = mob_table[level].z;

  mob->mob_specials.damnodice = mob_table[level].a;
  mob->mob_specials.damsizedice = mob_table[level].b;

  mob->points.armor = mob_table[level].ac * 10;
  GET_GOLD(mob) = 0;
  GET_EXP(mob) = mob_table[level].exp;

  mob->player.weight = 200;
  mob->player.height = 198;

  for (j = 0; j < 5; j++)
    GET_COND(mob, j) = -1;

  /*
   * these are now save applies; base save numbers for MOBs are now from
   * the warrior save table.
   */
  for (j = 0; j < 5; j++)
    GET_SAVE(mob, j) = 0;

  mob->real_abils.str = 11 + (level / 8);
  mob->real_abils.intel = 11 + (level / 8);
  mob->real_abils.wis = 11 + (level / 8);
  mob->real_abils.dex = 11 + (level / 8);
  mob->real_abils.con = 11 + (level / 8);
  mob->real_abils.cha = 11 + (level / 8);
}


Timbrewolf wrote:
> Anyway, my question is this:
> Does anyone have available some code to put automatically fill-in MOB
> hitdice, hibonus, damdice, exp, and ac based on level in Oasic 2.01?

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/06/01 PST