Anyone else mess around with the new Oasis yet and run across this problem? I was trying to figure out the sedit.c/shop.c bug (since it crashes my bundle). I ran across a little incompatibility with the save list. The new oasis saves the zone numbers to the 'save_list' however when you go to save them you can't use the zone number. example: (don't do this in zone 0 to show the true effect) redit -> b -> 0 -> q -> y (save internal) type olc to see the zone show up then type redit save <zone you just edited a room from> you see: > Saving all rooms in zone 0. type olc again, you see your zone listed. Then type redit save <zone * 100 (like 1200)> > Saving all rooms in zone 0. type olc again and whala > All world files are up to date. In oasis.c when you type redit save <zone>, it takes the zone number and tries to use this if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) { which won't work becuase 'number' is the zone number not a vnum! I fixed it by adding in this, (oasis.c) /* * Find the zone. */ + if (save) { + if ((OLC_ZNUM(d) = real_zone(number)) < 0) { /* is this a good way to check? */ + send_to_char("Sorry, there is no zone for that number!\r\n", ch); + free(d->olc); + d->olc = NULL; + return; + } + } - if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) { + else if ((OLC_ZNUM(d) = real_zone_by_thing(number)) == -1) { send_to_char("Sorry, there is no zone for that number!\r\n", ch); free(d->olc); d->olc = NULL; return; } Please, let me know if there is a better way to do this! (I was tired and was getting frustrated at making it work correctly). -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST