A simple command used to list objs/mobs/rooms in a certain zone. Any bugs/problems email be at jakehturner@hotmail.com or you can find me on ICQ at #64284941. ------------------ In interpreter.c ------------------ ---- Search for: ACMD(do_vstat); And below it add: ACMD(do_vlist); --- Search for: { "vstat" , POS_DEAD , do_vstat , LVL_IMMORT, 0 }, And below it add: { "vlist" , POS_DEAD , do_vlist , LVL_IMMORT, 0 }, ------------------- act.wizard.c ------------------- --- Add the following somewhere in the code.. ACMD(do_vlist) { int found = 0, choice = 0, nr = 0; zone_rnum zone; zone_vnum j; two_arguments(argument, buf, buf2); if (is_abbrev(buf, "objects")) choice = 1; if (is_abbrev(buf, "mobiles")) choice = 2; if (is_abbrev(buf, "rooms")) choice = 3; if (!*buf || !*buf2 || !is_number(buf2) || !choice) { send_to_char("Usage: vlist { obj | mob } \r\n", ch); return; } j = atoi(buf2); for (zone = 0; zone <= top_of_zone_table; zone++) if (zone_table[zone].number == j) { j = zone; break; } if (j > top_of_zone_table) { send_to_char("That is not a vlid zone number..", ch); return; } sprintf(buf, "Zone: %s\r\n", zone_table[j].name); send_to_char(buf, ch); switch (choice) { case 1: { for (nr = 0; nr <= top_of_objt; nr++) { if (obj_index[nr].vnum <= zone_table[j].top && obj_index[nr].vnum >= (zone_table[j].number * 100)) { sprintf(buf, "%3d. [%5d] %s\r\n", ++found, obj_index[nr].vnum, obj_proto[nr].short_description); send_to_char(buf, ch); } } break; } case 2: { for (nr = 0; nr <= top_of_mobt; nr++) { if (mob_index[nr].vnum <= zone_table[j].top && mob_index[nr].vnum >= (zone_table[j].number * 100)) { sprintf(buf, "%3d. [%5d] %s\r\n", ++found, mob_index[nr].vnum, GET_NAME(&mob_proto[nr])); send_to_char(buf, ch); } } break; } case 3: { for (nr = 0; nr <= top_of_world; nr++) { if (world[nr].zone == j) { sprintf(buf, "%3d. [%5d] %s\r\n", ++found, world[nr].number, world[nr].name); send_to_char(buf, ch); } } break; } default: { send_to_char("Come again?! :P", ch); return; } } }