Jump to content
  • 0

[Urgent] [FIXED] Buildings, PlotPoles use playerUID question


Sandbird

Question

In earlier version of epoch i always changed the script to create objects based on playerUID instead of characterID.

I am trying to do the same with 1.0.5.1 but i ran into a brick wall.

Although my changes are correct, my old scripts instead of showing the proper playerUID number (that long @ss Steam UID) it shows a 10 digit number that has no relevant numbers in it with the steam UID.

Is the hive.dll doing something funky here? Cause the server_monitor.sqf shows me 'THAT' number when it streams objects.

How does it get that number ?

 

My question...Since now in the objects_data table all the objects (buildings i mean) are tied to the Character_id, does that mean when you die, and place the plot pole again, these cell entries change to the new ID ? What happens to those outdated references?

 

Example: I place a wall and says the character_id is 2. If i die i get char_id 3.....what happens to the wall entry in the database ?

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

EDIT: OMG !!!! it must be the hive.dll

You guys have the cell as an int(11) number instead of a BIGINT(24) dont you ?

So there is no way of saving the steamID instead in the cell (although i did change it in the mysql)

 

The dll grabs only 11 characters from it doesn it ?

 

Will you release an update on this ? I mean come on.......you know people used to do this in earlier versions...to get the friendly tags and plot poles to 'tag' to playerUID instead of characterID.

 

ps: In case someone posts 'Use plot for life'.....please dont...i know about that mod, but tying the cell to playerUID is so much easier for other mods as well

Link to comment
Share on other sites

  • 0

Sandbird: take the linux server. You are more free to any changes with it ;)

 

We just bought a Xeon server with windows license....linux is out of the question :P not to mention that i got no idea how to make .so files

Plus i am tired of reinventing the wheel cause the devs are so stuck in 1980 with this hive dll.

 

Steam updated the playerUID to a huge number....its only natural they update the hive dll for the characterID.....they know we use it to store playerUIDs there.

I am not so sure if in C++ int holds a big enough number to store the Steam ID or not.....but since the server_monitor.sqf brings only 10 digits to the characterID value....my guess is its not.....a simple recompile to a bigint would solve the problem.....

Link to comment
Share on other sites

  • 0

This has been looked at back when the PlayerUID changed to the SteamID and blew out the characterID field in the DB (and my A Plot for Life mod).  The issue report on the Git goes through the investigation at that time and I have linked it to your new issue report (it is this one).

 

For my mod, I moved the steamID for buildables to the worldspace field in the DB (a number of other mod makers have also followed suit and it is starting to get cramped in there).

 

The Epoch mod team leveraged the getoldplayerUID command that BIS released shortly after the 1.63 release to allow mod makers to get the old PlayerUID for a player rather than the SteamID.  THis function was added to Epoch 1.0.5.2 which was never released and has now become 1.0.6 (due at the end of Oct...... possibly, maybe).

 

The code is in the compiles.sqf (lines 547-562).

 

It is standalone so does not rely on anything else and I have also included it in my latest version of A Plot for Life for Epoch 1.0.5.1.

Link to comment
Share on other sites

  • 0

This has been looked at back when the PlayerUID changed to the SteamID and blew out the characterID field in the DB (and my A Plot for Life mod).  The issue report on the Git goes through the investigation at that time and I have linked it to your new issue report (it is this one).

 

For my mod, I moved the steamID for buildables to the worldspace field in the DB (a number of other mod makers have also followed suit and it is starting to get cramped in there).

 

The Epoch mod team leveraged the getoldplayerUID command that BIS released shortly after the 1.63 release to allow mod makers to get the old PlayerUID for a player rather than the SteamID.  THis function was added to Epoch 1.0.5.2 which was never released and has now become 1.0.6 (due at the end of Oct...... possibly, maybe).

 

The code is in the compiles.sqf (lines 547-562).

 

It is standalone so does not rely on anything else and I have also included it in my latest version of A Plot for Life for Epoch 1.0.5.1.

 

Yup just got the email notification and posted a thank you note :)

Link to comment
Share on other sites

  • 0
 

 

Now that i really looked into the code there i need to reconfigure my db properly for the 1.0.6 release.

The fix in the github just takes the last 8 digits of the playerUID....are these the numbers that the GetPlayerUIDOld  will return ? cause i am not so sure about whether this is a real fix or a 'hack' to get a shorter ID to fit the cell.

If the GetPlayerUIDOld command will do the same thing...then i can just store the full id right now...and use Arma2Net, and later on when the 1.0.6 comes out to truncate all the cells to the proper amount of numbers and continue parsing the db the normal way.

 

I am asking cause the last 8 numbers of my current playerUID are not the same with my old (non-steam) playerUID.

GetPlayerUIDOld should convert my current id to the identical old id or not ?

 

-Thanks

 

ps: its funny...i just took a look into your github code for plot for life and i have made the exact changes to the exactly same files to tie the playerUID instead of the characterID to the objects lol.

It would have saved me a full day to just look at the files.

Link to comment
Share on other sites

  • 0

:D .

 

The GetPlayerUIDOld  gets the same id as BIS produced before the move to the SteamID.  Should match with what you have been storing  :) .

 

Crap then its not what i am storing lol.

I am starting the server fresh so i cant produce the ids BIS had before steam to use those instead. All i got now is the new SteamID that doesnt fit in the db cell, and a truncated last 8 digits one from the YD_fn_playerUID.

Do we know how GetPlayerUIDOld  produces the old ids ? maybe i can implement the function now and be 1.0.6 ready.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...