Crossfire Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CF: Disconnects and Saves



Christian Stieber wrote:
> Raphaël Quinet (Raphael.Quinet@eed.ericsson.se) wrote:
> > 2 - The player's HP reaches 0 because there were too many nasty monsters
> >     around.  The player dies and is moved back to the city.
> 
> So you mean you'd rather kill players instead of letting them save inside
> a treasure room?
> 
> Oh boy, I'm really glad that the server sources are available...

Why are you always so pessimistic and sarcastic?  ;-)

This case (player dies) was only number 2 in the list.  The first case
was: the player reconnects and continues playing as before.  I expect
that it would be the most frequent case for accidental disconnections.
So my answer is no, I would not kill the players.  Instead, I would
give them a chance to continue a couple of seconds after the accident.
In order to save time when reconnecting, the client could probably try
to re-submit the last character name and password used so that the
user would not waste precious seconds.

> > If I got it right, none of these cases would allow any duplication of
> > objects
> 
> Correct. Neither does the current solution. Just add that stupid
> "save_player()" call when the player disconnects. The "kill the client
> to duplicate items" is just a bug, easy to fix.

But the current solution with "save_player()" would still allow people
to save their character in a treasure room, wait until the map resets,
and grab the treasure again.  That could be useful for the last level
of the Tower of Demonology or the Grey Shield maps, for example.

Another problem with the current solution: if some other player enters
the map in which someone else was saved, releases dozens of monsters and
then runs away, the saved player could have a nasty surprise when he
comes back a bit later.  Being moved to the home village avoids this
problem.

> Also, the usual way to duplicate items is to crash the server
> (probably still easy enough with the client), since usually there no
> such convenient bug like the forgotten "save_player()" available. This
> is just a lucky situation for cheaters. No need to kill people.

Well, one of the advantages of the client-server solution is that it is
harder to crash the server from the client side.  It is still possible,
but much more difficult than before, and eventually all these fatal
bugs will go away.  That was not so easy with the old system because
it was less important to fix the fatal (but avoidable) bugs since anybody
could crash the whole game easily by being nasty with their window.  So I
think that the server crashes will be much less frequent than the client
crashes/disconnects.

-Raphaël
-
[you can put yourself on the announcement list only or unsubscribe altogether
by sending an email stating your wishes to crossfire-request@ifi.uio.no]