From: Eric Kilfoil Subject: New Autoexit function I really didn't care for the stock Autoexit function, so i wrote my own. If you want it here it is. All you have to do is, in act.informative.c, replace the do_auto_exits function with this one. This will give you an autoexit that looks more like the exit command rather than the little one liner thing. It will also tell you if there are closed doors (which i couldn't figure out why that wasn't there stock). It'll look something like this: Obvious Exits: North - The Kitchen South - The Living Room East - The door is closed West - The closet is closed It also checks the keyword of the door and puts that in there. For immortals, it would look something like this: Obvious Exits: [North] [Room Number] - The Kitchen [South] [Room Number] - The Living Room [East ] [Room Number] - The Bathroom - CLOSED [West ] [Room Number] - The Closet - CLOSED - LOCKED - PICKPROOF Keep in mind that it will change the normal autoexit, not add another one. If you wanted, i suppose you could make a new a new PRF_FLAG for autodir or something, but i found the builtin autoexit so useless i just scrapped the whole thing. Well, here it is. It may have bugs, but i don't think so (it's not very difficult code) but just be forewarned: void do_auto_exits(struct char_data *ch) { int door; *buf = '\0'; if (IS_AFFECTED(ch, AFF_BLIND)) { send_to_char("You can't see a damned thing, you're blind!\r\n", ch); return; } for (door = 0; door < NUM_OF_DIRS; door++) { if (EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE && !IS_SET(EXIT(ch, door)->exit_info, EX_CLOSED)) { if (GET_LEVEL(ch) >= LVL_IMMORT) sprintf(buf2, "%-5s - [%5d] %s\r\n", dirs[door], world[EXIT(ch, door)->to_room].number, world[EXIT(ch, door)->to_room].name); else { sprintf(buf2, "%-5s - ", dirs[door]); if (IS_DARK(EXIT(ch, door)->to_room) && !CAN_SEE_IN_DARK(ch)) strcat(buf2, "Too dark to tell\r\n"); else { strcat(buf2, world[EXIT(ch, door)->to_room].name); strcat(buf2, "\r\n"); } } strcat(buf, CAP(buf2)); } else if (EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE && IS_SET(EXIT(ch, door)->exit_info, EX_CLOSED)) { if (GET_LEVEL(ch) >= LVL_IMMORT) { sprintf(buf2, "%-5s - [%5d] %s - CLOSED", dirs[door], world[EXIT(ch, door)->to_room].number, world[EXIT(ch, door)->to_room].name); if (IS_SET(EXIT(ch, door)->exit_info, EX_LOCKED)) strcat(buf2, " - LOCKED"); if (IS_SET(EXIT(ch, door)->exit_info, EX_PICKPROOF)) strcat(buf2, " - PICKPROOF"); strcat(buf2, "\r\n"); } else sprintf(buf2, "%-5s - The %s is closed\r\n", dirs[door], fname(EXIT(ch, door)->keyword)); strcat(buf, CAP(buf2)); } } send_to_char("Obvious exits:\r\n", ch); if (*buf) send_to_char(buf, ch); else send_to_char(" None.\r\n", ch); }