Jump to content

Forums Announcement

Read-Only Mode for Announcements & Changelogs

Dear Survivors, we'd like to inform you that this forum will transition to read-only mode. From now on, it will serve exclusively as a platform for official announcements and changelogs.

For all community discussions, debates, and engagement, we encourage you to join us on our social media platforms: Discord, Twitter/X, Facebook.

Thank you for being a valued part of our community. We look forward to connecting with you on our other channels!

Stay safe out there,
Your DayZ Team

VRocker

Cheater trolling or bug?

Recommended Posts

So... yesterday i finally set up my server on the hive and spent about 8 hours nolifing it until i went to bed. Me and a few friends found a Ural Civilian, a motorbike, and a bus plus a load of equipment so we were happy.

The server is set to restart every day at 8am GMT so it had restarted since we last played, i have just joined it though and the Ural Civilian has gone and a bicycle has been put in its place! The motorbike hasn't been touched and i assume the bus hasn't either (crashed it near camp without a wheel). There has been a few players join since we quit so i'm thinking, is a cheater trolling us? Did they steal our truck and replace it or is it just a bug on the hive?

I don't think anybody would stumble across our camp since its a long way from any town and very well hidden so unless you know where it is, you'd have to locate the vehicles using a cheat and find it that way.

Me and my friends are a bit pissed since that truck was pretty much fully loaded with some decent stuff, now we need to go find it all again :(

Share this post


Link to post
Share on other sites

K so it seems it wasn't a cheater. One of my friends told me we had a bicycle stored at camp anyway so it was just the ural that vanish (not transformed). This lead us to another discovery though, that if a vehicle isn't fully repaired then its position, inventory and repair state gets reset on server restart. Is this known/supposed to be like that? Rather annoying that the engine was damaged but everything else was fine but it respawned in its original position :(

Share this post


Link to post
Share on other sites

... that if a vehicle isn't fully repaired then its position, inventory and repair state gets reset on server restart. Is this known/supposed to be like that? Rather annoying that the engine was damaged but everything else was fine but it respawned in its original position :(

Nah it gets reset even if fully repaired. It's a 1.7.2.5 bug. A known 1.7.2.5 bug. At the very least you know where all the vehicles are.

Share this post


Link to post
Share on other sites

So i had a deep look into this and have figured it out, don't know if anybody else has but thought i'd mention it incase the devs are scratching their heads why the bug is random (works on some servers and not others)

Its all down to the ObjectID which is obtained from the Hive. The ObjectID is a unique identifier for the object and unique to the hive and server (i'm assuming). The problem is primarily down to the ARMA2 scripting system, since it handles all numbers as floating point numbers. If you're a programmer you will know floats are numbers which have a decimal point (such as 1.234). Now floats can be useful in some situations but they have a downside, if you try to put a large whole number (known as an integer) into a float, such as the number 1234567 then it will convert it to a float but not as you'd expect. Instead of becoming 1234567.0 it will be something like 1.23456e7 or similar.

Now this is where the problem lies, the DayZ hive contains millions of objects for all the servers connected to it, so that unique object ID can be over 2 million depending on the server. When the DayZ server asks the hive for a list of objects it gets passed an ID in number form, which the script then treats as a float and does that funky conversion on it. The result? the script thinks object 2017623 actually has the is 2.01762e3.

Now the script uses this ID to tell the hive what object has been changed when you fix/move/refuel/add items so the hive can update its database, so when this ID is incorrect it can't update the right entry in the hive. The problem is the dll doesn't translate this float back into a usable integer, even if it did it wouldn't get the right ID due to rounding errors.

Fortunately its a simple fix (if you have the source the hive dll *looks at the devs*), the object ID would just need to be sent to the script as a string.

I also wish to point out that this is different from the inventory bug since that's an error in the script as there's an if checking a number against a string as somebody else has posted.

Hope this helps the devs out and sorry if i ramble/dont make much sense, its 3am and i've been playing DayZ for 6 hours straight :P

Edited by VRocker

Share this post


Link to post
Share on other sites

×