There needs to be some way of keeping exp if disconnected...


(Ranstaton) #1

Every once in a while I get disconnected from a server for no apparent reason and when I reconnect I have to start all over from 0 exp. It would be nice if the server saved your data in case you were disconnected, so that when you join you get it all back. Of course it wouldn’t get saved longer than it should (like when the game goes to next campaign or whatever).

Wondering if there is any way they could do this, because this would be very nice thing to add to next patch.


(Azarael) #2

Definetly. It would be good if the server could save your info for at least long enough to give you time to reconnect.


(DG) #3

sounds open to cheat abuse tbh :bored:


(FstFngrz) #4

This was available in some Q2 mods. If you got disconnected from the match, you could rejoin and retain your stats.

A quick google search turned up this link from telefragged.com :
http://www.telefragged.com/q2comp/docs.html#ghost
Quote:
“ghost code - [–F]
The “ghost” command allows you to temporarily save your score and stats in a Match so that you can reconnect in case you get disconnected. During Match …”
http://www.telefragged.com/q2comp/docs.html#ghost

I’ve asked this same ? a few times and no response, I take it is not an option at this time.


(Ranstaton) #5

I don’t see how it would be open to cheat abuse if the server was the one keeping it.

By the way, what is tbh?


(VampMaster) #6

To Be Honest


(Emon) #7

You couldn’t cheat with that. If you left when you had say, 300 XP, then rejoined a half an hour later, guess what! Everyone else has 800 XP and you still have 300. Mighty fine cheating there!

You wouldn’t be able to build up XP and then wait for a match restart, because at the match restart the server would clear the database of experience and points.

Best way would be to keep a database of player stats based on IP address or hostmask. Hostmask if possible.


(weasel) #8

If it were stored it by name, yes, but it would be kept by IP address or GUID, and it would reset when everyone else’s XP reset.


([fun]scott) #9

hmm that not going to take up more server resources. having to save every second for everyone on the server … thats a mighty big db if you run a 30 -40 player with ppl connecting every 5 mins.


(Kendle) #10

Presumably the server maintains a database of player GUID - XP score anyway. All that would be required is not clearing a slot when a player disconnects and opening up a new slot when a player connects. That might double or treble the number of slots over a long campaign, but we’re only talking a few bytes of disk storage per player, and nothing extra in terms of server-side processing. All the slots would be cleared when XP is re-set anyway.

I think maintaining XP over a disconnect is going to be considered a pretty essential feature for Clan games.


(VampMaster) #11

Just as the guy disconnects, Save the EXP + skills he have for 5 minutes so he can reconnect, then wipe it.


(Ranstaton) #12

Bumplet.


(FallenMatt) #13

well… i think most of the time server disconnects for “unknown reason” is:

  1. server crashed - usually can reconnectd in few seconds, new map, 0 players :slight_smile:
  2. i’ve got one too many TK complaints… especially annoying when it happens 2 minutes before the end of the last map of the campaign, somebody run in front of my MG and decided that it was my fault that he was stanging in front of the gold room door :slight_smile:

in the later case saving XP would go against the spirit of penalty.


(Azarael) #14

I don’t know about that, you could easily store the xp in a data structure that should take up far less then a k. Make the storage time configureable and there shouldn’t be too many problems.


(Dawg) #15

I don’t think size is the issue, speed is more important. But even if you can use an unsorted list the speed shouldn’t be that bad. The list would only be accessed when a player logs on or is disconnected if you do not cull by time.

Since the list is unsorted you either add new entries at the beginning or end and remove the oldest entry from the other end. Rather than cull by time, which would require repeated regular iterations throught the list, I would just limit the list size so the oldest gets bumped off the far end of the list. If there is a server-side way of differentiating between a clean disconnect (client initiated) and a connection interuption of some sort (I imagine there is some sort of acking going on in the netcode), the list wouldn’t be filled by clean disconnects and should only contains true interuptions. Whenever a player connects, it could be compared fairly quickly against the entries in the list to see if it is a reconnect or new connection.

Could improve the speed some by using an array and replacing reloaded entries (which are removed) by the last in the ‘list’. This would make it so the last entry is not always the oldest, but I don’t think its a big deal. Kinda like a heap structure.

This assumes its just a matter of storing a mapping of the GUID to the XP value. There may be far more than that involved, however, so I am not saying its that simple. But I don’t think it calls for a more elaborate data structure. Haven’t really thought it all through as far as efficiency is concerned… :slight_smile:

Dawg


(skybuck) #16

Good idea,

Make it so !


(Mystiqq) #17

this should have been applied from the start…
i get disconnect for various reasons, so playing the last map of 3 map campaign and you get disconnected -> “god damned”

so there should be some sort of 5 min period where the stats are saved and you can continue from where you left…

cheers
mystiqq


([fun]scott) #18

then you have the problem off wehn you disconnect you got x amount of time to reconnect (server may be full) . adn does et (ET PB) not give you a temp guid when you connect and also diffrent ip (dialup dynamic) so if you do connect in time you will have a diffrent ip adn guid