On Sat, 10 Jan 1998, Jeff Almeida wrote:
>I wasnt able to get a response on this, is it impossible to do?
No, actually sounds easy.
>I am looking to assign a spec process after the mud is up and running. For
WARNING! Mailer code, untested, not compiled, and probably missing a ).
ACMD(do_assign)
{
int i;
struct char_data *mob;
struct {
const char *name;
SPECIAL(*func);
} special_p[] = {
{ "fido", fido },
{ "janitor", janitor },
{ "cityguard", cityguard },
{ "puff", puff },
{ "\n", NULL }
};
skip_spaces(&argument);
two_argument(argument, buf1, buf2);
/*
* Find the correct entry in the table.
*/
for (i = 0; special_p[i].name != '\n'; i++)
if (!str_cmp(buf1, special_p[i].name))
break;
if (special_p[i].name == '\n') {
send_to_char("That special procedure was not found.\r\n", ch);
return;
}
/*
* Ok, now we need the mob to tag. You could also see if the person
* put in a number here for the VNUM of the mob.
*/
if ((mob = get_char_vis(ch, buf2)) == NULL) {
send_to_char(NOPERSON, ch);
return;
}
/* Sanity check if you like. */
mob_index[mob->nr].func = special_p[i].func;
send_to_char(OK, ch);
}
>Can a MOB have two spec_proc's?
Shopkeepers do, but that is a special arrangement.
--
George Greer - Me@Null.net | Genius may have its limitations, but stupidity
http://www.van.ml.org/~greerga | is not thus handicapped. -- Elbert Hubbard
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST