On Thu, 11 Apr 1996, Chris A. Epler wrote:
> A while back someone posted some code to list out the rooms, objects etc
> very easily. I believe the command was called rlist, olist etc...I
> seemed to have misplaced it however and would like to put it up on Cambot
> for everyone...
I posted a function to do this a few months ago. It's untested code and
needs some improvements like handling zones with more than 100 vnums.
I'm going to be including a function like this in the next release of
obuild but it calls some obuild utility functions.
Call the following function with a zone number and a list_type (0 for
rooms, 1 for objects, 2 for mobs). This is untested code, but it's all
based on things I've done before.
Sam
#define CHECKED_FOR_BUGS FALSE
#define LIST_ROOMS 0
#define LIST_OBJECTS 1
#define LIST_MOBS 2
void list_stuff(struct char_data *ch, int zone, int list_type)
{
int i, found = FALSE, rnum;
char buf[8192];
switch(list_type) {
case LIST_ROOMS:
sprintf(buf, "Rooms in zone #%d:\r\n\r\n", zone);
for(i = zone * 100; i <= (zone * 100) + 99; i++) {
r_num = real_room(i);
if(r_num) {
sprintf(buf, "%s%5d - %s\r\n", buf, i,
world[r_num].name ? world[r_num].name : "Unnammed");
found = TRUE;
}
}
break;
case LIST_OBJECTS:
sprintf(buf, "Objects in zone #%d:\r\n", zone);
for(i = zone * 100; i <= (zone * 100) + 99; i++) {
r_num = real_object(i);
if(r_num) {
sprintf(buf, "%s%5d - %s\r\n", buf, i,
obj_proto[r_num].short_description ?
obj_proto[r_num].short_description : "Unnammed");
found = TRUE;
}
}
break;
case LIST_MOBS:
sprintf(buf, "Mobs in zone #%d:\r\n", zone);
for(i = zone * 100; i <= (zone * 100) + 99; i++) {
r_num = real_mobile(i);
if(r_num) {
sprintf(buf, "%s%5d - %s\r\n", buf, i,
mob_proto[r_num].player.short_descr ?
mob_proto[r_num].player.short_descr : "Unnammed");
found = TRUE;
}
}
break;
}
if(!found)
sprintf(buf, "%sNone!\r\n", buf);
page_string(ch->desc, buf, 1);
}
#undef LIST_ROOMS
#undef LIST_OBJECTS
#undef LIST_MOBS
#undef CHECKED_FOR_BUGS
This archive was generated by hypermail 2b30 : 12/18/00 PST