Re: do_save - A few questions...

From: Patrick Dughi (
Date: 07/04/00

        >snipped everything - this is a more general message<

        I haven't seen item duplication in a while.  Generally speaking,
it's usually difficult enough to perform on purpose, now involving a
planned crash, and special timing issues.  I personally have never been
able to get it to work correctly (though I have been able to log onto a
mud 6-7 times with the same character, it was an error with the creation
menu process. The mud crashed quickly after anyway).

        What was more important to me was inadvertant item duplication.
Using Xapobjs, I had allowed players to perform a 'reimbursement' save.
It was controled by the character - up to them when to perform a save, but
it would save their entire equipment to a secondary item file.  Then, if
they were somehow unfairly stripped of gear, an immortal could 'reimb
<player>' and restore their lost inventory.  For a while, especially when
we were playing with object-affecting code, there were crashes where this
was necessary.  One player in particular seemed to have need of a reimb
nearly every day.  Though we never had any hard proof, we stopped reimbing
him, thinking that he was somehow attempting a duplication of eq with our

        Later, another coder put in object tracking.  Basically, it was a
unique number based on the time (including microseconds) and attached to
an object.  If the object was ever duplicated, one of them would be
destroyed.  This ended our problem with the character above - most of
his equipment had been dropped, or when he was killed, he did not return
to pick it up.  Reimb denied.  This would work whether or not it was an
immortal-controled reimb, or a player-crash-item duplication scheme.

        It hasn't been fully automated - right now the search and
destruction are based in perl scripts which run on the object files.
Though it needs some spiffying up, I think that this would be a nice final
solution.  I for one enjoy being able to type 'save' and have my character
saved.  Especially on circlemuds which - as many of us know - are rather
crash prone.  (Not any fault of the base, just many inexperienced
programmers = many unstable muds).  It's dreadfully simple to add - just
look into the gettimeofday timeval struct, and the tv_usec member.  The
hard part is scanning all other files for an occurance.


     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

This archive was generated by hypermail 2b30 : 04/10/01 PDT