diff -BbuprN -x '*.o' esong-test/src/act.other.c esong-dev/src/act.other.c --- esong-test/src/act.other.c 2003-10-26 16:03:01.000000000 -0600 +++ esong-dev/src/act.other.c 2003-11-28 12:04:11.000000000 -0600 @@ -31,6 +31,7 @@ extern const char *class_abbrevs[]; extern const char *race_abbrevs[]; extern int xap_objs; extern struct auction_data current_auction; /* Auction information */ +extern room_rnum r_mortal_start_room; /* extern procedures */ void list_skills(struct char_data *ch); @@ -78,6 +78,10 @@ ACMD(do_quit) else if (GET_POS(ch) < POS_STUNNED) { send_to_char(ch, "You die before your time...\r\n"); die(ch, NULL); + } else if (GET_LEVEL(ch) < LVL_IMMORT && + !ROOM_FLAGGED(IN_ROOM(ch), ROOM_HOUSE) && + (world[r_mortal_start_room].zone != world[IN_ROOM(ch)].zone)) { + send_to_char(ch, "You can't quit if you are not within your home town.\r\n"); } else { act("$n has left the game.", TRUE, ch, 0, 0, TO_ROOM); mudlog(NRM, MAX(LVL_IMMORT, GET_INVIS_LEV(ch)), TRUE, "%s has quit the game.", GET_NAME(ch));