Stupid yahoo mail, not CC'ing it... anyways, the mob
purge command is written exactly like what you stated.
I've never had a problem with it before this mobprog
was written, which does this:
mob echo Some string
mob asound Some other thing
mob damage $r 50 100 "explosion" DAM_PIERCE /* I've
modified this function, it works like this */
mob purge
mob goto 950 /* a reaper mob here will kill it */
I hope that gives you a better clue, because I'm
lost...
--- brian moore <[EMAIL PROTECTED]> wrote:
> On Thu, Sep 19, 2002 at 01:54:34PM -0700, Matt Foltz
> wrote:
> > A builder on my mud is making an area full of land
> > mines. When a mob walks across a land mine, it
> > triggers a program to make an asound and purge the
> > mobs in the room. Problem is that I get these
> errors
> > in the log files:
> >
> > BUG: Char_from_room: ch not found
> > BUG: Extract_char: ch not found
> >
> > The first error puts all players into some weird
> > state, where they don't receive any messages that
> > require a descriptor lookup (possibly them
> simulate a
> > non-switched NPC, basically). The second error
> flat
> > out crashed the mud. I haven't changed mppurge,
> > char_from_room, or extract_char from how the
> > stock/patch is. Has anyone seen this before?
>
> This is a logic bug. Without seeing your code, it
> is impossible to say
> how to fix it. I can explain the problem in general
> terms and the
> general solution to it, though:
>
> In C, you have something like the following:
>
> for ( victim = ch->in_room->people; victim ;
> victim = victim->next_in_room )
> {
> if (IS_NPC(victim))
> extract_char(victim, TRUE);
> }
>
> The problem is that when you extract that first
> character, the
> next_in_room pointer is now f'd up. This is bad,
> since it no longer
> points to who the next person was in the room before
> you toasted that
> one.
>
> The solution? A temporary variable.
>
> for ( victim = ch->in_room->people; victim ;
> victim = v_next )
> {
> v_next = victim->next_in_room;
> if (IS_NPC(victim))
> extract_char(victim, TRUE);
> }
>
> You will see this sort of construct all over ROM.
> Grep for '_next' for
> examples.
>
> How you fix your case would, again, depend on the
> code.
>
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com