I'm trying to do a vlist command, and I've come up with this, but there is one problem, it can't find the real_number of a non-existant vnum so, therefore, I can't use a range... let me explain: for example, the vlist_object(int low, int high, char_data *ch) utility that I use to list the objects from low, to high (like 3000, 4000 lets say) int vlist_object(int lownumber, int highnumber, struct char_data *ch) { int nr, found = 0; strcpy(buf, "\0"); for (nr = real_object(lownumber); nr <= real_object(highnumber); nr++) <===== here is the problem!!! if(obj_index[nr].vnum <= highnumber && obj_index[nr].vnum >= lownumber) { sprintf(buf + strlen(buf), " &K- [&W%5d&K]&w %s\r\n", obj_index[nr].vnum, CAP(obj_proto[nr].short_description)); ++found; } page_string(ch->desc, buf, TRUE); return(found); } real_object(blahblah) returns 0 if the number put into that function doesn't exist (like lets say I do real_object on vnum 100, but there is no object at vnum 100, then it returns 0 and the for loop ends) If the for loop ends, then it doesn't list anything! so a range of 0 to 10 (10 being a valid vnum) would list everything from 0 to 10, but then if I want to see further, and do 0 to 20 (20 NOT being a valid vnum) it doesn't list anything at all... Does anyone understand what I'm saying here? :) If you have an idea, please let me know! +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST