Character Limit
-
Hey, I know those conversations too.
To shed a little light on everything, I think you guys might be talking about 2 different things.
There is a maximum number of cargo/equipment item limit in Freelancer. This appears to be 127 and although more items are possible there is a bug somewhere that sometimes corrupts the character file. The 127 limit includes engines, lights, cargo and equipment.
Depending on the corruption, when a single character file in the account gets corrupted, the account cannot be used. I’ve found that resetting the tstamp parameter in the character file to another date (the tstamp parameter is a windows FILETIME split into 2 integers) fixes the problem.
What I thought the first question was about was “how safe is it to increase the number of characters per account?”
-
SSM currently runs with 10 players per account, haven’t had any trouble with it. Now the overflowing cargo can be a problem, it is limited to 99 items per ship by using the player cleaner. If it’s commodities (as in stackable) then it’s only considered 1 item.
-
Sorry to dig this thread but it seems i have a problem
Well i have a strange behavior.I have one account that crashes the server as soon the player list gets displayed and it has something to do with the overloaded char. But if i just take out one of the chars of this account then the server does not crash. And the strange thing. It must not be the overloaded char - it can be any other. So yes its item/equip related but not entirely. It seems that the number of chars within this account play a role as well, although the char limit is not reached yet.
Anyone an idea what causes this and why removing one char of this account (not mandatory the bugged one) seems to be enough?
-
Overlimit is a strange bug. Theoretically the limit is 512 for the whole acct (or something like that), and 127 per pilot. But this is not a hard and fast rule. I have a few players with 150 items and 2 ships on the acct and both can be accessed fine.
So, if your 5 ships together breech the 512 limit, then removing any one of them should go below and make things good again.
-
Try using Freelancer Player Cleaner. http://forge.the-starport.net/attachments/download/198/FLPlyrCleanerV1_010.zip
It’ll scan your Multiplayer folder and correct detected errors in all player files.
As mentioned above, there is a total line count problem that can be shared across characters within an account. It’s odd though that it’s the server that’s crashing and not the player.
I’d start by removing all visit = lines and see if that fixes the problem. I presume you’ve already looked at the ship archetype, last base, and equipment lines for anything out of sorts.
-
Be careful just autocleaning >127 items. Our mod has lots of good items and people use ships for storage (worth billions). I run it as ‘check for errors only’ and then manually see what they have if they get flagged as over. If junk, delete it, if storage, delete just the few to get it under again.
-
good point. I have our server set to automatically back up the Multiplayer folder once a week. Then FLPlayerCleaner automatically runs and cleans the player files. This way if somebody does lose all their loot I can always restore the char from backups and they can shuffle things around as needed.
-
I found that issue with the 0xFFFFFFFF bug in the player files plus the overloaded cargo hold. Seems to happen only if you push the limit past the max of 5 players per account. In my case though it only craps out their account and doesnt crash the server.
-
One other thing you should do. Is it possible that the player in question has corrupted or incompatible game files? You should have that player reinstall FL, probably the JFLP, and also the latest version of your mod. May not make a difference, but at least you’ll have ruled that out as the cause.
-
Well i know of the PlayerCleaner Tool. But that does not help really to avoid crashing the server.
The server crashes as soon as the player list gets displayed. The routine that causes the crash is the CharacterInfoReq routine from the remoteclient.dll. At least thats what i get while debugging the hook. Its reproducable but i cant seem to find a way to avoid this crash.
I could parse all files before the remoteclient.dll routine is called. But its wrong to simply remove the equipments from one char who has more than 99 equipments as its the sum that seems to play a matter here. Character limit for one account is currently 9 although is also crashes with 8 chars only. If i remove one char then everything is fine tho. I dont know yet how to start to get around - than just remove each equip from the cargo that is beyond 99. Although that may make some players unhappy ;D
Is there known what limit exists as it seems not to be only 99 equips and also not char limit based for one account.
;( Struggling
Edit:
Its getting a bit more confusing now. I counted all the equipments on this account that is causing the crash. And it is not near any of the mentioned limits at all - except that one char has more than 99 equipments. I tried to remove on char from the account and so it works even with the “bugged” char still is on the list.
Then i made all chars again available and removed the base_cargo entries from the player file and it works. Ok too much base_cargo entries seems to be a reason - yeah. BUT no. It even works if i fill up the cargo entries from the player file so base_cargo and cargo count and items again match. Then the player even has too much cargo items but the account is still working this way with all player chars and the server is not crashing. So my last assumption is that the difference allone in one player file may be reason to trigger a crash. Although i dont understand why removing one char file before has also solved the issue so the server is not crashed.Has anyone an idea where base_cargo and cargo entries are coming from and why in most cases they are the same lists?
-
CharacterInfoReq () contains buffer overflow vulnerability, and can crash the server, with 7… 12 characters per account, and many visited objects or cargo holds.
Try to reduce arguments, contains buffer size (integer), not less than on 12.remoteclient.dll
0x96b1: 00 28 00 00 -> f0 27 00 00
0x9707: 00 90 01 00 -> f0 8f 01 00
It’s workaround only, NOT best solution. -
I am not sure, it is possible remoteserver.dll contains the same vulnerability,
0x9ae5: 00 28 00 00 -> f0 27 00 00
Has fixed client-side crashes in one of cases. -
Jolly_Roger wrote:
I am not sure, it is possible remoteserver.dll contains the same vulnerability,
0x9ae5: 00 28 00 00 -> f0 27 00 00
Has fixed client-side crashes in one of cases.So I need to edit:
remoteclient.dll
0x96b1: 00 28 00 00 -> f0 27 00 00
0x9707: 00 90 01 00 -> f0 8f 01 00
0x9ae5: 00 28 00 00 -> f0 27 00 00then I can fixed those crashes, am I right?
-
remoteclient.dll
0x96b1: 00 28 00 00 -> f0 27 00 00
0x9707: 00 90 01 00 -> f0 8f 01 00
remoteserver.dll (!!!)
0x9ae5: 00 28 00 00 -> f0 27 00 00Try it…
-
Two incidents with character files in last time, it was necessary to reduce size up to:
d0 8f 01 00
d0 27 00 00 -
Jolly_Roger wrote:
Two incidents with character files in last time, it was necessary to reduce size up to:
d0 8f 01 00
d0 27 00 00Your mean that:
change
remoteclient.dll
0x9707: 00 90 01 00 -> f0 8f 01 00to
remoteclient.dll
0x9707: 00 90 01 00 -> f0 27 00 00am I right?
Sorry for that I can’t understand what your mean.