Jump to content

[1.4.1] Snap Building PRO


Recommended Posts

I got Vectors working with Snap Build Pro 1.4 to the point that you can tilt the tile, but when you start to build it flips back to it's original position. I'm just kind of learning as I go, so I'm not sure where that bit of code is. If anyone could help, that'd be awesome. 

Link to comment
Share on other sites

Instead of having the options as a scroll menu, is it possible to create something like the trader menu and then configure it to work with the snapping?

Dialogs? kind of yeah.... tons of work required. Not sure it's even worth it.

Link to comment
Share on other sites

Any one having problems upgrading cinder walls over water? upgrade works fine on land but the cinder disappears as soon as you try to upgrade over water?

Well spotted bud, never occured to check it myself. Upgrade still uses vanilla code, not a part of snap pro. I will see what I can do.

Link to comment
Share on other sites

Well spotted bud, never occured to check it myself. Upgrade still uses vanilla code, not a part of snap pro. I will see what I can do.

 

Yeah, Epoch only uses ATL to spawn objects from the DB, so the final position when saving to the DB must be in ATL format. I just checked the code and saw this: 

_position = [_object] call FNC_GetPos;

I guess just before it saves to the DB check if it's water then convert to ATL using ASLtoATL. I wondered why all the walls I placed disappeared after restart haha.

Link to comment
Share on other sites

There is a problem and  I'm not sure whether to comment about it on P4L or snap... possibly here as it has the latest updated player_build.sqf :D

 

player_build.sqf uses player position + radius to count building objects.

 

_pos = [player] call FNC_GetPos;
_cnt = count (_pos nearObjects ["ALL",DZE_checkNearbyRadius]);
 
==========
 
maintain_area.sqf uses plot pole position + radius to count building objects.
 
_target = cursorTarget;
_objectClasses = DZE_maintainClasses;
_range = DZE_maintainRange;
_objects = nearestObjects [_target, _objectClasses, _range];
 
===========
 
I have a modified nearbyRadius / maintainRange of 60m and a building limit of 250 objects.  I wrote a little script to add "check object count" on the plot pole using the same method maintaining uses.
 
Instead of ALL for the player count I used DZE_maintainClasses before... either that or people moving plot poles allowed players to have bases WAY over the limit.  Now with using ALL players will check the plot and it will say 225/250 objects yet they can't build.
 
From what I understand this is because the building is using player position and the plot count uses the plot as a center... I'm not sure of the extra objects it's counting yet but I'm looking into that.... anyone else run into this?

 

 

==================

 

Ok ALL counts safes and other storage items not in maintain classes... might be able to add that to the count so at least people know why.   People are telling me "ALL" counts flies,bees,pollen and other such things.

Link to comment
Share on other sites

Yeah, Epoch only uses ATL to spawn objects from the DB, so the final position when saving to the DB must be in ATL format. I just checked the code and saw this: 

_position = [_object] call FNC_GetPos;

I guess just before it saves to the DB check if it's water then convert to ATL using ASLtoATL. I wondered why all the walls I placed disappeared after restart haha.

FNC_GetPos does the conversion automatically, love that function.

Link to comment
Share on other sites

I fixed the problem raymix and made a pull request on the GitHub, it's a small 1 liner.

Can't find it (maybe not up yet?) can you give me a link please?

Found it in network graph, you only pushed to your own fork, mate. Do a pull request please :D

 

edit: updated my pull for awol's repo, too. Thanks Mikeeeyy

Link to comment
Share on other sites

Can't find it (maybe not up yet?) can you give me a link please?

Found it in network graph, you only pushed to your own fork, mate. Do a pull request please :D

 

edit: updated my pull for awol's repo, too. Thanks Mikeeeyy

 

Sorry, still trying to wrap my head around GitHub lol. I think I did it now.

Link to comment
Share on other sites

FNC_GetPos does the conversion automatically, love that function.

 

Yeah the function does the conversion but it returns either ATL or ASL based dependant if the position is in water, so if it is in water you still need to manually convert ASL to ATL for the final position when saving to the DB cause Epoch uses ATL to spawn the objects back in, in the server_monitor.

Link to comment
Share on other sites

Sorry, still trying to wrap my head around GitHub lol. I think I did it now.

Yup, got it, thanks. Sent you PM with few github tricks I recently learned.

 

Update: I'll change versioning when I'm little less drunk, until then - anyone who wants waterbases to stay after restart, simply update player_build.sqf file. Thanks

Link to comment
Share on other sites

hi there, little suggestion, would it be possible to set the build controls onto the numpad or something, if you are not playing with standard configs you are a little bit screwed.

 

for example:

im running on esdf, no try that q/e thingy or drop and pick up with f and moving to the right position at the sametime ... jeah good look xD!

 

or probably an alternate version like DZE_snap_pro_keyconfig = 0/1 for different set of keys ...

Link to comment
Share on other sites

Haven't read through the forums to see about this but you can't build after being higher than a certain altitude. I'm using an older version..before 1,4 and he didn't address it in the video.

 

it's somewhere around two-three hundred altitude.

should work with 1.4 

Snap points are now attached directly to an object instead. There's been ton of changes and player altitude (used in 1.3.1) was removed from check. Keep in mind there's no compatibility between other mods using player_build yet. Haven't got time to look at it (also nobody actually asked to do it)

Link to comment
Share on other sites

FYI:

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";                //Compile regular functions
call compile preprocessFileLineNumbers "custom\compiles.sqf";                             //Compile custom compiles

I found this medthod did not work for me!

 

Added the 3 lines to my compiles.sqf and commented out the following at around line 100 or so  =)
 

    //player_build =                compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";

Works like a charm...Thank you raymix =)

Link to comment
Share on other sites

Fully can you explain that a bit more?

 

Tried to use the; 

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";                //Compile regular functions
call compile preprocessFileLineNumbers "custom\compiles.sqf";                             //Compile custom compiles

but it ended up breaking my zupa banking system. Any help appreciated!

Link to comment
Share on other sites

Did a bit of testing, having no problems since Mikey's commit. Upgrading walls works fine, too and persists trough restart, without any need to change objectswap code. Am I missing something or?

 

 

Fully can you explain that a bit more?

 

Tried to use the; 

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";                //Compile regular functions
call compile preprocessFileLineNumbers "custom\compiles.sqf";                             //Compile custom compiles

but it ended up breaking my zupa banking system. Any help appreciated!

Think of it as overwriting functions or variables. For example:

_apples = 2;
_apples = 50;
_apples = 4;
End result will return that _apples contains variable 4. Why? Because we are overwriting all 3 variables in order of - from top to bottom.
 
Same happens with your functions:
 
function_Apples = {
_apples = 1;
};

function_Bananas = {
_bananas = 2;
};

// now you install somebody else's script and blindly follow the guide and add this below:

_function_Apples = {
_apples = 1000;
};


This means you will be receiving 2 bananas and 1000 apples. First function that said to use 1 apple has been overwritten and not being used anymore. In fact it is still loaded together with server, which means there is completely unnecessary extra work done. 

 

Conclusion: Sadly Epoch is currently limited. player_build is a single large and most popular function out there that pretty much defines what this mod is. A lot of addons likes to modify this function, which means it can only work with that particular mod, unless addon authors works together to merge part of their scripts so same function can be used in both addons. Here's the funny part - there's shit ton of addons using this function, which makes it almost impossible to make compatible together. And if one of addons (like snap pro) gets an update, all other addons will stop working leaving admin with a choice between these addons.

How to fight this? Epoch 1052 will come with a modular player_build, which will NOT fix the problem, but it will mitigate it a little bit. Another method is in progress - simply having SBP and P4L integrated inside game by default, this means they are a single project now and will be maintained together. More addons that reuse player_build like Vector building might be integrated once fully tested, only leaving handful of smaller addons with compatibility issues.

 

As for Zupa's scripts, I am running my server as close to vanilla as possible, so i've never had a chance to even look at it. But if he reuses player_build for banking (for whatever reason lol) then you will need to use a diffmerge to bash both functions together (player_build.sqf file).

Link to comment
Share on other sites

Does PryMary's Merge for plot4life still work with 1.4?

No, 1.4 had major update that replaces a lot of code to allow for water bases. I'll look into the issue as soon as I have time to do so. Currently started a full time internship in IT, so might be a while.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Advertisement
×
×
  • Create New...