Sorry, Mythran, it's not a perfect release, but still a good job nonetheless. I found a major error in the saving routine for OasisOLC. The problem was when saving, it does save_XXX(OLC_ZNUM(d)), and OLC_ZNUM(d) = real_zone_by_thing(number), where number has to be a vnum, but when saving people type "Xedit save <zone number>". Since most zone numbers are less than 200, it'll either end up saving zone 0 or zone 1. Thus, I've come up with a fix for it and included a check to save the zone the Imm is in if there is no zone argument or if the argument is a dot. Do the following for each of the files: medit.c, oedit.c, redit.c, sedit.c and zedit.c Find this: if (is_number(buf2)) number = atoi(buf2); else if (GET_OLC_ZONE(ch) > 0) { zone_rnum zlok; if ((zlok = real_zone(GET_OLC_ZONE(ch))) == NOWHERE) number = NOWHERE; else number = genolc_zone_bottom(zlok); } Replace it with: if (!*buf2 || !str_cmp(buf2, ".")) number = zone_table[world[IN_ROOM(ch)].zone].number; else if (is_number(buf2)) { number = atoi(buf2); if (real_zone(number) == NOWHERE) { send_to_char(ch, "That zone doesn't exist!\r\n"); return; } } else if ((GET_OLC_ZONE(ch) == 0) || (real_zone(number = GET_OLC_ZONE(ch)) == NOWHERE)) number = NOWHERE; Also, find "if (save) {" and change the two occurrences of zone_table[OLC_ZNUM(d)].number to number, and save_XXX(OLC_ZNUM(d)) to save_XXX(real_zone(number)). For example, in medit (I cut out the extra asterisks in the comments): Find this: if (save) { send_to_char(ch, "Saving all mobiles in zone %d.\r\n", zone_table[OLC_ZNUM(d)].number); mudlog(CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(ch)), TRUE, "OLC: %s saves mobile info for zone %d.", GET_NAME(ch), zone_table[OLC_ZNUM(d)].number); /**********************************************************/ /** Save the mobiles. **/ /**********************************************************/ save_mobiles(OLC_ZNUM(d)); Replace it with: if (save) { send_to_char(ch, "Saving all mobiles in zone %d.\r\n", number); mudlog(CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(ch)), TRUE, "OLC: %s saves mobile info for zone %d.", GET_NAME(ch), number); /**********************************************************/ /** Save the mobiles. **/ /**********************************************************/ save_mobiles(real_zone(number)); That's all. There are a couple of other tweaks I've made to OasisOLC, but those are mainly to customize it to suit my mud. They are not bug fixes and are quite easy to add in, so I'm not going to post them. Regards, Jarhad Idanno _____________________________________________________________ Play at A Merging of Fates MUD and get free E-Mail too! http://www.merging.org _____________________________________________________________ Select your own custom email address for FREE! Get you@yourchoice.com w/No Ads, 6MB, POP & more! http://www.everyone.net/selectmail?campaign=tag -- +---------------------------------------------------------------+ | 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/26/03 PDT