Jump to content

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


Recommended Posts

Due to the Epoch team needing to spend the majority of their time on A3Epoch, the pull request has not yet been included in the Epoch code.

 

I have now completed the plot boundary on / off option on the plot pole and I have now also completed the "Take item ownership" option, also from the plot pole (owner only). I wanted to integrate them with the code to be included in to Epoch core build which is 1.0.5.2-RC2 but due to its delays, I have decided to offer A Plot for Life v2.31 as a standalone mod in the mean time.

 

I have removed the original pull request and will be making another with these extra features shortly.

 

What v2.31 offers.

  • The whole system is is switchable between characterID and PlayerUID by setting a variable.
  • All items built after the mod is installed with have the PlayerUID and the characterID stored for ownership checking (locked buildables will only have the PlayerUID stored as the characterID field is used for the lock code).
  • Includes the 1.0.5.2. code to allow either SteamID or BIS PUID (written by icomrade).
  • Setup to easily integrate with the modular build system and Snap Build Pro (activated by setting a variable).  Common files are merged but you do need to download the other files for those two mods for it to work.
  • You can turn on the plot boundary from the plot pole and remove it.  Currently I am using the road cones with lights on top which are also visible at night.  They can be changed.
  • Take Ownership is available from the plot pole to the plot poles owner and allows them to take ownership of all buildables in range excluding  locked storage (safes / lockboxes), tents, locked doors.  This can be changed as it is all controlled via variables.  The core idea is that this will align peoples bases to the new system for steamID storage on legacy bases.  It also means that raiders can raid a base, replace the plot pole, take ownership and not get full access to locked areas but not have 6 cycles to remove stuff etc after taking over.  Depending on the size of the base, number of objects etc this could put a bit of load on the server / DB.  It is also turn off or on-able via a variable so you can set it only to allow players to realign their bases and then disable the option.
  • New function to check ownership or friendly status of a given object.

 

Current state.

 

Just testing the code as a standalone mod.

Need to check the plot boundary markers allow vehicle passage.

Need to confirm / account for plot objects already owned but without a SteamID saved in the objects record.

 

I am expecting to release next weekend, maybe sooner.

Link to comment
Share on other sites

New version uploaded (See first post).

 

This is a rewrite to enable it to be turned on and off via a variable (on server reboot).

 

Please backup your databases and thoroughly test before putting live.

 

This will rewrite ownership on buildables if "Take plot item ownership" is enabled.

Link to comment
Share on other sites

i just added the new updated build vectors for snappro 1.4.1, and I haven't even launched the server yet to test it and saw this update.

Without getting too indepth it seem the balance between Snap Pro, Plot For Life, Plot Manager, and Build Vectors is a very delicate one. Any expectation of this breaking anything? I will give it a shot here in a few minutes after I verify I did the vectors installation correctly.

Link to comment
Share on other sites

compiles.sqf wrong paths

 

   if (DZE_modularBuild) then {
        player_build =                compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\modular_build.sqf";
        player_build_countNearby =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_countNearby.sqf";//no such file
        player_build_states =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_states.sqf";//no such file
        player_build_needNearby =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_needNearby.sqf";//no such file
        player_build_getConfig =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_getConfig.sqf";//no such file
        player_build_plotCheck =    compile preprocessFileLineNumbers "player_build_plotCheck\player_build_plotCheck.sqf";
        player_build_buildReq =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_buildReq.sqf";//no such file
        player_build_create =        compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build_create.sqf";
        player_build_controls =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_controls.sqf";//no such file
        player_build_publish =        compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build_publish.sqf";
        snap_build =                 compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\snap_build.sqf";
    } else {
        player_build =                compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build.sqf";
    };
Link to comment
Share on other sites

i just added the new updated build vectors for snappro 1.4.1, and I haven't even launched the server yet to test it and saw this update.

Without getting too indepth it seem the balance between Snap Pro, Plot For Life, Plot Manager, and Build Vectors is a very delicate one. Any expectation of this breaking anything? I will give it a shot here in a few minutes after I verify I did the vectors installation correctly.

 

This covers Snap Pro the merging for snap pro.  Plot manager should not be too difficult and build vectors I have not really looked at.  I would expect server monitor and player_build / snap_build to be the most affected files (although Snap Build is spread over the modular build files now). 

 

 

 

compiles.sqf wrong paths

 

   if (DZE_modularBuild) then {
        player_build =                compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\modular_build.sqf";
        player_build_countNearby =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_countNearby.sqf";//no such file
        player_build_states =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_states.sqf";//no such file
        player_build_needNearby =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_needNearby.sqf";//no such file
        player_build_getConfig =    compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_getConfig.sqf";//no such file
        player_build_plotCheck =    compile preprocessFileLineNumbers "player_build_plotCheck\player_build_plotCheck.sqf";
        player_build_buildReq =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_buildReq.sqf";//no such file
        player_build_create =        compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build_create.sqf";
        player_build_controls =        compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build_controls.sqf";//no such file
        player_build_publish =        compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build_publish.sqf";
        snap_build =                 compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\snap_build.sqf";
    } else {
        player_build =                compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build.sqf";
    };

 

Please read the install instructions (also available in the download package).

 

Take note of the section which says...

Snap Build Pro has been merged with the player build framework by Raymix for Epoch 1.0.5.2. Download both and extract them. Copy the files to a directory of your choice but exclude the following files which I have supplied already merged and linked in the compiles.sqf.

 

 - player_build.sqf

 - player_build_create.sqf

 - player_build_plotCheck.sqf

 - player_build_publish.sqf

 - snap_build.sqf

 - modular_build.sqf

 

Link the other files from Snap Build Pro and the modular player build framework in the compiles.sqf as needed (the lines should already be there, just search for DZE_modularBuild).

 

 

This means you have to put the paths in depending on where you put the other files for those mods which are not included in this release (as they are not my mods).

Link to comment
Share on other sites

Hi Rimblock,

Think you made a wise decision there, i stopped maintaining our 1.0.5.2 dev server a few weeks back when they kept pushing the deadline forward.

 

  • Are you still thinking about doing a customized plot pole management system like the Plot Management mod? I'd like all of our custom plot stuff in one place.
  • Is there like a 'latest' player_build.sqf file both you and Raymix maintain? I don't mind merging them myself, but i'd rather have some sort of official one so it's less likely to produce errors :P

Cheers,

 

f3cuk

Link to comment
Share on other sites

I have compared all files of v2.31 and now this:

if (count _inventory > 0) then {
if (_type in DZE_>
17:32:06   Error position: <_inventory > 0) then {
if (_type in DZE_>
17:32:06   Error Undefined variable in expression: _inventory
17:32:06 File mpmissions\DayZ_Epoch_11.Chernarus\custom\server\server_monitor.sqf, line 192
17:32:06 Error in expression < ["OEMPos", _pos, true];

What can i do to fix the problem?

Link to comment
Share on other sites

Hello,

iam a little confused about the install instructions and not sure, if version 1.0.5.2 is required to make plot4life 2.3.1 working.

also this part is unclear to me:

Snap Build Pro has been merged with the player build framework by Raymix for Epoch 1.0.5.2. Download both and extract them. Copy the files to a directory of your choice but exclude the following files which I have supplied already merged and linked in the compiles.sqf.

 

 - player_build.sqf

 - player_build_create.sqf

 - player_build_plotCheck.sqf

 - player_build_publish.sqf

 - snap_build.sqf

 - modular_build.sqf

 

Link the other files from Snap Build Pro and the modular player build framework in the compiles.sqf as needed (the lines should already be there, just search for DZE_modularBuild).

I ve got a fresh install of 1.0.5.1, no custom scripts, maybe someone is willing to share his knowledge on how to make those two scropts work together...

thanks in advance

greetings ryker

Link to comment
Share on other sites

Hi Rimblock,

Think you made a wise decision there, i stopped maintaining our 1.0.5.2 dev server a few weeks back when they kept pushing the deadline forward.

 

  • Are you still thinking about doing a customized plot pole management system like the Plot Management mod? I'd like all of our custom plot stuff in one place.
  • Is there like a 'latest' player_build.sqf file both you and Raymix maintain? I don't mind merging them myself, but i'd rather have some sort of official one so it's less likely to produce errors :P

Cheers,

 

f3cuk

 

Yeah, seeing the pull request sitting there for around 3 weeks after I worked long hours to get it done for the stated deadline is quite irritating.  The new features were written for the 1.0.5.2-RC version and so rather than re-engineer for 1.0.5.1 I was able to just pull the code out of the pull request and include a couple of extra code snippets from 1.0.5.2 to make it work with 1.0.5.1 so I could release here as a mod.

 

With a couple of plot management systems out there (based around the plot pole) it is actually quite easy to pull them together.  It sorta feels like putting a GUI on this is just re-inventing the wheel although I may look at merging one of their releases into this mod with a bit of tuning.

 

The code used in this mod was based on the latest release Raymix had uploaded to the Epoch base code.  Myself and Raymix are pretty well aligned on ideas and view and we are working together on bits and pieces so I am sure we will both be working to keep the merged files up to date where possible.

 

I have compared all files of v2.31 and now this:

if (count _inventory > 0) then {
if (_type in DZE_>
17:32:06   Error position: <_inventory > 0) then {
if (_type in DZE_>
17:32:06   Error Undefined variable in expression: _inventory
17:32:06 File mpmissions\DayZ_Epoch_11.Chernarus\custom\server\server_monitor.sqf, line 192
17:32:06 Error in expression < ["OEMPos", _pos, true];

What can i do to fix the problem?

 

Have you installed any other mods apart from this one ?. 

 

A Plot for Life does not touch the inventory side of things so it looks like another merged mod may be causing an issue or a typo.  I didn't see any errors for the final cut of code I released on a new build Epoch server.

 

 

So I'm guessing DiffMerging the latest files won't work. I think it's better if I start with a vanilla install.

 

Diffmerging may be ok although if you have precise base building and vectors and plot management gui all installed then it will be much trickier.

 

I would recommend a clean server build if possible, a period of testing and then putting live.

 

I have done some testing but would suggest you do your own, especially with the "Take plot ownership" function and doubly so if you have large bases on your map.

 

@Everyone,

 

Please provide feedback on how the 'Take Ownership' is working for you and how people are liking (or not) the plot boundary on/off with the lighted road cones.  I did want to do flashing lights but there seems to be a limit to the number of light sources visible as I could not get them all lit and flashing at the same time.

Link to comment
Share on other sites

Hello,

iam a little confused about the install instructions and not sure, if version 1.0.5.2 is required to make plot4life 2.3.1 working.

also this part is unclear to me:

Snap Build Pro has been merged with the player build framework by Raymix for Epoch 1.0.5.2. Download both and extract them. Copy the files to a directory of your choice but exclude the following files which I have supplied already merged and linked in the compiles.sqf.

 

 - player_build.sqf

 - player_build_create.sqf

 - player_build_plotCheck.sqf

 - player_build_publish.sqf

 - snap_build.sqf

 - modular_build.sqf

 

Link the other files from Snap Build Pro and the modular player build framework in the compiles.sqf as needed (the lines should already be there, just search for DZE_modularBuild).

I ve got a fresh install of 1.0.5.1, no custom scripts, maybe someone is willing to share his knowledge on how to make those two scropts work together...

thanks in advance

greetings ryker

 

Ok, this is kinda hard to make clear.

 

This update was built for 1.0.5.2 but as 1.0.5.2 has been delayed a number of times I have pulled it out and modified it so it will work with 1.0.5.1.  1.0.5.2 is not required.

 

I would suggest;

  • Install this mod.
  • Extract Snap Build Pro (in to its own 'custom' directory)
  • Do not use the Snap Build Pro compiles.sqf
  • Open the A Plot for Life v2.31 compiles.sqf
  • Search for " if (DZE_modularBuild) then {"
  • Change the following lines to point to the files that you extracted from the Snap Build Pro release (i.e the ones that with the path that starts "z/addons/".

player_build_countNearby

player_build_states

player_build_needNearby

player_build_getConfig

player_build_buildReq

player_build_controls

  • Leave the ones that have the paths that start "Custom\A_Plot_for_Life" as they are pointing to the files I have already merged.
  • Make the other Snap Build Pro amendments as listed in Raymixs instructions (for the .hpp file etc).
  • You should be good to go.

@everyone,

 

I have just spotted a typo (copy paste error) in the compiles.sqf

 

Line 109

player_build_plotCheck = compile preprocessFileLineNumbers "player_build_plotCheck\player_build_plotCheck.sqf";

should be

player_build_plotCheck = compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\Action\player_build_plotCheck.sqf";

I will amend the download and the file on GitHub later tonight.

Link to comment
Share on other sites

In 2.31 i noticed this in the server functions

};


_PUID = [_player] call FNC_GetPlayerUID;
diag_log format["SAFE %5: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), _PUID, _statusText];
};
};

But would _PUID work? Cause I don't believe it is used for 1.0.5.1
Link to comment
Share on other sites

 

In 2.31 i noticed this in the server functions

};

_PUID = [_player] call FNC_GetPlayerUID;

diag_log format["SAFE %5: ID:%1 UID:%2 BY %3(%4)", _objectID, _objectUID, (name _player), _PUID, _statusText];

};

};

But would _PUID work? Cause I don't believe it is used for 1.0.5.1

 

 

_PUID is just a variable.

 

If you mean "Does FNC_GetPlayerUID work as it is a function only available in 1.0.5.2" then the answer is yes as I have included it in the release (it is in the compiles.sqf).

Link to comment
Share on other sites

Hi all. I have rented a server 2 days ago and i'm a noob where it comes to installing addons. Despite that, i've managed to install zupa's single currency, EVD bike deploy and snap build pro on my server.

But since im not very good at this thing, i'd like to ask if someone could post a video tutorial to integrate this mod with snap pro, since the instructions on the 2.3.1 zip file are kind of vague for my level of knowledge.

 

I apreciate in advance to any replies to this plea for help :)

Link to comment
Share on other sites

 

player_build_countNearby

player_build_states

player_build_needNearby

player_build_getConfig

player_build_buildReq

player_build_controls

 

Think im just tired 3am :( Cant find these files anywhere. Looked in Sanp Pro, P4L and nothing. I know where to change the paths but need the files first lol

Link to comment
Share on other sites

Hey Rim, just out of curiosity why do you have us place the server-side modifications in the server main directory instead of MPMISSIONS\(map)\custom\....

with the previous version I had just relocated and changed the paths myself, but now you have more in there and I'd rather not start breaking things.

 

These files are usually in the dayz_server.pbo and have no need to be sent to the clients (which is what happens to the files in the MPMissions folders).  This is partly to cut down on space but also for better security.

 

The server side files can either be in a server side folder sitting inside the ARMA II OA folder (name it anything you want, I just chose custom) or you can just put the files back int he dayz_server.pbo using something like PBO Manager.  Just make sure wherever you put them, you change the paths in the relevent files to point to the new location (inside or outside the pbo).

 

 

How exactly would i test to see if this is working..?

 

With A Plot for Life turned off (default state)

Place a plot pole, build an object, die, go back to the plot pole and build another object: Not able to build = Sucess.

Now try with removing items, upgrading and downgrading items, placing, unlocking, locking packing safes, same with tents, sqme with locked doors.

 

With A Plot for Life turned on (via the DZE_APlotforLife = true; variable in the init.sqf).

Place a plot pole, build an object, die, go back to the plot pole and build another object: Able to build = Sucess.

Now try with removing items, upgrading and downgrading items, placing, unlocking, locking packing safes, same with tents, sqme with locked doors.

 

With Take item ownership from the plot pole turned on (via DZE_PlotOwnership = true; set in the init.sqf).

1. Have someone else you are not friendly to build a plot pole and a few items (floors, walls etc).

2. Go and remove the plot pole and build your own plot pole.

3. Take ownership of items from the plot pole options.

4. Remove an item (should take 3 cycles if you own it for most items or 6 if you don't own it).

5. Check the DB to make sure the last number in the worldspace field is your SteamID for those items.

 

There is lots of other testing you can do but those are the basic indicators that it is installed ok.

 

Think im just tired 3am :( Cant find these files anywhere. Looked in Sanp Pro, P4L and nothing. I know where to change the paths but need the files first lol

 

I had presumed that Raymix had merged the building framework and his snap build pro together but this may be wrong.  The files are available on the Epoch Github (https://github.com/vbawol/DayZ-Epoch/tree/master/SQF/dayz_code/actions) . 

 

The original thread on this is but I may just take the files and include them in my package after checking with Raymix to make sure he has no objections.  The files from the Git are the ones I tested with and work fine with Epoch 1.0.5.1 as well.

Link to comment
Share on other sites

These files are usually in the dayz_server.pbo and have no need to be sent to the clients (which is what happens to the files in the MPMissions folders).  This is partly to cut down on space but also for better security.

 

The server side files can either be in a server side folder sitting inside the ARMA II OA folder (name it anything you want, I just chose custom) or you can just put the files back int he dayz_server.pbo using something like PBO Manager.  Just make sure wherever you put them, you change the paths in the relevent files to point to the new location (inside or outside the pbo).

 

Ok, thanks for the simple explanation. Now I created a squeaky clean new server to test your latest build and I got all rambunctious and decided to merge EVERYTHING into either the dayz_server.pbo or dayz_code.pbo and changed all appropriate file references. I was wondering if you could tell me whether or not there any performance gains or losses from me doing this.

Link to comment
Share on other sites

Ok, thanks for the simple explanation. Now I created a squeaky clean new server to test your latest build and I got all rambunctious and decided to merge EVERYTHING into either the dayz_server.pbo or dayz_code.pbo and changed all appropriate file references. I was wondering if you could tell me whether or not there any performance gains or losses from me doing this.

 

I would stay away from merging in to the dayz_code.pbo as this is a client side file and will now not match the Epoch signitures which means that you will have to set verify signitures = 0 in the config file which then means any client can have their own code in the dayz_code.pbo and run it in your game.

 

Keep all the client side stuff in the mpmissions folders.

 

I personally keep all my server side stuff in the servers "custom' folder as it gives me easy access to modify if needed and it is not sent to the client.  You will have to try it out or wait for someone else to advise on whether changing the dayz_server.pbo also causes the same problem with keys.

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...