>Has anyone else used The vlist snippet?
>It appears to be created to list obj,
>mob and world files in a specified zone.
>
>Obj and Mob work great.
>
>World doesn't seem to work correctly.
This is my code for the vlist command... modified from the one I found in
the contrib. The fix for the vlist room is in there, but some variable names
changed. I also added shops. Email me if you want the shop part. If you use
the following, but you don't want the shops, then just remove the shop
parts.
ACMD(do_vlist)
{
int i, tarzone, nr = 0, found = 0, choice = 0;
zone_vnum j;
two_arguments(argument, buf, buf2);
if (is_abbrev(buf, "obj")) choice = 1;
else if (is_abbrev(buf, "mob")) choice = 2;
else if (is_abbrev(buf, "room")) choice = 3;
else if (is_abbrev(buf, "shop")) choice = 4;
if (!choice || !*buf2) {
send_to_char("Usage: vlist { obj | mob | room | shop } <zone>\r\n", ch);
return;
}
j = atoi(buf2);
for (tarzone = 0; tarzone <= top_of_zone_table; tarzone++)
if (zone_table[tarzone].number == j)
break;
if (tarzone < 0 || tarzone > top_of_zone_table) {
send_to_char("Value must be a valid zone.\r\n", ch);
return;
}
tarzone = atoi(buf2);
i = tarzone*100+99;
switch (choice) {
case 1:
for (; nr <= top_of_objt && obj_index[nr].vnum <= i; nr++)
if (obj_index[nr].vnum >= (tarzone*100)) {
if (obj_index[nr].vnum >= (tarzone*100)) {
sprintf(buf, "%5d. [%5d] %s\r\n", ++found,
obj_index[nr].vnum, obj_proto[nr].short_description);
send_to_char(buf, ch);
}
if (!found)
send_to_char("There were no objects created under that zone.\r\n",
ch);
break;
case 2:
for (; nr <= top_of_mobt && mob_index[nr].vnum <= i; nr++)
if (mob_index[nr].vnum >= (tarzone*100)) {
sprintf(buf, "%5d. [%5d] %s\r\n", ++found,
mob_index[nr].vnum, mob_proto[nr].player.short_descr);
send_to_char(buf, ch);
}
if (!found)
send_to_char("There were no mobiles created under that zone.\r\n",
ch);
break;
case 3:
for (; nr <= top_of_world && world[nr].number <= i; nr++)
if (world[nr].number >= (tarzone*100)) {
sprintf(buf, "%5d. [%5d] %s\r\n", ++found,
world[nr].number, world[nr].name);
send_to_char(buf, ch);
}
if (!found)
send_to_char("There were no rooms created under that zone.\r\n", ch);
break;
case 4:
print_shops(tarzone, ch);
break;
default:
mudlog("SYSERR: Vlist command not found!", BRF, LVL_IMMORT, TRUE);
}
}
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT