> No. It's more complicated.
> If you order all charmies to kill 2nd charmie and 1st charmie kills 2nd
> charmie - MUD will crash because pointer to 2nd charmie is invalid.
> The solution is (I posted it long time ago):
>SNIPPED HERE<
> Btw, currently few more functions have potential crash bugs of that
> type. They can be rewritten using additional variable (cloop_member)
> for vict's existence checking. The basic algorythm:
> 1) Cycle through victims, mark them
> 2) Cycle through victims, lookup marked ones and perform actions.
> After every action performed, resume at 1st member of list.
Actually, I did this, and I'm pretty sure I even posted the
snippet to do so on the list after having some problems with mobs that
were spec_proc'ed killing or otherwise removing themselves from the game.
I don't think I heard any feed back from it though...
letseee..for info, examine
http://post.queensu.ca/cgi-bin/listserv/wa?A2=ind9909&L=circle&P=R3268
http://post.queensu.ca/cgi-bin/listserv/wa?A2=ind9909&L=circle&P=R3653
Both show up.. looks like i said I'd write a patch on it...hey.. i did.
ftp://ftp.circlemud.org/pub/CircleMUD/contrib/code/moblists.README
ftp://ftp.circlemud.org/pub/CircleMUD/contrib/code/moblists.tar.gz
But I don't see me actually identifying the fact that I put the
code out for public consumption. Whoops. Now you know. It actually wraps
everything, apparently I did it in a clever manner, and so it's applicable
with mobprogs/spec_procs/misc killings/dgscripts/etc. Damn, I'm fine :)
I still think this sort of thing (maybe cleaned up a bit) should
be put in the general distribution.
PJD
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT