On Friday, August 08, 1997 2:49 AM, Ron Hensley [SMTP:ron@CROSS.DMV.COM]
wrote:
> On Fri, 8 Aug 1997, Snow Man wrote:
<snip>
> > can anyone help me with this error?
<snip>
> >
> > Fri Aug 8 04:37:02 :: Loading mobs and generating index.
> > Format error after mob #-1
> > thanks
>
> Go look in your mob directory. One of your mob files is empty due to an
> OLC crash i would bet. When oasis writes a file to disk, the old one is
> overwritten temporarily, id imagine due to an fopen(file,"w") call.
>
> If the mud crashes before the file is re-written, you end up with an
> empty file. Ive not had this problem in quite some time, but it does
happen.
>
<snip>
Here's a little snippet to mitigate some of the data loss from an olc crash.
Just put this, or a varient of it, in the xxxxx_save_to_disk for each olc
save
routine. Then, when you get a crash just copy xx.wld.bak to xx.wld to restore
it as of the last successful save.
sprintf(buf, "%s/%d.wld", WLD_PREFIX, zone_table[OLC_ZNUM(d)].number);
sprintf(buf2, "%s/%d.wld.bak", WLD_PREFIX, zone_table[OLC_ZNUM(d)].number);
if (remove(buf2 ) == -1 )
log_info("SYSERR: Error deleting a room .BAK file.");
if (rename(buf, buf2)) {
log_info("SYSERR: Error renaming a room file to .BAK");
return; /* bail if we can't rename. */
}
buf2[0]='\0';
if (!(fp = fopen(buf, "w+"))) {
log_info("SYSERR: OLC: Cannot open room file!");
return;
}
--Mallory
I can picture in my mind a world without war, a world without hate.
And I can picture us attacking that world, because they'd never
expect it. - Jack Handey
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST