On Tue, 16 Apr 1996, corey hoitsma wrote:
> ACMD(do_home)
> {
> struct descriptor_data *d;
> sh_int load_room;
> struct char_data *victim;
> d = descriptor_list;
this makes d a pointer to the first person on descriptor_list (the most
recent one logged in, I dont think you want to do this, because most
likely ch != d->character
> if (GET_LOADROOM(d->character) == 3005) {
> send_to_char("You don't have a house!", ch);
> return;
> } else {
> act("$n runs home!", TRUE, ch, 0, 0, TO_ROOM);
> char_from_room(victim);
you haven't set victim to anything yet, this is definatly a NULL pointer
this too is bad
> char_to_room(victim, GET_LOADROOM(d->character));
> act("$n is glade to be home!", TRUE, ch, 0, 0, TO_ROOM);
> look_at_room(victim, 0);
> }
> }
you may want to rewrite it like this:
NOTE:
on *>MY<* mud GET_LOADROOM() is the vnum of the room, not sure if this is
how it is in stock circle code (if it isn't you'll have to change this a bit)
/* sends a char back to his house (which is specified by his loadroom */
ACMD(do_home)
{
if(GET_LOADROOM(ch) == 3005)
send_to_char("You don't have a house!\r\n", ch);
else {
act("$n runs home!", TRUE, ch, 0, 0, TO_ROOM);
char_from_room(ch);
char_to_room(ch, real_room(GET_LOADROOM(ch)));
act("$n is glade to be home!", TRUE, ch, 0, 0, TO_ROOM);
look_at_room(ch, 0);
}
return;
}
This archive was generated by hypermail 2b30 : 12/18/00 PST