On Sun, 27 Oct 1996, Cyber Reaper wrote:
- > That is cool, also idealy I would like a code editor. :)
- 
- while were at it... how about a way to assign spec_procs in OLC 
- fassion... heck... a online spec_proc editor would be even beter =:)
Hmmm...
int add_mob_spec(sh_int mob_vnum, char *spec_name)
{
  sh_int mob_rnum, i;
  const char *spec_list[] = { /* these are off the top of my head */
    "thief",
    "cleric",
    "puff",
    "\n"
  }
  if((mob_rnum = real_mobile(mob_vnum)) < 0)
    return FALSE;
  for(i = 0; *(spec_list + i) != '\n'; i++)
    if(is_abbrev(spec_name, spec_list[i]))
      break;
  if(*(spec_list + i) = '\n')
    return(FALSE);
  switch(i) {
    case 0:
      ASSIGNMOB(mob_vnum, thief);
      break;
    case 1:
      ASSIGNMOB(mob_vnum, cleric);
      break;
    case 2:
      ASSIGNMOB(mob_vnum, puff;
      break;
    default:
      return(FALSE);
  }
  SET_BIT(MOB_FLAGS(mob_proto + mob_rnum), MOB_SPEC);
  return(TRUE);
}
That's just a short __UNTESTED__ example of a function that assigns am
existing spec_proc to  a mob prototype (you'd have to load a copy of the
mob to have it take effect).  You can add more spec_procs by adding to the
spec_list definition, and adding more case statements.
Want to add it to olc?  Simple.  If I were adding it to obuild (which I'm
planning on doing eventually), I'd add a case to mset names specproc or
something like that, and add this:
  case X:
    if(!*val_arg) {
      send_to_char("Usage:  mset specproc <mob #>\r\n", ch);
      send_to_char("Valid spec_procs are:\r\n", ch);
      send_to_char("thief  cleric  puff\r\n", ch);
      /* add more here too */
      return;
    }
    one_argument(val_arg, arg1);
    if(!add_mob_spec(mob_index[MOB_NEW(ch)->nr].virtual, arg1))
      send_to_char("Invalid spec_proc.\r\n", ch);
    half_chop(val_arg, field, val_arg);
    break;
This is more __UNTESTED__ code.  If you try it out and have problems, send
me the make output and I'll help out.
Sam
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST