[Home]History of QuickSnippets

TheSourcery | RecentChanges | Preferences | Index | RSS


Revision 3 . . May 28, 2005 8:09 am by JonLambert [mpstatus command for mobprogs]
Revision 2 . . (edit) May 13, 2005 2:18 am by JonLambert
  

Difference (from prior major revision) (no other diffs)

Changed: 25c25,26
sprintf(cmd, "egrep -ch \"^Vnum %d\" ../player/* | gawk \'{ s += $1 }; END { print s }\' > sum.txt", vnum);
sprintf(cmd,
"egrep -ch \"^Vnum %d\" ../player/* | gawk \'{ s += $1 }; END { print s }\' > sum.txt", vnum);

Removed: 61d61


Added: 63a64,144

MPStatus command for Mobprogs




This snippet allows you to store and read state in Mobprogs.

In mob_prog.c add this define...

#define CHK_STATUS (53)


In fn_keyword[] add this...

"status", /* if status $n == 1000 - checks status value on obj,room or 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



TheSourcery | RecentChanges | Preferences | Index | RSS
Search:
All material on this Wiki is the property of the contributing authors.
©2004-2006 by the contributing authors.
Ideas, requests, problems regarding this site? Send feedback.