Presumably when the character loads, ch->on is not being set, so it's
a null (or unitialized pointer) so when you try to dereference
victim->on, you segfault.

The right way to fix it would be to see if you can set ch->on when a
player loads.

The quick 'n' dirty fix is to change your if statement to 
if (!IS_NPC(ch) && !IS_NPC(victim) && victim->on!=NULL &&
IS_SET(victim->on->value[2], SLEEP_ON))

Although that may not fix the problem if victim->on isn't initialized
to NULL, or if the problem is something else entirely. A bit of GDB
output would be nice.

-David

On 4/14/05, Brinny <[EMAIL PROTECTED]> wrote:
> I added a little piece of code in to do_wake to
> prevent someone from waking another player up while
> that person is sleeping on a piece of furniture:
> 
>     if (!IS_NPC(ch) && !IS_NPC(victim) && IS_SET
> (victim->on->value[2], SLEEP_ON))
>     {
>         send_to_char("That person is far too
> comfortable to be woken up.\n\r",ch);
>         return;
>     }
> 
> It works, but when the person who is sleeping logs out
> and logs back in (still sleeping on the furniture) and
> the other character tries to wake them it crashes. I'm
> not sure what the problem is here. Maybe I need to add
> something into another function? Any help would be
> great, thanks.
> 
> Brittany.
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! Small Business - Try our new resources site!
> http://smallbusiness.yahoo.com/resources/
> --
> ROM mailing list
> [email protected]
> Unsubscribe here ->>> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>

Reply via email to