Sazarac Posted July 10, 2014 Report Share Posted July 10, 2014 I'm not implying it isn't working, I can see from the posts it is, which is why I need detailed instructions because I can't get it to work, and that is very frustrating. I am either doing something wrong, or missing something. I had it working fine with 1.0.4.2. and as far as I can see, the instructions haven't changed. I went and downloaded the file from github yesterday (this one - https://github.com/ADK-DAYZMOD-EPOCH/Build-Snapping---Extended) and did exactly what I did with 1.0.4.2. But now I only get the "snapping not available for this object" message. I have Epoch Admin tools and DZAI installed. So what am I missing? Thanks. Potatoman411 1 Link to comment Share on other sites More sharing options...
Tyler Posted July 10, 2014 Report Share Posted July 10, 2014 For those who want to change the folder name to something other than "Custom" be sure to change the following lines: Compiles.sqf player_build = compile preprocessFileLineNumbers "custom\snap_build\player_build.sqf"; player_buildControls = compile preprocessFileLineNumbers "custom\snap_build\player_buildControls.sqf"; snap_object = compile preprocessFileLineNumbers "custom\snap_build\snap_object.sqf"; Player_Build.sqf - Line 239 s_building_snapping = player addAction ["<t color=""#0000ff"">Toggle Snapping</t>", "custom\snap_build\player_toggleSnapping.sqf",_classname, 3, true, false, "",""]; Description.ext #include "custom\snap_build\points.hpp" Init.sqf call compile preprocessFileLineNumbers "custom\snap_build\compiles.sqf"; Link to comment Share on other sites More sharing options...
DeliciousAce Posted July 11, 2014 Report Share Posted July 11, 2014 Thanks OtterNas3 for this awesome script! The players already love it and are happy to can snap more stuff. Thanks alot! Link to comment Share on other sites More sharing options...
BaobobMiller Posted July 14, 2014 Report Share Posted July 14, 2014 Has anyone had more luck than I at combining this with Plot pole for life on 1.0.5.x? Link to comment Share on other sites More sharing options...
Alaskath13 Posted July 15, 2014 Report Share Posted July 15, 2014 Had tweaked it so more building items can be snapped now Link to comment Share on other sites More sharing options...
redcloud78 Posted July 21, 2014 Report Share Posted July 21, 2014 Hey otter would it be pretty hard to add various bridges and roads for admin use into this script? Link to comment Share on other sites More sharing options...
ClontarfX Posted July 23, 2014 Report Share Posted July 23, 2014 Getting a strange issue, not sure if it's this script or 1.0.5.1, but metal floors that were previous snapped together are no longer, and are now placed near eachother instead. This means previously perfectly even floors for use in helipads are no longer perfectly flat, meaning helicopters, planes bounce when landing. Anyone else seen this? Link to comment Share on other sites More sharing options...
Havoc302 Posted July 25, 2014 Report Share Posted July 25, 2014 ClontarfX yeah I've seen that forever though, it's how the DB stores it's coords, it seems to round or something so at the next restart everything will have moved. Link to comment Share on other sites More sharing options...
Barra81 Posted July 30, 2014 Report Share Posted July 30, 2014 For those who wanna use Otternases awesome release with Raymix snap_pro, I have posted a merged player_build.sqf at the snap_pro thread post #252 epochmod.com/forum/index.php?/topic/13886-121-snap-building-pro/page-13#entry110143 Link to comment Share on other sites More sharing options...
Tuxman Posted July 31, 2014 Report Share Posted July 31, 2014 Hey guys. I thought I would post a video explaining how to install this script. I found this on Youtube. Link to comment Share on other sites More sharing options...
PcKoPaT Posted August 11, 2014 Report Share Posted August 11, 2014 thx. Link to comment Share on other sites More sharing options...
lostandcrazy34 Posted August 21, 2014 Report Share Posted August 21, 2014 for those who want to still use snap build and want to have plot pole for life 2.2 i have reworked the player_build.sqf file.. just copy and past this in and snap build and plot pole for life will work together. I use it on my server without any issues. /* DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected]. */ /* Build Snapping - Extended v1.6.1 Idea and first code: Maca Reworked: OtterNas3 01/11/2014 DizzY DizzAsteR 8/21/2014 */ private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_abort","_isNear","_need","_objHupDiff","_needNear","_vehicle","_inVehicle","_requireplot","_objHDiff","_isLandFireDZ","_isTankTrap","_ownerPUID", "_playerUID"]; if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_40") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; // disallow building if too many objects are found within 30m if((count ((getPosATL player) nearObjects ["All",30])) >= DZE_BuildingLimit) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_41"), "PLAIN DOWN"];}; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _isWater = dayz_isSwimming; _cancel = false; _reason = ""; _canBuildOnPlot = false; _vehicle = vehicle player; _inVehicle = (_vehicle != player); _playerUID = getPlayerUID player; DZE_Q = false; DZE_Z = false; DZE_Q_alt = false; DZE_Z_alt = false; DZE_Q_ctrl = false; DZE_Z_ctrl = false; DZE_5 = false; DZE_4 = false; DZE_6 = false; DZE_cancelBuilding = false; call gear_ui_init; closeDialog 1; if (_isWater) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"];}; if (_inVehicle) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_42"), "PLAIN DOWN"];}; if (_onLadder) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_21", "PLAIN DOWN"];}; if (player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_43"), "PLAIN DOWN"];}; _item = _this; // Need Near Requirements _abort = false; _distance = 3; _reason = ""; _needNear = getArray (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "neednearby"); { switch(_x) do{ case "fire": { _isNear = {inflamed _x} count (getPosATL player nearObjects _distance); if(_isNear == 0) then { _abort = true; _reason = "fire"; }; }; case "workshop": { _isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; _reason = "workshop"; }; }; case "fueltank": { _isNear = count (nearestObjects [player, dayz_fuelsources, _distance]); if(_isNear == 0) then { _abort = true; _reason = "fuel tank"; _distance = 30; }; }; }; } forEach _needNear; if(_abort) exitWith { cutText [format[(localize "str_epoch_player_135"),_reason,_distance], "PLAIN DOWN"]; DZE_ActionInProgress = false; }; _classname = getText (configFile >> "CfgMagazines" >> _item >> "ItemActions" >> "Build" >> "create"); _classnametmp = _classname; _require = getArray (configFile >> "cfgMagazines" >> _this >> "ItemActions" >> "Build" >> "require"); _text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName"); _ghost = getText (configFile >> "CfgVehicles" >> _classname >> "ghostpreview"); _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _classname >> "lockable"); }; _requireplot = DZE_requireplot; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "requireplot")) then { _requireplot = getNumber(configFile >> "CfgVehicles" >> _classname >> "requireplot"); }; _isAllowedUnderGround = 1; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "nounderground")) then { _isAllowedUnderGround = getNumber(configFile >> "CfgVehicles" >> _classname >> "nounderground"); }; _offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset"); if((count _offset) <= 0) then { _offset = [0,1.5,0]; }; _isPole = (_classname == "Plastic_Pole_EP1_DZ"); _isLandFireDZ = (_classname == "Land_Fire_DZ"); _distance = DZE_PlotPole select 0; _needText = localize "str_epoch_player_246"; if(_isPole) then { _distance = DZE_PlotPole select 1; }; // check for near plot _findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance]; _findNearestPole = []; { if (alive _x) then { _findNearestPole set [(count _findNearestPole),_x]; }; } foreach _findNearestPoles; _IsNearPlot = count (_findNearestPole); // If item is plot pole and another one exists within 45m if(_isPole and _IsNearPlot > 0) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_44") , "PLAIN DOWN"]; }; if(_IsNearPlot == 0) then { // Allow building of plot if(_requireplot == 0 or _isLandFireDZ) then { _canBuildOnPlot = true; }; } else { // Since there are plots nearby we check for ownership and then for friend status // check nearby plots ownership and then for friend status _nearestPole = _findNearestPole select 0; // Find owner _ownerID = _nearestPole getVariable ["ownerPUID","0"]; diag_log format["Player_build start: [PlayerUID = %1] [OwnerID = %2]", _playerUID, _ownerID]; // check if friendly to owner if(_playerUID == _ownerID) then { //Keep ownership // owner can build anything within his plot except other plots diag_log text "Player is owner"; if(!_isPole) then { _canBuildOnPlot = true; }; } else { // disallow building plot if(!_isPole) then { _friendlies = player getVariable ["friendlyTo",[]]; // check if friendly to owner if(_ownerID in _friendlies) then { _canBuildOnPlot = true; }; }; }; }; // _message if(!_canBuildOnPlot) exitWith { DZE_ActionInProgress = false; cutText [format[(localize "STR_EPOCH_PLAYER_135"),_needText,_distance] , "PLAIN DOWN"]; }; _missing = ""; _hasrequireditem = true; { _hastoolweapon = _x in weapons player; if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); } } forEach _require; _hasbuilditem = _this in magazines player; if (!_hasbuilditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]; }; if (!_hasrequireditem) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_137"),_missing] , "PLAIN DOWN"]; }; if (_hasrequireditem) then { _location = [0,0,0]; _isOk = true; // get inital players position _location1 = getPosATL player; _dir = getDir player; /* Commented out cause GHOST preview does not work with snapping! // if ghost preview available use that instead if (_ghost != "") then { _classname = _ghost; }; */ _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _object setDir _dir; _object attachTo [player,_offset]; _position = getPosATL _object; cutText [(localize "str_epoch_player_45"), "PLAIN DOWN"]; player allowDamage false; SnappingOffset = _offset; SnappingDir = 0; SnappingSpotMarkers = []; SnappingEnabled = false; SnappedOffsetZ = 0; SnappingResetPos = false; if (isClass (missionConfigFile >> "SnapPoints" >> _classname)) then { s_building_snapping = player addAction ["<t color=""#0000ff"">Toggle Snapping</t>", "custom\snap_build\player_toggleSnapping.sqf",_classname, 3, true, false, "",""]; }; _snapper = [_object, _classname] spawn snap_object; _key_monitor = [] spawn player_buildControls ; while {_isOk} do { sleep 1; _location2 = getPosATL player; if(DZE_5) exitWith { _isOk = false; detach _object; _dir = getDir _object; _position = getPosATL _object; }; if(_location1 distance _location2 > 10) exitWith { _isOk = false; _cancel = true; _reason = "You've moved to far away from where you started building (within 10 meters)"; detach _object; }; if(((SnappingOffset select 2) > 10) or ((SnappingOffset select 2) < -10)) exitWith { _isOk = false; _cancel = true; _reason = "Cannot move up or down more than 10 meters"; detach _object; }; if (player getVariable["combattimeout", 0] >= time) exitWith { _isOk = false; _cancel = true; _reason = (localize "str_epoch_player_43"); detach _object; }; if (DZE_cancelBuilding) exitWith { _isOk = false; _cancel = true; _reason = "Cancelled building."; detach _object; }; }; terminate _snapper; terminate _key_monitor; player removeAction s_building_snapping; player allowDamage true; //No building on roads unless toggled if (!DZE_BuildOnRoads) then { if (isOnRoad _position) then { _cancel = true; _reason = "Cannot build on a road."; }; }; // No building in trader zones if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; }; if(!placevault) then { _cancel = true; _reason = "Cannot build in a city."; }; if(!_cancel) then { _classname = _classnametmp; _location = _position; if((_isAllowedUnderGround == 0) and ((_location select 2) < 0)) then { _location set [2,0]; }; _object setPosATL _location; cutText [format[(localize "str_epoch_player_138"),_text], "PLAIN DOWN"]; _limit = 3; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; _isOk = true; _proceed = false; _counter = 0; while {_isOk} do { [10,10] call dayz_HungerThirst; player playActionNow "Medic"; _dis=20; _sfx = "repair"; [player,_sfx,0,false,_dis] call dayz_zombieSpeak; [player,_dis,true,(getPosATL player)] spawn player_alertZombies; r_interrupt = false; _animState = animationState player; r_doLoop = true; _started = false; _finished = false; while {r_doLoop} do { _animState = animationState player; _isMedic = ["medic",_animState] call fnc_inString; if (_isMedic) then { _started = true; }; if (_started and !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt or (player getVariable["combattimeout", 0] >= time)) then { r_doLoop = false; }; if (DZE_cancelBuilding) exitWith { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if(!_finished) exitWith { _isOk = false; _proceed = false; }; if(_finished) then { _counter = _counter + 1; }; cutText [format[(localize "str_epoch_player_139"),_text, _counter,_limit], "PLAIN DOWN"]; if(_counter == _limit) exitWith { _isOk = false; _proceed = true; }; }; if (_proceed) then { _num_removed = ([player,_item] call BIS_fnc_invRemove); if(_num_removed == 1) then { cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; if (_isPole) then { [] spawn player_plotPreview; }; _object setVariable ["OEMPos",_location,true]; if(_lockable > 1) then { _combinationDisplay = ""; switch (_lockable) do { case 2: { // 2 lockbox _combination_1 = (floor(random 3)) + 100; // 100=red,101=green,102=blue _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; if (_combination_1 == 100) then { _combination_1_Display = "Red"; }; if (_combination_1 == 101) then { _combination_1_Display = "Green"; }; if (_combination_1 == 102) then { _combination_1_Display = "Blue"; }; _combinationDisplay = format["%1%2%3",_combination_1_Display,_combination_2,_combination_3]; }; case 3: { // 3 combolock _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination = format["%1%2%3",_combination_1,_combination_2,_combination_3]; dayz_combination = _combination; _combinationDisplay = _combination; }; case 4: { // 4 safe _combination_1 = floor(random 10); _combination_2 = floor(random 10); _combination_3 = floor(random 10); _combination_4 = floor(random 10); _combination = format["%1%2%3%4",_combination_1,_combination_2,_combination_3,_combination_4]; dayz_combination = _combination; _combinationDisplay = _combination; }; }; _object setVariable ["CharacterID",_combination,true]; _object setVariable ["ownerPUID",_playerUID,true]; PVDZE_obj_Publish = [_combination,_object,[_dir,_location,_playerUID],_classname]; publicVariableServer "PVDZE_obj_Publish"; cutText [format[(localize "str_epoch_player_140"),_combinationDisplay,_text], "PLAIN DOWN", 5]; } else { _object setVariable ["CharacterID",dayz_characterID,true]; _object setVariable ["ownerPUID",_playerUID,true]; // fire? if(_object isKindOf "Land_Fire_DZ") then { _object spawn player_fireMonitor; } else { PVDZE_obj_Publish = [dayz_characterID,_object,[_dir,_location,_playerUID],_classname]; publicVariableServer "PVDZE_obj_Publish"; }; }; } else { deleteVehicle _object; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; deleteVehicle _object; cutText [(localize "str_epoch_player_46") , "PLAIN DOWN"]; }; } else { deleteVehicle _object; cutText [format[(localize "str_epoch_player_47"),_text,_reason], "PLAIN DOWN"]; }; }; DZE_ActionInProgress = false; Link to comment Share on other sites More sharing options...
Cinjun Posted August 21, 2014 Report Share Posted August 21, 2014 for those who want to still use snap build and want to have plot pole for life 2.2 i have reworked the player_build.sqf file.. just copy and past this in and snap build and plot pole for life will work together. I use it on my server without any issues. Thanks for this, but my scroll wheel finger hates you now. :P Link to comment Share on other sites More sharing options...
lostandcrazy34 Posted August 21, 2014 Report Share Posted August 21, 2014 lol sorry i forgot to spoiler it.. Link to comment Share on other sites More sharing options...
meanbeandk Posted August 23, 2014 Report Share Posted August 23, 2014 when i use this script nothing saves to the database ? my fault ;) Link to comment Share on other sites More sharing options...
Havoc302 Posted August 28, 2014 Report Share Posted August 28, 2014 Is there any way to disable the limitation on pushing things into the ground? My safes and lockboxes are ending up a good foot off the ground. Link to comment Share on other sites More sharing options...
Havoc302 Posted August 31, 2014 Report Share Posted August 31, 2014 Nobody knows? Link to comment Share on other sites More sharing options...
Havoc302 Posted September 13, 2014 Report Share Posted September 13, 2014 Bumping this to see if anyone knows how to disable that feature. Link to comment Share on other sites More sharing options...
lostandcrazy34 Posted September 27, 2014 Report Share Posted September 27, 2014 when i use this script nothing saves to the database ? my fault ;) I know i used a update from infistar that messed up my buildables and things were not saving to the database. I quickly told chris from infistar and he got it fixed up pretty fast.. his latest update everything seems to be working perfectly fine. Is there any way to disable the limitation on pushing things into the ground? My safes and lockboxes are ending up a good foot off the ground. im not sure what you are asking here. I haven't had anyone with these issues. does the page up and page down not work for you or something? This might be due to a interactions.sqf file. have you messed with that at all? I Have tried multiple times with the snapping pro and cant seem to get items to snap that is why I modified this file for the old snapping and it works perfectly fine. If you have any issues I will be happy to post up all the sqf files that i use for it. Link to comment Share on other sites More sharing options...
Kivuli Posted September 28, 2014 Report Share Posted September 28, 2014 There is a line in the player_build along the lines of checking for if isAllowedUnderground = 0. Comment that check out or delete it and you can place any object underground again. Link to comment Share on other sites More sharing options...
lostandcrazy34 Posted September 28, 2014 Report Share Posted September 28, 2014 weird havent had anyone with the issue of it not letting them build walls and stuff into the ground. I figured out how to get one step build to work with the snap build if people are interested. find _limit = 3 and change it to _limit = 1 _limit = 3; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; so it looks like _limit = 1; if(isNumber (configFile >> "CfgVehicles" >> _classname >> "constructioncount")) then { _limit = getNumber(configFile >> "CfgVehicles" >> _classname >> "constructioncount"); }; then building will take only one step to build walls, and floors. Link to comment Share on other sites More sharing options...
Haliakala Posted October 5, 2014 Report Share Posted October 5, 2014 this is one of the best mods of the game.... it works and i only have one issue... as soon as i start the build i can walk away to cancel the item will be build and it will remain in my inventory... first noticed it with the plot pole it would set two poles the first one is where it is when you first select place object... then another will appear directly above it when the setpos raises it up to ground level making two versions of the plotpole... one that is yours and another that is not linked to anyone... and again if you walk away from it just after you start placing it it will cancell the building but leave a plot pole in the ground and one in your inventory... and the placed one is not linked to you i can only asume its making dupes of the building parts as well but ones so perfectly inline i can not see the second Link to comment Share on other sites More sharing options...
lostandcrazy34 Posted October 7, 2014 Report Share Posted October 7, 2014 are you using a older version of infistar? Link to comment Share on other sites More sharing options...
Haliakala Posted October 13, 2014 Report Share Posted October 13, 2014 are you using a older version of infistar? nope just battleeye and bec.... i removed the snapping for now and the problem went away still trying to sort this out Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now