DayZMod / DayZ

DayZMod Public Files
https://dayz.com/
186 stars 90 forks source link

Players duplicate/clone when relogging #71

Closed Innuce closed 11 years ago

Innuce commented 11 years ago

Running Chenarus v1.7.7.1 on a dayz.st server. Caught players abusing a glitch whereby they clone themselves to duplicate gear.

Experimented with a co-admin and found the cloning happens as you log on after logging out with a pistol in hand. When you log out with a main weapon, your character appears to others to collapse, then sink into the ground. When you log out with a pistol in hand, your character simply disappears. Another odd observation is, my co-admin cannot see his or my clones, yet I can see his and mine. Not sure why some can see it while others cannot. Have altered the server_onPlayerDisconnect.sqf file. Seems to have reduced, but not eliminated the likelihood of the cloning happening. The clone appears to be a dead character without a name or cause of death, yet in a standing position. All gear is accessable, and lootable.

Would it be a possible workaround solution to run a script to clear dead bodies within a small radius of players as they connect to the server to eliminate the cloned bodies?

Innuce commented 11 years ago

Even better idea. Is it possible to detect standing players with a script? I found code to cleanup dead bodies. Perhaps it could be applied to dead bodies that are standing only? Now, everytime someone logs on, it would delete any standing dead bodies. Problem solved! Perhaps checking only the immediate radius of a player logging on would be faster to process.

marceldev89 commented 11 years ago

'server_onPlayerDisconnect.sqf' has had a few changes over the past few days/weeks so there's a good chance it's been fixed/reduced already. I've also made some changes just now which will hopefully fix/reduce the problem even more.

If the problem still persists after the next patch we could probably take a look at cleanup options. It's definitely possible to check the player stance by script so it is a viable solution that you provided.

Innuce commented 11 years ago

Thank you for your response!

I have tried a few suggested "fixes" in the 'server_onPlayerDisconnect.sqf' file, but the problem persists.

The glitch only seems to happen when someone is standing when they log out. Perhaps using the "setUnitPos" to force a player to either kneel or go prone as they are disconnecting? Then, no cleanup necessary since the clone wouldn't be created in the first place?

I'm not very gifted with scripting, so I would need some guidance as to how to invoke this command properly. Would this be placed in 'server_onPlayerDisconnect'?