I know first hand that tracking down erroneous exits can drive you crazy and waste so much time!
So I dropped this little bit of code into zcheck.
It adds two simple checks:
does this exit have a way back?
if it does, is it back to the same room?
in act.wizard.c, find the zcheck() function and change the very bottom to:
Code:
} /*is room in this zone?*/
} /*checking rooms*/
send_to_char(ch, "\r\nChecking exit consistency and logic..\r\n");
for (i=0; i<top_of_world;i++)
{
if (world[i].zone==zrnum)
{
m++;
for (j = 0, k = 0; j < DIR_COUNT; j++)
{
if (!world[i].dir_option[j])
k++;
else
{
if (world[i].dir_option[j]->to_room != NOWHERE)
{
if (!world[world[i].dir_option[j]->to_room].dir_option[rev_dir[j]])
send_to_char(ch, "-[Room %d]- Exit %s has no reverse direction.\r\n",world[i].number, dirs[j]);
else if ( world[world[world[i].dir_option[j]->to_room].dir_option[rev_dir[j]]->to_room].number != world[i].number )
send_to_char(ch, "-[Room %d]- Exit %s does not return to this room.\r\n",world[i].number, dirs[j]);
}
}
}
if (k == DIR_COUNT)
l++;
}
}
if (l * 3 > m)
send_to_char(ch, "More than 1/3 of the rooms are not linked.\r\n");
}
I hope this will help you and your builders sanity remain intact