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