Investigating further (player collected few mlns of experience during a hour of play and then lost them after crash), I have found one strange thing in Crash_save_all, objsave.c: void Crash_save_all(void) { struct descriptor_data *d; for (d = descriptor_list; d; d = d->next) { if ((STATE(d) == CON_PLAYING) && !IS_NPC(d->character)) { + /* Zmey: saving exp, levels & other stats shouldn't depend + on PLR_CRASH (item transfer) flag */ + save_char(d->character, NOWHERE); if (PLR_FLAGGED(d->character, PLR_CRASH)) { Crash_crashsave(d->character); - save_char(d->character, NOWHERE); REMOVE_BIT(PLR_FLAGS(d->character), PLR_CRASH); } } } } But there's a problem... MUDs with 300+ players online will probably lag a bit... To eliminate useless saving, I suggest making a new PLR_SAVEME flag & set it when players's stats are modified, then save players, who have this flag set. Zmey // 3MoonsWorld (rmud.net.ru:4000) +------------------------------------------------------------+ | 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