Jump to content

[Release] - A Plot for life v2.5. Keep your buildables on death. Take plot ownership


Recommended Posts

Hey RimBlock, good news and bad I'm afraid....

 

The good news is that did sort out the having to delete twice problem. Items removed the first time after taking ownership, stayed removed after a server restart. :) This testing was done on a legacy base with just me.

 

I asked one of my admins to come in so we could test still being able to remove after a legitimate death. I killed him and he could still remove so, that was fine too. :)

 

The bad news.....he built a new base, I then took the plot down, replaced it, took ownership and removed a wall. However, he could also still remove walls as well. He then took ownership back after replacing the pole. I could then still remove walls. However, his animation was 3 stages, mine was 6. We then realised we had been regression testing DayZ group Management earlier and when you join a group that automatically tags you as friendly. Even though we had disbanded the group before this test, we decided to restart the server and restart our test again.

 

Same thing happened, exactly the same way as described above.

 

Even more strange, after that restart, pretty much around 80% of the new base had vanished...a lot more than the 3 walls we had removed for the test.

 

When we looked at the ObjectID's of the remaining walls in game using infiSTAR show target info, I get a 6 digit number and the owner is shown as me, he gets a zero and the owner is shown as him. In the db, the steam ID is his but the ObjectID matches the 6 digit number I had received on target information in game.... :/

 

Any ideas....?

 

We're off to test on a legacy base now but, thought I should let you know this asap.

 

Thanks

 

EDIT: Now tested on a legacy base, same thing happening.

Also, importantly, what seems to be happening is that now the items are being duplicated in the db. They have the same ObjectUID but a different ObjectID. If one of us removes that item, both entries in the db are removed and the item is removed in game.

Link to comment
Share on other sites

How can I install Just the "A_Plot_for_Life" part as I already have Snap_pro installed and a load of custom configs and such these files tell me to replace my configs that I cant do as there holding all my other scripts..

 

**EDIT**

 

I have added all the files where It said to but here is the problem...

 

In init.sqf I need to place this...

call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\variables.sqf";
 
BUT I have this one for all my scripts that are already Installed....
call compile preprocessFileLineNumbers "Scripts\Variables\Variables.sqf";
 
Same for the calls below...
 
Plot for life one...
call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\compiles.sqf";
 
My one...
call compile preprocessFileLineNumbers "Scripts\Server_Compile\compiles.sqf";
 
I tried to just keep my calls and merge variables and compiles to include the code for plot for life but after booting the server up to test the server no longer works. Lucky for me I have the server backed up every time I add a working script and everything still works I back it up so thats not a problem.
 
How can I make this work?
 
also In the instructions it says to make a custom file in the root where the @epoch and such files are Is that correct just seems a little odd placing a file there :S I will post a link below to an image of where I put it.
 
Link to comment
Share on other sites

Hey RimBlock, good news and bad I'm afraid....

 

The good news is that did sort out the having to delete twice problem. Items removed the first time after taking ownership, stayed removed after a server restart. :) This testing was done on a legacy base with just me.

 

I asked one of my admins to come in so we could test still being able to remove after a legitimate death. I killed him and he could still remove so, that was fine too. :)

 

The bad news.....he built a new base, I then took the plot down, replaced it, took ownership and removed a wall. However, he could also still remove walls as well. He then took ownership back after replacing the pole. I could then still remove walls. However, his animation was 3 stages, mine was 6. We then realised we had been regression testing DayZ group Management earlier and when you join a group that automatically tags you as friendly. Even though we had disbanded the group before this test, we decided to restart the server and restart our test again.

 

Same thing happened, exactly the same way as described above.

 

Even more strange, after that restart, pretty much around 80% of the new base had vanished...a lot more than the 3 walls we had removed for the test.

 

When we looked at the ObjectID's of the remaining walls in game using infiSTAR show target info, I get a 6 digit number and the owner is shown as me, he gets a zero and the owner is shown as him. In the db, the steam ID is his but the ObjectID matches the 6 digit number I had received on target information in game.... :/

 

Any ideas....?

 

We're off to test on a legacy base now but, thought I should let you know this asap.

 

Thanks

 

EDIT: Now tested on a legacy base, same thing happening.

Also, importantly, what seems to be happening is that now the items are being duplicated in the db. They have the same ObjectUID but a different ObjectID. If one of us removes that item, both entries in the db are removed and the item is removed in game.

 

Ok, firstly ignore infinistar.  AFAIK it is not tailored to work with A Plot for Life.

 

Friendlies are stored in characters current state field (with other data).  There is a max of 5 and they should be pretty easy to spot.  Delete them and the friendlies will be unlinked.  The character will need to be logged off, delete the entries at the DB and then log the character back in.

 

What is in the DB is the key.  If you place a pole and take ownership then you need to check the game logs with what is in the DB.  New items will not have an objectID until the server is restarted and they are read in.

 

As what you are doing is quite complex, it would help if you bullet pointed your steps including server / client rpt file and DB table checks to confirm who does what when and what each person client state is and the server state is when each person is performing the action.  As you can imagine, trouble shooting 2+ person interactivity can be quite tricky.

Link to comment
Share on other sites

Ok, firstly ignore infinistar.  AFAIK it is not tailored to work with A Plot for Life.

 

Friendlies are stored in characters current state field (with other data).  There is a max of 5 and they should be pretty easy to spot.  Delete them and the friendlies will be unlinked.  The character will need to be logged off, delete the entries at the DB and then log the character back in.

 

What is in the DB is the key.  If you place a pole and take ownership then you need to check the game logs with what is in the DB.  New items will not have an objectID until the server is restarted and they are read in.

 

As what you are doing is quite complex, it would help if you bullet pointed your steps including server / client rpt file and DB table checks to confirm who does what when and what each person client state is and the server state is when each person is performing the action.  As you can imagine, trouble shooting 2+ person interactivity can be quite tricky.

Yes, sorry RimBlock, working on a little more detail now but, just wanted to get our initial findings across. Seems like there's definitely built rows duped as players take ownership but, as they all share the same ObjectUID, when someone removes it, all corresponding rows are deleted. Will get more info across as soon as I can.

Link to comment
Share on other sites

 

How can I install Just the "A_Plot_for_Life" part as I already have Snap_pro installed and a load of custom configs and such these files tell me to replace my configs that I cant do as there holding all my other scripts..

 

**EDIT**

 

I have added all the files where It said to but here is the problem...

 

In init.sqf I need to place this...

call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\variables.sqf";
 
BUT I have this one for all my scripts that are already Installed....
call compile preprocessFileLineNumbers "Scripts\Variables\Variables.sqf";
 
Same for the calls below...
 
Plot for life one...
call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\compiles.sqf";
 
My one...
call compile preprocessFileLineNumbers "Scripts\Server_Compile\compiles.sqf";
 
I tried to just keep my calls and merge variables and compiles to include the code for plot for life but after booting the server up to test the server no longer works. Lucky for me I have the server backed up every time I add a working script and everything still works I back it up so thats not a problem.
 

How can I make this work?
 
also In the instructions it says to make a custom file in the root where the @epoch and such files are Is that correct just seems a little odd placing a file there :S I will post a link below to an image of where I put it.
 

 

Hi dzrealkiller, you need to use something like diffmerge to merge things like this if you are already running custom files. To go through manually and merge is not only a painstakingly long way round but, also much more risky. If you are going to do this manually and only have a couple of scripts added, you may find it easier to start from these files and add your scripts into that.

 

Tbh, If you're not confident with merging, then maybe hold off until the next version of Epoch, which is due soon as this integrated in that version.

 

Personally, I wouldn't attempt this without using diffmerge or windiff.

Link to comment
Share on other sites

Hi RimBlock, this is our detailed report about the problem where the new player and old player can still remove walls after the new player has taken ownership.

 

Things worked out slightly differently to last time as you'll see below. Last time we had duplicate rows in the db after the objects were taken over, this time we had no rows. The difference is that this was with a new base, rather than a legacy base in the previous test.

 

For the purpose of this test we have me as BaroN and our Admin as Player 1. We have infiSTAR loaded on the server but, are not using it at all, don't have each other tagged as friendly or, anything in the current state column of our characters.

  • BaroN builds a plot and 2 half cinder walls. (nothing in the server rpt. at this stage):
Database Rows:
ObjectID ObjectUID Classname Datestamp LastUpdated CharacterID Worldspace
115874 62303830430306 Plastic_Pole_EP1_DZ 24/11/2014 01:10 24/11/2014 01:10 69781 [306.15,[6230.34,8304.33,0],"76561197961xxxxxx"]
115876 623048308817307 CinderWallHalf_DZ 24/11/2014 01:18 24/11/2014 01:18 69781 [307.323,[6230.44,8308.81,-0.166],"76561197961xxxxxx"]
115875 62271830440307 CinderWallHalf_DZ 24/11/2014 01:18 24/11/2014 01:18 69781 [307.323,[6227.1,8304.43,0.023],"76561197961xxxxxx"]
  • Player 1 removes plot & replaces it
Server.rpt
1:39:49 "infiSTAR.de Log: PLAYER 1 (76561198148xxxxxx) | Plot Pole removed @062070"
Database Rows:
DB row for BaroN's plot has been deleted in the db. New row for Player 1 below.
ObjectID ObjectUID Classname Datestamp LastUpdated CharacterID Worldspace
115877 62305830530307 Plastic_Pole_EP1_DZ 24/11/2014 01:44 24/11/2014 01:44 69792 [306.683,[6230.53,8305.31,0],"76561198148xxxxxx"]
  • Player 1 Takes ownership of the 2 half cinder walls through the plot
Server.rpt:
 1:48:06 "PUBLISH: Attempt 3449dd00# 1062570: cinder_wall_half.p3d REMOTE"
 1:48:06 "PUBLISH: Created CinderWallHalf_DZ with ID 623048308817307"
 1:48:06 "PUBLISH: Attempt 343bdd00# 1062562: cinder_wall_half.p3d REMOTE"
 1:48:06 "PUBLISH: Created CinderWallHalf_DZ with ID 62271830440307"
 1:48:06 "DELETE: B 1-1-B:1 (PLAYER 1) REMOTE Deleted by UID: 623048308817307"
 1:48:06 "DELETE: B 1-1-B:1 (PLAYER 1) REMOTE Deleted by UID: 62271830440307"
Database Rows:
Both entries for the walls has now been deleted in the db.
  • In game we both see the walls and both get the option to remove them.
  • I remove one wall even though I'm not the owner anymore. Takes 6 stages.
Server.rpt:
 1:57:28 "DELETE: B 1-1-C:1 (BaroN) REMOTE Deleted by UID: 62271830440307"
  • We restart the server
  • Both walls are gone in line with the deleted rows in the db

So, from our findings:

  • on a new base, when someone takes ownership old rows are deleted but, new ones aren't added. These are then not in game after a restart.
  • on a legacy base when someone takes ownership, the old row is left in the db and a new one for the new owner is set up with the same ObjectUID but different OjectID's effectively duping built items in the db.
  • in both cases the old and new owners can remove in game. The previous owner cycles through 6 stages of remove while the new owner cycles through 3.

I hope this gives you the extra info you were hoping for. Please do let me know if you think I have done something wrong but, I have checked and rechecked my install a number of times and have quite a lot of experience merging etc now. The only difference between my files and your download, apart from my calls to other scripts, is the additional line you gave a few posts back.

 

Let me know if you need anything else.

 

Thanks

 

 

 

Link to comment
Share on other sites

Thanks for the info.

 

I am curious as to why your publish is displayed before your deletion ("Player 1 Takes ownership of the 2 half cinder walls through the plot").

 

It should delete and then publish.

 

In plot_take_ownership.sqf make sure the publicVariableServer "PVDZE_obj_Delete"; is before the publicVariableServer "PVDZE_fullobj_Publish";

 

So we have two environments.

DB env

Game env

 

Game env objects can have a number of states depending on the env.

New object before reboot (OID = 0, OUID = game calculated based on world position).

New object after server reboot (OID = DB autoassigned value on creation, OUID = game calculated based on world position at time of creation).

Old object (OID = DB autoassigned value on creation, OUID = game calculated based on world position at time of creation).

 

Object removal at a DB level (in the context of buildables) checks the objects OID and if it is not 0 it will use that for the deletion as it is guaranteed unique.  If the OID is 0 then it will use the UID (which may not be unique but most of the time will be).

 

Object removal at a game world level does not happen in this mod.  The variables attached to the object are just changed.

 

To remove an object if you are not the owner but are friendly give a penelty of taking twice as many cycles so the game thinks you are still friendly to each other for some reason.  A far as friendlies goes, this mod only changes whether the SteamID is recored or the characterID is recorded in the player record for team members.  If you have anything that plays with friendlies then it may knock this off.

 

A look at the character records from the DB may be helpful.

Link to comment
Share on other sites

Hi Rimblock,

 

I can confirm that "PVDZE_obj_Delete" is before "PVDZE_fullobj_Publish" as I haven't touched that file from your download except for the earlier edit.

 

Character rows are below:

BaroN Character Record
"CharacterID" "PlayerUID" "InstanceID" "Datestamp" "LastLogin" "Inventory" "Backpack" "Worldspace" "Medical" "Alive" "Generation" "LastAte" "LastDrank" "KillsZ" "HeadshotsZ" "DistanceFoot" "Duration" "CurrentState" "KillsH" "Model" "KillsB" "Humanity" "Infected" "last_updated"
"69781" "76561197961xxxxxx" "11" "2014-11-21 15:16:39" "2014-11-24 02:08:11" "[[""Colt1911"",""ItemHatchet_DZE"",""ItemMap"",""ItemFlashlight"",""ItemEtool"",""ItemToolbox"",""ItemRadio"",""ItemCrowbar""],[""ItemPainkiller"",""ItemBandage"",""ItemBandage"",""7Rnd_45ACP_1911"",""ItemWoodWallLg""]]" "[""DZ_Assault_Pack_EP1"",[[],[]],[[],[]]]" "[334,[6232.58,8300.39,0.001]]" "[false,false,false,false,false,false,false,12000,[],[0.11,0],0,[188.375,88.235]]" "1" "23" "2014-11-21 15:16:39" "2014-11-21 15:16:39" "0" "0" "624928" "544" "[""Colt1911"",""aidlpercmstpsraswpstdnon_player_idlesteady02"",34,[]]" "1" "Survivor2_DZ" "0" "9949" "0" "2014-11-24 02:22:53"
Player 1 Character Record
"CharacterID" "PlayerUID" "InstanceID" "Datestamp" "LastLogin" "Inventory" "Backpack" "Worldspace" "Medical" "Alive" "Generation" "LastAte" "LastDrank" "KillsZ" "HeadshotsZ" "DistanceFoot" "Duration" "CurrentState" "KillsH" "Model" "KillsB" "Humanity" "Infected" "last_updated"
"69792" "76561198148xxxxxx" "11" "2014-11-22 23:53:09" "2014-11-24 02:08:18" "[[""Colt1911"",""ItemMap"",""ItemToolbox"",""ItemFlashlight"",""ItemCrowbar"",""ItemEtool"",""ItemRadio"",""ItemHatchet_DZE"",""M136""],[""ItemBandage"",""ItemBandage"",""7Rnd_45ACP_1911"",""ItemHeatPack"",""ItemHeatPack"",""M136""]]" "[""DZ_Assault_Pack_EP1"",[[],[]],[[],[]]]" "[19,[6251.47,8309.58,0.001]]" "[false,false,false,false,false,false,false,12000,[],[0,0],0,[0.345,0.206]]" "1" "152" "2014-11-22 23:53:09" "2014-11-22 23:53:09" "0" "0" "139722" "102" "[""M136"",""aidlpknlmstpsraswlnrdnon_player_0s"",37,[]]" "0" "Survivor2_DZ" "0" "27524" "0" "2014-11-24 02:19:46"

I can confirm we are running ebay's DayZ Group Management (http://opendayz.net/threads/release-dzgm-dayz-group-management.20293/

 

Let me know what else you need.

 

Thanks

Link to comment
Share on other sites

You could try putting a sleep 1; after the setvariable line I suggested you added.  I really want to see the server log report that the original item is deleted before the new item is published.  As it is reporting it is publishing the new item (with the same OUID) before deleting anything with that OUID I can see why there would be no objects in the DB left.  Both actions are reported in the same second and scripts do not always execute in the order they are called.  Sending a 'completed' ack back from the server after the delete would be safer but would up the bandwidth usage and affect any other items using that delete server side script.

 

I cannot get to the link from the office so am not sure what the other mod is doing.  A copy of your remove.sqf may help.

 

I may get a chance to spend a little time verifying the issue tonight.

Link to comment
Share on other sites

Ok so this is what I have so far.

 

Vanilla Epoch 1.0.5.1 & A Plot for Life v2.34

 

Place a plot pole

Build a metal floor and wood wall

Log off and stop server.

Change ownerID in the DB for those objects to a random SteamID (inc the last number by 1).

Start the server.

Login.

Remove the plot pole (no longer the owner).

Place a new plot pole.

Try to remove floor or wall: Fail, option does not appear.

Choose take ownership option from the plot pole.

Remove wall & floor: Items removed from game world but not from DB (still trying to remove original objects objectID): Fail.

Logoff

Stop server

Change objects ownership to different SteamID

add "_object setvariable["ObjectID", "0"];" line to plot_take_ownership.sqf under "publicVariableServer "PVDZE_obj_Delete";"

Start server.

Login

Try to remove floor or wall: Fail, option does not appear.

Choose take ownership option from the plot pole.

Remove wall & floor: Items removed from game world and the DB: Success.

 

If you take ownership and then reboot the server I suspect it will work straight away without having to add the extra line.

 

Github & Dropbox have been updated.

Link to comment
Share on other sites

Thanks RimBlock, this seems to have fixed all previous issues! :)
 
Our test report in case it's of any use....

Our new test with the code change applied from dropbox. Cpt. is one of our admins.
 
BaroN builds a plt with 3 half cinder walls:
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115883" "62757836022317" "11" "CinderWallHalf_DZ" "2014-11-25 16:41:55" "2014-11-25 16:41:55" "69781" "[316.628,[6275.7,8360.15,0.202],""76561197961xxxxxx""]" "[]" "[]" "0.00000" "0.00000"
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115882" "62834835603047" "11" "CinderWallHalf_DZ" "2014-11-25 16:41:09" "2014-11-25 16:41:09" "69781" "[46.628,[6283.37,8356.04,-0.305],""76561197961xxxxxx""]" "[]" "[]" "0.00000" "0.00000"
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115881" "62796836001447" "11" "CinderWallHalf_DZ" "2014-11-25 16:40:26" "2014-11-25 16:40:26" "69781" "[46.628,[6279.59,8360.04,-0.14],""76561197961xxxxxx""]" "[]" "[]" "0.00000" "0.00000"
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115880" "6281183552039" "11" "Plastic_Pole_EP1_DZ" "2014-11-25 16:39:40" "2014-11-25 16:39:40" "69781" "[38.686,[6281.11,8355.22,0],""76561197961xxxxxx""]" "[]" "[]" "0.00000" "0.00000"

Cpt. removed plot.

Entry in db removed
16:56:10 "infiSTAR.de Log: Cpt. (76561198108xxxxxx) | Plot Pole removed @062070"
BaroN still gets option to remove walls

Cpt. placed plot

New entry in db:

"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115884" "6281483567045" "11" "Plastic_Pole_EP1_DZ" "2014-11-25 17:04:17" "2014-11-25 17:04:17" "69790" "[44.748,[6281.43,8356.72,0],""76561198108xxxxxx""]" "[]" "[]" "0.00000" "0.00000"

BaroN still gets option to remove on built items but, Cpt. hasn't taken ownership yet.

 
Cpt. takes owhership through plot pole
Original wall rows now removed from the db
New rows entered in db:
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115885" "62834835603047" "11" "CinderWallHalf_DZ" "2014-11-25 17:12:17" "2014-11-25 17:12:17" "69790" "[47,[6283.37,8356.04,-0.305],""76561198108xxxxxx""]" "[]" "[]" "1.00000" "0.00000"
"115886" "62796836001447" "11" "CinderWallHalf_DZ" "2014-11-25 17:12:17" "2014-11-25 17:12:17" "69790" "[47,[6279.59,8360.04,-0.14],""76561198108xxxxxx""]" "[]" "[]" "1.00000" "0.00000"
"115887" "62757836022317" "11" "CinderWallHalf_DZ" "2014-11-25 17:12:17" "2014-11-25 17:12:17" "69790" "[317,[6275.7,8360.15,0.202],""76561198108xxxxxx""]" "[]" "[]" "1.00000" "0.00000"

Entries in Server.rpt:

17:12:16 "DELETE: B 1-1-B:1 (Cpt.) REMOTE Deleted by UID: 62834835603047"
17:12:17 "PUBLISH: Attempt 341c0f00# 1062133: cinder_wall_half.p3d REMOTE"
17:12:17 "PUBLISH: Created CinderWallHalf_DZ with ID 62834835603047"
17:12:17 "DELETE: B 1-1-B:1 (Cpt.) REMOTE Deleted by UID: 62796836001447"
17:12:17 "PUBLISH: Attempt 34206b00# 1062125: cinder_wall_half.p3d REMOTE"
17:12:17 "PUBLISH: Created CinderWallHalf_DZ with ID 62796836001447"
17:12:17 "DELETE: B 1-1-B:1 (Cpt.) REMOTE Deleted by UID: 62757836022317"
17:12:17 "PUBLISH: Attempt 34113900# 1062143: cinder_wall_half.p3d REMOTE"
17:12:17 "PUBLISH: Created CinderWallHalf_DZ with ID 62757836022317"

BaroN still gets option to remove the wall but takes 6 stages:

17:21:39 "DELETE: B 1-1-C:1 (BaroN) REMOTE Deleted by UID: 62757836022317"

Wall's row removed from db 

 
We actually like this feature, allowing the recently robbed player a chance to return to his base, take a wall down, gain entry and try and take his base back inside a server restart.
 
We restarted the server.
 
Rows in the db still reflected same way:
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115885" "62834835603047" "11" "CinderWallHalf_DZ" "2014-11-25 17:12:17" "2014-11-25 17:12:17" "69790" "[47,[6283.37,8356.04,-0.305],""76561198108xxxxxx""]" "[]" "[]" "1.00000" "0.00000"
"115886" "62796836001447" "11" "CinderWallHalf_DZ" "2014-11-25 17:12:17" "2014-11-25 17:12:17" "69790" "[47,[6279.59,8360.04,-0.14],""76561198108xxxxxx""]" "[]" "[]" "1.00000" "0.00000"
"115884" "6281483567045" "11" "Plastic_Pole_EP1_DZ" "2014-11-25 17:04:17" "2014-11-25 17:04:17" "69790" "[44.748,[6281.43,8356.72,0],""76561198108xxxxxx""]" "[]" "[]" "0.00000" "0.00000"

BaroN removes plot

Entry in db removed
17:38:57 "DELETE: B 1-1-C:1 (BaroN) REMOTE Deleted by ID: 115884"

Cpt. still gets option to remove walls

 
BaroN placed plot
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115888" "6281083571035" "11" "Plastic_Pole_EP1_DZ" "2014-11-25 17:43:33" "2014-11-25 17:43:33" "69781" "[34.523,[6281.03,8357.08,0],""76561197961xxxxxx""]" "[]" "[]" "0.00000" "0.00000"

Cpt. still gets option to remove on built items but, BaroN hasn't taken ownership yet. 

Cpt. relogs, still gets the option to remove. (still a plus in our opinion)
 
BaroN takes owhership through plot pole
Original wall rows now removed from the db
New rows entered in db:
"ObjectID" "ObjectUID" "Instance" "Classname" "Datestamp" "LastUpdated" "CharacterID" "Worldspace" "Inventory" "Hitpoints" "Fuel" "Damage"
"115889" "62834835603047" "11" "CinderWallHalf_DZ" "2014-11-25 18:02:29" "2014-11-25 18:02:29" "69781" "[47,[6283.37,8356.04,-0.305],""76561197961xxxxxx""]" "[]" "[]" "1.00000" "0.00000"
"115890" "62796836001447" "11" "CinderWallHalf_DZ" "2014-11-25 18:02:29" "2014-11-25 18:02:29" "69781" "[47,[6279.59,8360.04,-0.14],""76561197961xxxxxx""]" "[]" "[]" "1.00000" "0.00000"
"115888" "6281083571035" "11" "Plastic_Pole_EP1_DZ" "2014-11-25 17:43:33" "2014-11-25 17:43:33" "69781" "[34.523,[6281.03,8357.08,0],""76561197961xxxxxx""]" "[]" "[]" "0.00000" "0.00000"

Entries in Server.rpt:

18:02:29 "PUBLISH: Attempt 2a6e2400# 1059245: cinder_wall_half.p3d"
18:02:29 "PUBLISH: Created CinderWallHalf_DZ with ID 62834835603047"
18:02:29 "DELETE: B 1-1-C:1 (BaroN) REMOTE Deleted by ID: 115885"
18:02:29 "DELETE: B 1-1-C:1 (BaroN) REMOTE Deleted by ID: 115886"
18:02:29 "PUBLISH: Attempt 2a6e1d00# 1059246: cinder_wall_half.p3d"
18:02:29 "PUBLISH: Created CinderWallHalf_DZ with ID 62796836001447"

Cpt. still gets option to remove the wall but takes 6 stages:

18:07:33 "DELETE: B 1-1-B:1 (Cpt.) REMOTE Deleted by ID: 115885"

Wall's row removed from db 

 

Test passed with flying colours and an added unexpected feature...

 
Success! :)
 
Tried on legacy base everything working as expected as well
 
Only one problem we are now experiencing, if we tag each other as friendly, the friend can't build or remove as they can with default Epoch. Is this a feature? Only the plot owner can build and/or remove in P4L?
 

My Character row in db:
"CharacterID" "PlayerUID" "InstanceID" "Datestamp" "LastLogin" "Inventory" "Backpack" "Worldspace" "Medical" "Alive" "Generation" "LastAte" "LastDrank" "KillsZ" "HeadshotsZ" "DistanceFoot" "Duration" "CurrentState" "KillsH" "Model" "KillsB" "Humanity" "Infected" "last_updated"
"69781" "76561197961xxxxxx" "11" "2014-11-21 15:16:39" "2014-11-25 17:30:32" "[[""Colt1911"",""ItemMap"",""ItemFlashlight"",""ItemEtool"",""ItemRadio"",""ItemToolbox"",""MeleeHatchet_DZE"",""ItemCrowbar""],[""ItemPainkiller"",""ItemBandage"",""ItemBandage"",""7Rnd_45ACP_1911""]]" "[""DZ_Assault_Pack_EP1"",[[],[]],[[],[]]]" "[218,[6314.45,8232.56,0.001]]" "[false,false,false,false,false,false,false,12000,[],[0,0],0,[145.669,114.079]]" "1" "23" "2014-11-21 15:16:39" "2014-11-21 15:16:39" "1" "1" "660830" "644" "[""MeleeHatchet_DZE"",""aidlpercmstpsraswrfldnon_idlesteady04"",42,[""76561198108xxxxxx""]]" "1" "Survivor2_DZ" "0" "9954" "0" "2014-11-25 18:21:50"

 
Thanks RimBlock, you are a star! Great mod :D
Link to comment
Share on other sites

Non-owners or friendlies should not be able to remove buildables (standard Epoch).

 

I have kept to the spirit of Epoch as much as possible so have left that side of it alone.

 

It shoulds like something is messing around with the friendlies system (which is a PITA TBH).

 

Is it not working correctly on a system with only Vanilla Epoch and A Plot for Life installed or are there other mods and if so which ones.

 

I can do a quick verify on my test system as it is currently up and running tonight and see if I have the same issue.

Link to comment
Share on other sites

I don't know about vanilla just with P4L installed but, I know that on our main live server it works with all other mods installed.

 

The only difference from our live to our test currently is the addition of P4L....

 

EDIT: I have just checked and the only override for tagfriendly is P4L and there's only the one call for it out of damageactions which is also an override in P4L. So, my point is that I don't have anything else that's using it or overriding it.

Link to comment
Share on other sites

Ok, for testing, try adding the following to this mods remove.sqf

 

FInd

_nameVehicle = getText(configFile >> "CfgVehicles" >> _objType >> "displayName");

Change to 

// For testing.
diag_log format["[Remove.sqf] Player: %1  Friendlies: %2",player,_friendlies];
diag_log format["[Remove.sqf] Object: %1  Plot pole Owner: %2",_obj,_ownerID];

Post up the results which should appear in the client RPT file.

 

Edit: Actually, just typing it out...

 

It checks the plot pole owner not the object owner  :D

Link to comment
Share on other sites

 

Ok, for testing, try adding the following to this mods remove.sqf

 

FInd

_nameVehicle = getText(configFile >> "CfgVehicles" >> _objType >> "displayName");

Change to 

// For testing.
diag_log format["[Remove.sqf] Player: %1  Friendlies: %2",player,_friendlies];
diag_log format["[Remove.sqf] Object: %1  Plot pole Owner: %2",_obj,_ownerID];

Post up the results which should appear in the client RPT file.

 

Edit: Actually, just typing it out...

 

It checks the plot pole owner not the object owner  :D

 

Sorry, a bit lost...

 

Are sure you don't mean add underneath rather than change to...?

 

And after your edit, do you still want me to do anything...?

 

:wacko:

Link to comment
Share on other sites

Hi RimBlock, if you could let me know what to test that would be great.

 

So, just to confirm, everything to do with remove is now working perfectly. If try to remove something where I'm not the plot owner, the option doesn't even appear on the scroll wheel which is correct.

 

However, a tagged friend can't build at a plot I have taken ownership of, which they can in standard Epoch....

Link to comment
Share on other sites

Ok, good to hear, was working on your comment from post

 

 

Only one problem we are now experiencing, if we tag each other as friendly, the friend can't build or remove as they can with default Epoch. Is this a feature? Only the plot owner can build and/or remove in P4L?

 

Ok so will concentrate on building only.

 

Do you have modular building turned on or not (DZE_modularBuild = true; ) ?.

Link to comment
Share on other sites

Yes, set as this:
// --------------------------------
DZE_PlotOwnership = true;
DZE_APlotforLife = true;
DZE_modularBuild = true;
// --------------------------------

Just a thought, what we haven't tested was whether a tagged friendly could still build at a new/fresh base an owner is building. I mean one that hasn't been taken over. Our tests show that the tagged friendly definitely can't build at a base a new owner has just taken over using P4L. That seems to be the problem...

 

Link to comment
Share on other sites

Ok, to drill down a bit on what appears to be working and what does not.

 

Old bases & Old friendly

Take ownership of base

Friendly cannot build before server reboot: Y/N

Friendly cannot build after server reboot: Y/N

 

Old bases & New friendly (post A Plot for Life install)

Take ownership of base

Friendly cannot build before server reboot: Y/N

Friendly cannot build after server reboot: Y/N

 

----

 

New bases (built post A Plot for Life install) & Old friendly

Take ownership of base

Friendly cannot build before server reboot: Y/N

Friendly cannot build after server reboot: Y/N

 

New bases (built post A Plot for Life install) & New friendly (post A Plot for Life install)

Take ownership of base

Friendly cannot build before server reboot: Y/N

Friendly cannot build after server reboot: Y/N

 

----

 

Own bases & New friendly (post A Plot for Life install)

Already owned base

Friendly cannot build before server reboot: Y/N

Friendly cannot build after server reboot: Y/N

 

Own bases & Old friendly

Already owned base

Friendly cannot build before server reboot: Y/N

Friendly cannot build after server reboot: Y/N

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
×
×
  • Create New...