Jump to content

[RELEASE] Build Snapping - Extended v1.6 (Updated 02/20/2014)


OtterNas3

Recommended Posts

Server is hosted on nitrado.net ... in my rpt log i can see that infiSTAR.de antihack is loading. I've tried searching for AHconfig.sqf on the server FTP, but i didnt found it ANYWHERE.

 

Also got gotcha antihack, but i dont think it is interfering with the player actions,

 

EDIT:

Alright... turns out there is a folder on the ftp thats called @AH that contains the AHconfig.sqf. Problem is that folder wasnt accessible through ftp, was hidden for some reason. BUT with some magic tricks, i've managed to get access to it with some workarounds, got into it, downloaded the file, changed it and with another workaround managed to upload it to a hidden folder heh. Will see if it works now and update the post accordingly.

 

edit2:

 

Alright i got it fixed. works for players now!

Link to comment
Share on other sites

A question towards anyone from the Epoch crew: will this be implemented into the next epoch? I can be patient and wait for it if so, otherwise i'll have to get this installed as soon as possible (and i would like to say, this feature should definately be part of epoch!)

This is welcome to be submitted to the github (https://github.com/vbawol/DayZ-Epoch) via a pull request if this author wants to add it to epoch. 

 

Link to comment
Share on other sites

Server is hosted on nitrado.net ... in my rpt log i can see that infiSTAR.de antihack is loading. I've tried searching for AHconfig.sqf on the server FTP, but i didnt found it ANYWHERE.

 

Also got gotcha antihack, but i dont think it is interfering with the player actions,

 

EDIT:

Alright... turns out there is a folder on the ftp thats called @AH that contains the AHconfig.sqf. Problem is that folder wasnt accessible through ftp, was hidden for some reason. BUT with some magic tricks, i've managed to get access to it with some workarounds, got into it, downloaded the file, changed it and with another workaround managed to upload it to a hidden folder heh. Will see if it works now and update the post accordingly.

 

edit2:

 

Alright i got it fixed. works for players now!

Glad you found out yourself ^^

Maybe wanna share the info?

Another player would appreciate it maybe someday/sometime

 

 

Works great and everyone loves it, thanks!  Only real problem is that you can't flip objects...even when not snapping.  (q to flip)

 

Any fix?

 

Thanks

Objects should be rotateable when you not "snapped" them to something, it does for me and since you the first one with that behaviour, think there is a problem in one of your files?

If you need help, gimme a shout, PM or mail.

 

This is welcome to be submitted to the github (https://github.com/vbawol/DayZ-Epoch) via a pull request if this author wants to add it to epoch. 

 

Hey vbawol,

 

sure cool idea to submit it to the github, just to mention the idea itself and first code was from Maca, so he should get named for credits of this also :)

I have not much experience with github, i'm Systemadministrator, not even close to a programmer and necer really used github that much.

A question here and there, sometimes a hint for a fix that comes in mind, but, you know ^^

I need informations howto pull request, never did.

Also i would like to work on it again a bit before, to make the rotating workingwhile snapped and maybe make the snapping of Walls to Floors and vice versa, working.

 

Cheers for the offer vbawol!

Link to comment
Share on other sites

Works great and everyone loves it, thanks!  Only real problem is that you can't flip objects...even when not snapping.  (q to flip)

 

Any fix?

 

Thanks

BTW: correct me if im wrong but isnt the Q key in the momentary epoch setup for building, the Key to move a object upwards?

Link to comment
Share on other sites

Q and E are the rotate keys. I had the problem myself due to my using ESDF for movement instead of WASD. Rather than changing the key for everyone via file changes I discovered that if you bind a key to Custom Controls action 18 it will flip just fine. I presume the other direction is either 17 or 19.

Link to comment
Share on other sites

I downloaded this updated version and well lets just say things didn't work out as planned. I have a custom folder with a compiles for vehicle locking (lift and tow).

So i renamed my files to buildingsnap and added the lines to the compiles as suggested. However when i try and get it to work i see the option to snap and when i click it nothing happens. 

 

I also seen something about the infistar anti hack needing something added to it. I did try that and still the same. 

 

So i went back to the original and now players can't build, myself included. 

 

Any help would be greatfully recieved.

Link to comment
Share on other sites

Glad you found out yourself ^^

Maybe wanna share the info?

Another player would appreciate it maybe someday/sometime

 

Sure I will!

 

This is what i did since connecting to nitrado.net ftp access doesnt show the @AH folder, i had to find a workaround (I hope it's not against nitrado rules)

 

1.Access the ftp through a browser: for example ftp://msxxxxxxxxx.nitrado.net/ and log in with username and password

2.Since the folder @AH is still not visible, I've managed to access it manually using ftp://msxxxxxxxxxx.nitrado.net/dayz/@AH/

3. Now i can download the AHconfig.sqf BUT i cannot upload it back after editing it

4. I've found a chrome extension named FTP Free that allowed me to gain ftp access to the same website (@AH still not visible here)

5. After putting the address, username and password into the extension, i got into the ftp of my server. Next to the extensions name theres a "popout" text that will open it in a new tab - use that.

6. Once you have that done,, you can easily figure out the name of the folder that you need to input in the address bar. For example http://dpsw.info/ftp.php?f=list&newpath=%2Fdayz%2F%40AH

7. Once in that folder, you still cannot see it's contents... BUT!!!! You can upload files to that folder. So just have your changed AHconfig.sqf file uploaded there and THATS IT! It should be working now.

 

I hope that explanation was in depth - enough.

If in doubt, let me know, and i will try to help (nitrado only really)

 

Kind regards

Kramarz

Link to comment
Share on other sites

Good morning, 

 

For some reason the script works but nothing is able to snap. I get the Error "Snapping to this object is not available with this item"

 

Iv tried wood and metal floor?

 

Thanks in advance

 

Rick

Looks like you missed a point of the install instructions:

(3)
Open your description.ext in the root of your mission folder and add this at the bottom:

#include "custom\snap_build\points.hpp"

Link to comment
Share on other sites

Rolling changelog v1.4

 

Finished things:

  • Objects will snap with the direction the object has before the snap - Adds ability to turn a Wall with a Garage as example to open to the other side
  • Objects of same type will snap on the top and the bottom - Adds the abilty to build a  straight Wall on more levels

Unfinished things:

  • Floor to Wall snapping - This is very hard to do cause the many different combinations of objects size - Not sure if i find a way to get a acceptable compromise to position the Wall on the Floor (left, right bound or in the middle of the Floor/Wall)

 

I will try to make the unfinished part today, and if theres no way i like, i will release v1.4 without it, sorry...

Snapping the Wall in the middle would be okay? Looks ugly in my opinion ^^

Suggestions are welcome.

Link to comment
Share on other sites

Thanks for the reply. I have added it in to the discriptioin file. here is what it looks like:

	class controls
	{
		class Title1 : RscLoadingText
		{
			text = "$STR_LOADING"; // "Loading" text in the middle of the screen
		};
		class CA_Progress : RscProgress // progress bar, has to have idc 104
		{
			idc = 104;
			type = 8; // CT_PROGRESS
			style = 0; // ST_SINGLE
			texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
		};
		class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
		{
			idc = 103;
		};
		class Name2: RscText // the text on the top-left
		{
			idc = 101;
			x = 0.05;
			y = 0.029412;
			w = 0.9;
			h = 0.04902;
			text = "";
			sizeEx = 0.05;
			colorText[] = {0.543,0.5742,0.4102,1.0};
		};
	};
	
#include "custom\snap_build\points.hpp"
};

 Do i need a space before the };?

Link to comment
Share on other sites

Thanks for the reply. I have added it in to the discriptioin file. here is what it looks like:

	class controls
	{
		class Title1 : RscLoadingText
		{
			text = "$STR_LOADING"; // "Loading" text in the middle of the screen
		};
		class CA_Progress : RscProgress // progress bar, has to have idc 104
		{
			idc = 104;
			type = 8; // CT_PROGRESS
			style = 0; // ST_SINGLE
			texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
		};
		class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
		{
			idc = 103;
		};
		class Name2: RscText // the text on the top-left
		{
			idc = 101;
			x = 0.05;
			y = 0.029412;
			w = 0.9;
			h = 0.04902;
			text = "";
			sizeEx = 0.05;
			colorText[] = {0.543,0.5742,0.4102,1.0};
		};
	};
	
#include "custom\snap_build\points.hpp"
};

 Do i need a space before the };?

"at the bottom"

 

post the whole file please, cause it dont know where that closing bracket comes from

Link to comment
Share on other sites

respawn = "BASE";
respawndelay = 5;
onLoadMission= "DayZ Epoch Chernarus";
OnLoadIntro = "Welcome to DayZ Epoch Chernarus";
OnLoadIntroTime = False;
OnLoadMissionTime = False;
disabledAI = true;
disableChannels[]={0,2,6};
enableItemsDropping = 0;

briefing = 0;
debriefing = 0;

onPauseScript = "";
loadScreen = "\z\addons\dayz_code\gui\dayz_logo_ca.paa";

class Header
{
 gameType = COOP;            //DM, Team, Coop, ...
 minPlayers = 1;             //min # of players the mission supports
 maxPlayers = 100;            //Max # of players the mission supports
};

aiKills = 1;
diagRadio = 1;
diagHit = 1;

class RscText
{
	type = 0;
	idc = -1;
	x = 0;
	y = 0;
	h = 0.037;
	w = 0.3;
	style = 0x100; 
	font = Zeppelin32;
	SizeEx = 0.03921;
	colorText[] = {1,1,1,1};
	colorBackground[] = {0, 0, 0, 0};
	linespacing = 1;
};
class RscPicture
{
	access=0;
	type=0;
	idc=-1;
	style=48;
	colorBackground[]={0,0,0,0};
	colorText[]={1,1,1,1};
	font="TahomaB";
	sizeEx=0;
	lineSpacing=0;
	text="";
};
class RscLoadingText : RscText
{
	style = 2;
	x = 0.323532;
	y = 0.666672;
	w = 0.352944;
	h = 0.039216;
	sizeEx = 0.03921;
	colorText[] = {0.543,0.5742,0.4102,1.0};
};
class RscProgress
{
	x = 0.344;
	y = 0.619;
	w = 0.313726;
	h = 0.0261438;
	texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
	colorFrame[] = {0,0,0,0};
	colorBar[] = {1,1,1,1};
};
class RscProgressNotFreeze
{
	idc = -1;
	type = 45;
	style = 0;
	x = 0.022059;
	y = 0.911772;
	w = 0.029412;
	h = 0.039216;
	texture = "#(argb,8,8,3)color(0,0,0,0)";
};
//
// the loading screen itself
//
class DayZ_loadingScreen
{ 
	idd = -1;
	duration = 10e10;
	fadein = 0;
	fadeout = 0;
	name = "loading screen";
	class controlsBackground
	{
		class blackBG : RscText
		{
			x = safezoneX;
			y = safezoneY;
			w = safezoneW;
			h = safezoneH;
			text = "";
			colorText[] = {0,0,0,0};
			colorBackground[] = {0,0,0,1};
		};
		/*
		class nicePic : RscPicture
		{
			style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
			x = safezoneX + safezoneW/2 - 0.25;
			y = safezoneY + safezoneH/2 - 0.2;
			w = 0.5;
			h = 0.4;
			text = "img\nicePic.paa";
		};
		*/
	};
	class controls
	{
		class Title1 : RscLoadingText
		{
			text = "$STR_LOADING"; // "Loading" text in the middle of the screen
		};
		class CA_Progress : RscProgress // progress bar, has to have idc 104
		{
			idc = 104;
			type = 8; // CT_PROGRESS
			style = 0; // ST_SINGLE
			texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
		};
		class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
		{
			idc = 103;
		};
		class Name2: RscText // the text on the top-left
		{
			idc = 101;
			x = 0.05;
			y = 0.029412;
			w = 0.9;
			h = 0.04902;
			text = "";
			sizeEx = 0.05;
			colorText[] = {0.543,0.5742,0.4102,1.0};
		};
	};
	
#include "custom\snap_build\points.hpp"
};

Thanks for your help. I always thought you put it before the last closing bracket :)

Link to comment
Share on other sites

respawn = "BASE";
respawndelay = 5;
onLoadMission= "DayZ Epoch Chernarus";
OnLoadIntro = "Welcome to DayZ Epoch Chernarus";
OnLoadIntroTime = False;
OnLoadMissionTime = False;
disabledAI = true;
disableChannels[]={0,2,6};
enableItemsDropping = 0;

briefing = 0;
debriefing = 0;

onPauseScript = "";
loadScreen = "\z\addons\dayz_code\gui\dayz_logo_ca.paa";

class Header
{
 gameType = COOP;            //DM, Team, Coop, ...
 minPlayers = 1;             //min # of players the mission supports
 maxPlayers = 100;            //Max # of players the mission supports
};

aiKills = 1;
diagRadio = 1;
diagHit = 1;

class RscText
{
	type = 0;
	idc = -1;
	x = 0;
	y = 0;
	h = 0.037;
	w = 0.3;
	style = 0x100; 
	font = Zeppelin32;
	SizeEx = 0.03921;
	colorText[] = {1,1,1,1};
	colorBackground[] = {0, 0, 0, 0};
	linespacing = 1;
};
class RscPicture
{
	access=0;
	type=0;
	idc=-1;
	style=48;
	colorBackground[]={0,0,0,0};
	colorText[]={1,1,1,1};
	font="TahomaB";
	sizeEx=0;
	lineSpacing=0;
	text="";
};
class RscLoadingText : RscText
{
	style = 2;
	x = 0.323532;
	y = 0.666672;
	w = 0.352944;
	h = 0.039216;
	sizeEx = 0.03921;
	colorText[] = {0.543,0.5742,0.4102,1.0};
};
class RscProgress
{
	x = 0.344;
	y = 0.619;
	w = 0.313726;
	h = 0.0261438;
	texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
	colorFrame[] = {0,0,0,0};
	colorBar[] = {1,1,1,1};
};
class RscProgressNotFreeze
{
	idc = -1;
	type = 45;
	style = 0;
	x = 0.022059;
	y = 0.911772;
	w = 0.029412;
	h = 0.039216;
	texture = "#(argb,8,8,3)color(0,0,0,0)";
};
//
// the loading screen itself
//
class DayZ_loadingScreen
{ 
	idd = -1;
	duration = 10e10;
	fadein = 0;
	fadeout = 0;
	name = "loading screen";
	class controlsBackground
	{
		class blackBG : RscText
		{
			x = safezoneX;
			y = safezoneY;
			w = safezoneW;
			h = safezoneH;
			text = "";
			colorText[] = {0,0,0,0};
			colorBackground[] = {0,0,0,1};
		};
		/*
		class nicePic : RscPicture
		{
			style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
			x = safezoneX + safezoneW/2 - 0.25;
			y = safezoneY + safezoneH/2 - 0.2;
			w = 0.5;
			h = 0.4;
			text = "img\nicePic.paa";
		};
		*/
	};
	class controls
	{
		class Title1 : RscLoadingText
		{
			text = "$STR_LOADING"; // "Loading" text in the middle of the screen
		};
		class CA_Progress : RscProgress // progress bar, has to have idc 104
		{
			idc = 104;
			type = 8; // CT_PROGRESS
			style = 0; // ST_SINGLE
			texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
		};
		class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
		{
			idc = 103;
		};
		class Name2: RscText // the text on the top-left
		{
			idc = 101;
			x = 0.05;
			y = 0.029412;
			w = 0.9;
			h = 0.04902;
			text = "";
			sizeEx = 0.05;
			colorText[] = {0.543,0.5742,0.4102,1.0};
		};
	};
	
#include "custom\snap_build\points.hpp"
};

Thanks for your help. I always thought you put it before the last closing bracket :)

 

This would be the right way:

respawn = "BASE";
respawndelay = 5;
onLoadMission= "DayZ Epoch Chernarus";
OnLoadIntro = "Welcome to DayZ Epoch Chernarus";
OnLoadIntroTime = False;
OnLoadMissionTime = False;
disabledAI = true;
disableChannels[]={0,2,6};
enableItemsDropping = 0;

briefing = 0;
debriefing = 0;

onPauseScript = "";
loadScreen = "\z\addons\dayz_code\gui\dayz_logo_ca.paa";

class Header
{
 gameType = COOP;            //DM, Team, Coop, ...
 minPlayers = 1;             //min # of players the mission supports
 maxPlayers = 100;            //Max # of players the mission supports
};

aiKills = 1;
diagRadio = 1;
diagHit = 1;

class RscText
{
	type = 0;
	idc = -1;
	x = 0;
	y = 0;
	h = 0.037;
	w = 0.3;
	style = 0x100; 
	font = Zeppelin32;
	SizeEx = 0.03921;
	colorText[] = {1,1,1,1};
	colorBackground[] = {0, 0, 0, 0};
	linespacing = 1;
};
class RscPicture
{
	access=0;
	type=0;
	idc=-1;
	style=48;
	colorBackground[]={0,0,0,0};
	colorText[]={1,1,1,1};
	font="TahomaB";
	sizeEx=0;
	lineSpacing=0;
	text="";
};
class RscLoadingText : RscText
{
	style = 2;
	x = 0.323532;
	y = 0.666672;
	w = 0.352944;
	h = 0.039216;
	sizeEx = 0.03921;
	colorText[] = {0.543,0.5742,0.4102,1.0};
};
class RscProgress
{
	x = 0.344;
	y = 0.619;
	w = 0.313726;
	h = 0.0261438;
	texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
	colorFrame[] = {0,0,0,0};
	colorBar[] = {1,1,1,1};
};
class RscProgressNotFreeze
{
	idc = -1;
	type = 45;
	style = 0;
	x = 0.022059;
	y = 0.911772;
	w = 0.029412;
	h = 0.039216;
	texture = "#(argb,8,8,3)color(0,0,0,0)";
};
//
// the loading screen itself
//
class DayZ_loadingScreen
{ 
	idd = -1;
	duration = 10e10;
	fadein = 0;
	fadeout = 0;
	name = "loading screen";
	class controlsBackground
	{
		class blackBG : RscText
		{
			x = safezoneX;
			y = safezoneY;
			w = safezoneW;
			h = safezoneH;
			text = "";
			colorText[] = {0,0,0,0};
			colorBackground[] = {0,0,0,1};
		};
		/*
		class nicePic : RscPicture
		{
			style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
			x = safezoneX + safezoneW/2 - 0.25;
			y = safezoneY + safezoneH/2 - 0.2;
			w = 0.5;
			h = 0.4;
			text = "img\nicePic.paa";
		};
		*/
	};
	class controls
	{
		class Title1 : RscLoadingText
		{
			text = "$STR_LOADING"; // "Loading" text in the middle of the screen
		};
		class CA_Progress : RscProgress // progress bar, has to have idc 104
		{
			idc = 104;
			type = 8; // CT_PROGRESS
			style = 0; // ST_SINGLE
			texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
		};
		class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
		{
			idc = 103;
		};
		class Name2: RscText // the text on the top-left
		{
			idc = 101;
			x = 0.05;
			y = 0.029412;
			w = 0.9;
			h = 0.04902;
			text = "";
			sizeEx = 0.05;
			colorText[] = {0.543,0.5742,0.4102,1.0};
		};
	};
};
#include "custom\snap_build\points.hpp"

Link to comment
Share on other sites

Regarding snapping the floor to the walls..

would there be any way to give a second option to snap the floor to the closest corner of the wall and then after that piece is built to combat the different sizes etc you would then use the default option that would connect the floors together ignoring the walls.

Link to comment
Share on other sites

You would need to get the exact (x,y,z) position for EACH corner of EACH object for EVERY combination possibility and thats a thing i definately will not do ^^

It costs me alrdy hours of hours of hours to get the needed snapping offsets for the side/side - top/bottom snapping, believe me thats not a lovely job :)

 

And then you would need to check if floor or wall is bigger, doing snapping math, and then again for 0 or 180 degree turned object, and that for every possible floor/wall combination.

 

Alrdy tried all day to find a easy solution but no luck yet, i am not a programmer at all, no spock and believe me no math professor ^^

Snapping the middle points of wall/floor is the only thing that could be made in time and dont need to restart your testserver like 500 times.

 

And i think awol would like to release the 1.0.4 when its ready and not when i am ready :)

 

BTW: If you have a free minute later awol i would like to talk to you regarding the github thingy!

will be on again in 3 or 4 hours.

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