Re: [errata] improved_edit.README

From: Sammy (
Date: 10/28/96

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 =:)


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 */

  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]))

  if(*(spec_list + i) = '\n')

  switch(i) {
    case 0:
      ASSIGNMOB(mob_vnum, thief);
    case 1:
      ASSIGNMOB(mob_vnum, cleric);
    case 2:
      ASSIGNMOB(mob_vnum, puff;

  SET_BIT(MOB_FLAGS(mob_proto + mob_rnum), MOB_SPEC);

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 */

    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);

This is more __UNTESTED__ code.  If you try it out and have problems, send
me the make output and I'll help out.


| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   |

This archive was generated by hypermail 2b30 : 12/18/00 PST