== Tyche's MPStatus command for Mobprogs == This snippet allows you to store and read state in MobProgs. A very simple but powerful addition to MobProgs. In mob_prog.c add this define... #define CHK_STATUS (53) In the fn_keyword[] table add this... "status", /* if status $n == 1000 - checks status value on mob */ In cmd_eval() near the end after case CHK_GRPSIZE: add... case CHK_STATUS: lval = lval_char->mprog_status; break; Add the following to the CHAR_DATA structure in merc.h int mprog_status; Add an entry to mob_cmd_table[] in mob_cmds.c {"status", do_mpstatus}, Add this routine or similar to mob_cmds.c void do_mpstatus (CHAR_DATA * ch, char *argument) { char arg[MIL]; char errbuf[MIL]; if (ch == NULL) return; one_argument (argument, arg); if (!is_number (arg)) { sprintf (errbuf, "MpStatus: invalid arg from mob vnum %d.", ch->isNPC() ? ch->pIndexData->vnum : 0); wiznet (errbuf, NULL, NULL, WIZ_PROGS, 0, 0); return; } ch->mprog_status = atoi (arg); } Get it working and now your mprogs have the capability to save and query state. The following fight trigger is an example of usage: if status $i == 0 poke $n say You look delicious, $n. mob status 1 end endif if status $i == 1 say I have a feeling your flesh will be rather tough. mob echo A bolt of energy flies from $I's hand! mob cast 'force bolt' $n chortle mob status 2 End endif if status $i == 2 if rand 25 mob status 0 endif endif end