On Tue, 4 Apr 1995, Scott Francis wrote:
> Hey I'm sure this is kinda trivial, but I have a question. I'm trying to
> make a multiroom scan command and am having trouble accessing rooms past
> those that are immediately connecting to the character.
>
> I am trying to do something similar to
> EXIT(ch,(EXIT(ch,door))->to_room)->to_room) to get there..but it doesn't seem
> to work....any suggestions would be greatly appreciated.....
>
I started to reply to this, and ended up writting my own scan command.
I'll post it, in case you might find it useful at all...
--snip--
ACMD(do_scan)
{
int dir, dist, max_dist = 5; /* set max_dist to your needs */
int original_location = ch->in_room; /* save room to put them back */
if (!*argument) {
send_to_char("Scan which direction?\r\n", ch);
return;
}
skip_spaces(&argument);
if ((dir = search_block(argument, dirs, FALSE)) < 0) {
send_to_char("Thats not a direction!\r\n", ch);
return;
}
if (!CAN_GO(ch, dir)) { /* closed or non-existant exit... */
look_in_direction(ch, dir);
return;
}
sprintf(buf, "$n scans the terrain %s.", dirs[dir]);
act(buf, 0, ch, 0, 0, TO_ROOM);
for (dist=1; dist < max_dist; dist++)
if (CAN_GO(ch, dir)) {
ch->in_room = world[ch->in_room].dir_option[dir]->to_room;
sprintf(buf, "You scan %s, and see...\r\n", dirs[dir]);
send_to_char(buf, ch);
look_at_room(ch, 0);
}
ch->in_room = original_location;
}
--snip--
Hope that helps...
-Skylar
This archive was generated by hypermail 2b30 : 12/07/00 PST