-
Posts
132 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Articles
Posts posted by striker
-
-
I can't seem to find "} forEach _hitpoints;" in my server_monitor.sqf
Try
} count _hitpoints;
-
Hey 0verHeaT,
You need to do a little fix.
Change this
if (((typeName(_worldspace select 2)) == "STRING") and ((typeName(_worldspace select 3)) == "STRING")) then { _colour = _worldspace select 2; _colour2 = _worldspace select 3; if (_colour != "0") then { _object setVariable ["Colour",_colour,true]; _clrinit = format ["#(argb,8,8,3)color(%1)",_colour]; _object setVehicleInit "this setObjectTexture [0,"+str _clrinit+"];"; }; if (_colour2 != "0") then { _object setVariable ["Colour2",_colour2,true]; _clrinit2 = format ["#(argb,8,8,3)color(%1)",_colour2]; _object setVehicleInit "this setObjectTexture [1,"+str _clrinit2+"];"; }; };
To
if(count _worldspace >= 4) then{ if (((typeName(_worldspace select 2)) == "STRING") and ((typeName(_worldspace select 3)) == "STRING")) then { _colour = _worldspace select 2; _colour2 = _worldspace select 3; if (_colour != "0") then { _object setVariable ["Colour",_colour,true]; _clrinit = format ["#(argb,8,8,3)color(%1)",_colour]; _object setVehicleInit "this setObjectTexture [0,"+str _clrinit+"];"; }; if (_colour2 != "0") then { _object setVariable ["Colour2",_colour2,true]; _clrinit2 = format ["#(argb,8,8,3)color(%1)",_colour2]; _object setVehicleInit "this setObjectTexture [1,"+str _clrinit2+"];"; }; }; };
This prevents the Error Zero divisor from being spammed into the RPT. The worldspace array is a default two elements. Without this check, you are checking out of bounds of the array causing the error.
Anyway, LOVE THE SCRIPT :)
striker
P.S. If you add a third color, change >= 4 to >= 5
-
I just installed Plot For Life v2.33 with Snap Pro v1.4.1
now I would like to add your vectors and admin build. however RimBlock has updated his version 8 hours ago, maybe the modular player build. whatever that is
Turn on Snap Build Pro and the modular player build framework.DZE_modularBuild = true;
anyways. Im kinda afraid to add your great addition to it now that his files has changed.
could you take alook at his new version and see if there is anything we need to add to yours...
I have your vector on my overpoch napf server and it works great. my player loves it..(yes player, singular)
however I dont use plot4life so this is not an issue.
I am starting another server and of course your vector is an essential addon.
I have files working on his new version, however, it will be useless until epoch 1.0.5.2. Modular build will be in that update.
striker
-
Hey ABLGDayZ,
I love what you have done with the menus, however, there are some issues I want to address.
- When a user goes into a sub category, they lose the option to toggle snap build (which could annoy some people).
- When the user selects a option, it brings them back to the same menu, just not the option they selected (prevents users from being able to use the option rapidly).
If you could find a way to keep the snap build toggle option on each of the sub menus and keep the option the user selected, I will definitely add it in! :)
striker
P.S. addAction has a option hideOnUse which if set to false will keep the option the user used on the screen.
-
Removed this and suddenly yay, it works, I don't have admin build.
while {_isOk && !_isBuildAdmin} do {[10,10] call dayz_HungerThirst;player playActionNow "Medic";Hey,
But you do have AdminBuild using my P4L files ;)
If you are using P4L files and did not include
WG_adminBuild = ["","","",""]; //Fill with player UID's
that is likely what caused the error (Sorry for not making that clear in the instructions).
So, if you don't want to use admin build just put
WG_adminBuild = []; //Fill with player UID's
in the init.sqf by the other variables.
If you did include that array, i'm not sure what would be causing that error.
striker
-
That error seems to be caused by Plot Management. I came to this conclusion because it uses the inventory as a string and not array (to some extent) which would cause that error (if not reconfigured correctly). If you are using Plot Management, go to this link (https://github.com/DevZupa/PlotManagement/blob/master/P4L_Epoch.md) and follow step 5, 7, & 8. (link is for P4L, I'm sure you could find the non P4L instructions)Hi all.
I can see from other posts that others have the same problem but there has not been any replies that I could find with a working solution.
My problem is this message in the console after implementing this script:
Error in expression 9:22:53 Error position: 9:22:53 Error select: Type String, expected Array,Config entry9:22:53 File z\addons\dayz_server\system\server_monitor.sqf, line 256
The server stops loading at this point and cannot be joined.
My server host is vilayer.com and I have successfully added other scripts so I know the file structure of this host pretty well.
First I tried to merge a few scripts including the newest Build Vectors (updated for 1.4.1) and this was the only error in the console.
Next I removed all scripts on the server by reinstalling the folder containing the server.pbo and mission.pbo files (vilayer has their own function to do this).
Then I tried to install the newest Build Vectors including plot for life, admin build and precise basebuilding. Same error.
Then I reinstalled the folders again and installed Build Vectors including plot for life and admin build without precise basebuilding. Same error.
Then I tried without plot for life and admin build - with and without precise basebuilding. Still the same error.
I am getting better at scripting fast but still not very good and I simply can't figure out what the problem is.
Of course the console says "Type String, expected Array" but I have no idea what to do with this.
When reading through the posts about this script I also saw that some people have posted their working server_monitor.sqf. And by using diffmerge I can conclude that my file is identical.
Pretty frustrating.
Earlier I actually had this script working on my server along with other scripts. I was not so long ago and I think the Build Vectors then was updated for Snap 1.4 and not 1.4.1. I am not sure if I remember the versions correctly, but I can conclude, when comparing the older working script's server_monitor.sqf with this new one, that there have been serveral changes made.
Sadly changes that apperently breaks the script on my server.
I would absolute LOVE for someone to help me fix the newest script but alternatively I could also use the script version before the newest. But I do not know where to find that now.
Thank you so much for reading all this and apologies for my language. My native tongue is not English.
That is the only logical reason such an error would occur. My script does not deal with the inventory field.
striker
P.S. This is assuming your using Plot Management
-
And how about WITH Admin build but without plot4life? :P Testing mine now but ..eh pretty sure i f*cked up somewhere :D
I'll work on that version when I get time, shouldn't take long.
Striker
-
I see there are 2 versions
Without Plotpole and Admin or
With Plotpole and Admin
Is there one thats just for people with Plotpole but without admin build?
Admin Build is light weight, so there is no point in doing two versions. Just leave the admin array empty.
Striker
-
aFuzzybuny,
This script should not of affected vehicles at all. My suggestion is to restore your database and files with your backup. Then try again if you wish too on a clean copy of the dayz epoch mod.
Striker
-
Strange how it works without the Script might be Plotpole manger
I know plotpole manager uses the inventory array, so that is likely the issue you are having.
Striker
-
Peterbeer,
That issue does not appear to be related to vectors as my script does not deal with the inventory array.
Striker
-
Adding this to my init.sqf does nothing for the items in the "no rotate" list. They still are able to be rotated.
The biggest issue right now is player rotating ladders horizontally and glitching through cinder walls...
DZE_noRotate = ["ItemVault","ItemWoodStairs","ItemLockbox","ItemWoodStairsSupport","ItemWoodLadder","30m_plot_kit","workbench_kit"]; //Objects that cannot be rotated. Ex: DZE_noRotate = ["VaultStorageLocked"]
I also tried with the "built" classnames in the database and it didn't work (i.e. "VaultStorageLocked")
In these two sections in player_build.sqf:
if !(_classname in DZE_noRotate) then{ s_player_setVectorsReset = player addaction ["Reset","custom\snap_pro\player_vectorChange.sqf","reset"]; s_player_setVectorsForward = player addaction ["Pitch Forward","custom\snap_pro\player_vectorChange.sqf","forward"]; s_player_setVectorsBack = player addaction ["Pitch Back","custom\snap_pro\player_vectorChange.sqf","back"]; s_player_setVectorsLeft = player addaction ["Bank Left","custom\snap_pro\player_vectorChange.sqf","left"]; s_player_setVectorsRight = player addaction ["Bank Right","custom\snap_pro\player_vectorChange.sqf","right"]; s_player_setVectors1 = player addaction ["Increment by 1 degree","custom\snap_pro\player_vectorChange.sqf","1"]; s_player_setVectors5 = player addaction ["Increment by 5 degrees","custom\snap_pro\player_vectorChange.sqf","5"]; s_player_setVectors45 = player addaction ["Increment by 45 degrees","custom\snap_pro\player_vectorChange.sqf","45"]; s_player_setVectors90 = player addaction ["Increment by 90 degrees","custom\snap_pro\player_vectorChange.sqf","90"]; };
if !(_classname in DZE_noRotate) then{ player removeAction s_player_setVectorsReset; player removeAction s_player_setVectorsForward; player removeAction s_player_setVectorsBack; player removeAction s_player_setVectorsLeft; player removeAction s_player_setVectorsRight; player removeAction s_player_setVectors1; player removeAction s_player_setVectors5; player removeAction s_player_setVectors45; player removeAction s_player_setVectors90; };
Change _classname to _classnametmp. (Use the built classnames)
The issue is it is checking the ghost preview classname to the no rotate array.
Slight error I over looked!
Sorry!
striker
-
striker could you please look at my files :(
Here is a video on what's wrong : Here
Here are my files that relate to this script : Here
Logs : Here
Just in case if you missed it when I press upgrade it then keeps saying Already in progress when I do anything else
I know I have different Directory Scripts\Base_Snapping but there pointing to the right direction
When I put your files into my server, it said it could not find the fn_selfActions.sqf script, If your using your own, make sure that it points to the correct files in PlotForLifev2 folder. Use my fn_selfActions.sqf for reference.
striker
-
Cinder wall then it been rotated / forwarded when you upgrade to full wall goes straight up
This suppose to happen ?
Sounds like a issue with player_upgrade.sqf. Did you diff merge or do you have another copy of it running somewhere?
-
Is it possible to deactivate the ghost preview or will it break the addon??
My Dudes wanna see the object with normal structures.....
DECO1919,
Comment out these two sections if you don't want ghost preview
First:
// if ghost preview available use that instead if (_ghost != "") then { _classname = _ghost; };
Second:
_buildOffset = [0,0,0]; _vUp = _vector select 1; switch (_classname) do { case "MetalFloor_DZ": { _buildOffset = [(_vUp select 0) * .148, (_vUp select 1) * .148,0]; }; }; _location = [ (_location select 0) - (_buildOffset select 0), (_location select 1) - (_buildOffset select 1), (_location select 2) - (_buildOffset select 2) ];
-
.@Striker,
could you reproduce the problem, which i described, with spinning for 180 degrees when pressing F-Key?
I didn't have the time to test your new version so far. Will do it this evening or tomorrow.
ABLGDayZ,
I was able to reproduce the issue, I am working on a fix as we speak.
striker
-
Working great!!!
Awesome!
striker
-
the normal one (i hope - i download the first version you uploaded and later the second download spawnt =) ) - i restored to othe old version... thats sad =( i was so happy about the update.
i discoverd that all walls, floors etc disapears after the update
boneau,
Did you follow all the instructions? You didn't skip any correct? Also, did you use all my files? You didn't diff merge any of them?
striker
-
That fixed all problems!!!! :wub: :lol: :D
I love this addon thanks a lot Dude !!!
Your welcome! Glad you like it! :)
-
Hey,
get this error message:
Error count: Undefined variable in expression: _buildingqueue
2:24:16 File z\addons\dayz_server\system\server_monitor.sqf, line 337
Normal setup without admin / P4L
Here is my complete server_monitor.sqf, try it and see if it works correctly.
private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); _hiveLoaded = false; waitUntil{initialized}; //means all the functions are now defined diag_log "HIVE: Starting"; waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player) // Custom Configs if(isnil "MaxVehicleLimit") then { MaxVehicleLimit = 50; }; if(isnil "MaxDynamicDebris") then { MaxDynamicDebris = 100; }; if(isnil "MaxAmmoBoxes") then { MaxAmmoBoxes = 3; }; if(isnil "MaxMineVeins") then { MaxMineVeins = 50; }; // Custon Configs End if (isServer && isNil "sm_done") then { serverVehicleCounter = []; _hiveResponse = []; for "_i" from 1 to 5 do { diag_log "HIVE: trying to get objects"; _key = format["CHILD:302:%1:", dayZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance already initialized") then { _superkey = profileNamespace getVariable "SUPERKEY"; _shutdown = format["CHILD:400:%1:", _superkey]; _res = _shutdown call server_hiveReadWrite; diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res)); } else { diag_log ("HIVE: connection problem... HiveExt response:"+str(_hiveResponse)); }; _hiveResponse = ["",0]; } else { diag_log ("HIVE: found "+str(_hiveResponse select 1)+" objects" ); _i = 99; // break }; }; _BuildingQueue = []; _objectQueue = []; if ((_hiveResponse select 0) == "ObjectStreamStart") then { // save superkey profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)]; _hiveLoaded = true; diag_log ("HIVE: Commence Object Streaming..."); _key = format["CHILD:302:%1:", dayZ_instance]; _objectCount = _hiveResponse select 1; _bQty = 0; _vQty = 0; for "_i" from 1 to _objectCount do { _hiveResponse = _key call server_hiveReadWriteLarge; //diag_log (format["HIVE dbg %1 %2", typeName _hiveResponse, _hiveResponse]); if ((_hiveResponse select 2) isKindOf "ModularItems") then { _BuildingQueue set [_bQty,_hiveResponse]; _bQty = _bQty + 1; } else { _objectQueue set [_vQty,_hiveResponse]; _vQty = _vQty + 1; }; }; diag_log ("HIVE: got " + str(_bQty) + " Epoch Objects and " + str(_vQty) + " Vehicles"); }; // # NOW SPAWN OBJECTS # _totalvehicles = 0; { _idKey = _x select 1; _type = _x select 2; _ownerID = _x select 3; _worldspace = _x select 4; _intentory = _x select 5; _hitPoints = _x select 6; _fuel = _x select 7; _damage = _x select 8; _dir = 0; _pos = [0,0,0]; _wsDone = false; if (count _worldspace >= 2) then { if ((typeName (_worldspace select 0)) == "STRING") then { _worldspace set [0, call compile (_worldspace select 0)]; _worldspace set [1, call compile (_worldspace select 1)]; }; _dir = _worldspace select 0; if (count (_worldspace select 1) == 3) then { _pos = _worldspace select 1; _wsDone = true; } }; if (!_wsDone) then { if (count _worldspace >= 1) then { _dir = _worldspace select 0; }; _pos = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos; if (count _pos < 3) then { _pos = [_pos select 0,_pos select 1,0]; }; diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos)); }; _vector = [[0,0,0],[0,0,0]]; _vecExists = false; _ownerPUID = "0"; if (count _worldspace >= 3) then{ if(count _worldspace == 3) then{ if(typename (_worldspace select 2) == "STRING")then{ _ownerPUID = _worldspace select 2; }else{ if(typename (_worldspace select 2) == "ARRAY")then{ _vector = _worldspace select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }; }else{ //Was not 3 elements, so check if 4 or more if(count _worldspace == 4) then{ if(typename (_worldspace select 3) == "STRING")then{ _ownerPUID = _worldspace select 3; }else{ if(typename (_worldspace select 2) == "STRING")then{ _ownerPUID = _worldspace select 2; }; }; if(typename (_worldspace select 2) == "ARRAY")then{ _vector = _worldspace select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }else{ if(typename (_worldspace select 3) == "ARRAY")then{ _vector = _worldspace select 3; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }; }else{ //More than 3 or 4 elements found //Might add a search for the vector, ownerPUID will equal 0 }; }; }; // diag_log format["Server_monitor: [ObjectID = %1] [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID]; if (_damage < 1) then { //diag_log format["OBJ: %1 - %2", _idKey,_type]; //Create it _object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"]; _object setVariable ["lastUpdate",time]; _object setVariable ["ObjectID", _idKey, true]; _object setVariable ["OwnerPUID", _ownerPUID, true]; _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _type >> "lockable"); }; // fix for leading zero issues on safe codes after restart if (_lockable == 4) then { _codeCount = (count (toArray _ownerID)); if(_codeCount == 3) then { _ownerID = format["0%1", _ownerID]; }; if(_codeCount == 2) then { _ownerID = format["00%1", _ownerID]; }; if(_codeCount == 1) then { _ownerID = format["000%1", _ownerID]; }; }; if (_lockable == 3) then { _codeCount = (count (toArray _ownerID)); if(_codeCount == 2) then { _ownerID = format["0%1", _ownerID]; }; if(_codeCount == 1) then { _ownerID = format["00%1", _ownerID]; }; }; _object setVariable ["CharacterID", _ownerID, true]; clearWeaponCargoGlobal _object; clearMagazineCargoGlobal _object; // _object setVehicleAmmo DZE_vehicleAmmo; _object setdir _dir; if(_vecExists)then{ _object setVectorDirAndUp _vector; }; _object setposATL _pos; _object setDamage _damage; if ((typeOf _object) in dayz_allowedObjects) then { if (DZE_GodModeBase) then { _object addEventHandler ["HandleDamage", {false}]; } else { _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; }; // Test disabling simulation server side on buildables only. _object enableSimulation false; // used for inplace upgrades && lock/unlock of safe _object setVariable ["OEMPos", _pos, true]; }; if (count _intentory > 0) then { if (_type in DZE_LockedStorage) then { // Fill variables with loot _object setVariable ["WeaponCargo", (_intentory select 0),true]; _object setVariable ["MagazineCargo", (_intentory select 1),true]; _object setVariable ["BackpackCargo", (_intentory select 2),true]; } else { //Add weapons _objWpnTypes = (_intentory select 0) select 0; _objWpnQty = (_intentory select 0) select 1; _countr = 0; { if(_x in (DZE_REPLACE_WEAPONS select 0)) then { _x = (DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x); }; _isOK = isClass(configFile >> "CfgWeapons" >> _x); if (_isOK) then { _object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; //Add Magazines _objWpnTypes = (_intentory select 1) select 0; _objWpnQty = (_intentory select 1) select 1; _countr = 0; { if (_x == "BoltSteel") then { _x = "WoodenArrow" }; // Convert BoltSteel to WoodenArrow if (_x == "ItemTent") then { _x = "ItemTentOld" }; _isOK = isClass(configFile >> "CfgMagazines" >> _x); if (_isOK) then { _object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; //Add Backpacks _objWpnTypes = (_intentory select 2) select 0; _objWpnQty = (_intentory select 2) select 1; _countr = 0; { _isOK = isClass(configFile >> "CfgVehicles" >> _x); if (_isOK) then { _object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; }; }; if (_object isKindOf "AllVehicles") then { { _selection = _x select 0; _dam = _x select 1; if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8}; [_object,_selection,_dam] call object_setFixServer; } count _hitpoints; _object setFuel _fuel; if (!((typeOf _object) in dayz_allowedObjects)) then { //_object setvelocity [0,0,1]; _object call fnc_veh_ResetEH; if(_ownerID != "0" && !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } count (_BuildingQueue + _objectQueue); // # END SPAWN OBJECTS # // preload server traders menu data into cache if !(DZE_ConfigTrader) then { { // get tids _traderData = call compile format["menu_%1;",_x]; if(!isNil "_traderData") then { { _traderid = _x select 1; _retrader = []; _key = format["CHILD:399:%1:",_traderid]; _data = "HiveEXT" callExtension _key; //diag_log "HIVE: Request sent"; //Process result _result = call compile format ["%1",_data]; _status = _result select 0; if (_status == "ObjectStreamStart") then { _val = _result select 1; //Stream Objects //diag_log ("HIVE: Commence Menu Streaming..."); call compile format["ServerTcache_%1 = [];",_traderid]; for "_i" from 1 to _val do { _data = "HiveEXT" callExtension _key; _result = call compile format ["%1",_data]; call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result]; _retrader set [count _retrader,_result]; }; //diag_log ("HIVE: Streamed " + str(_val) + " objects"); }; } forEach (_traderData select 0); }; } forEach serverTraders; }; if (_hiveLoaded) then { // spawn_vehicles _vehLimit = MaxVehicleLimit - _totalvehicles; if(_vehLimit > 0) then { diag_log ("HIVE: Spawning # of Vehicles: " + str(_vehLimit)); for "_x" from 1 to _vehLimit do { [] spawn spawn_vehicles; }; } else { diag_log "HIVE: Vehicle Spawn limit reached!"; }; }; // spawn_roadblocks diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris)); for "_x" from 1 to MaxDynamicDebris do { [] spawn spawn_roadblocks; }; // spawn_ammosupply at server start 1% of roadblocks diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes)); for "_x" from 1 to MaxAmmoBoxes do { [] spawn spawn_ammosupply; }; // call spawning mining veins diag_log ("HIVE: Spawning # of Veins: " + str(MaxMineVeins)); for "_x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapArea") then { dayz_MapArea = 10000; }; if(isnil "HeliCrashArea") then { HeliCrashArea = dayz_MapArea / 2; }; if(isnil "OldHeliCrash") then { OldHeliCrash = false; }; // [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire] if(OldHeliCrash) then { _nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', HeliCrashArea, true, false] spawn server_spawnCrashSite; }; if (isDedicated) then { // Epoch Events _id = [] spawn server_spawnEvents; // server cleanup [] spawn { private ["_id"]; sleep 200; //Sleep Lootcleanup, don't need directly cleanup on startup + fix some performance issues on serverstart waitUntil {!isNil "server_spawnCleanAnimals"}; _id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm"; }; // spawn debug box _debugMarkerPosition = getMarkerPos "respawn_west"; _debugMarkerPosition = [(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1]; _vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"]; _vehicle_0 setPos _debugMarkerPosition; _vehicle_0 setVariable ["ObjectID","1",true]; // max number of spawn markers if(isnil "spawnMarkerCount") then { spawnMarkerCount = 10; }; actualSpawnMarkerCount = 0; // count valid spawn marker positions for "_i" from 0 to spawnMarkerCount do { if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then { actualSpawnMarkerCount = actualSpawnMarkerCount + 1; } else { // exit since we did not find any further markers _i = spawnMarkerCount + 99; }; }; diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount]; endLoadingScreen; }; allowConnection = true; sm_done = true; publicVariable "sm_done"; };
-
I updated my server with this awesome script!
but i can't upgrade garage door + combination lock. It says: "Not setup yet"
and after restart the increment door disapears
Which one are you using? Regular or P4L + Admin Build?
-
Many thanks for your work!
So is this behaviour
also fixed? Or is it just for me like that?
Sorry ABLGDayZ, I didn't see that post, Ill look into it right now!
-
Hello everyone!
I would like to announce that Build Vectors supports Snap Building 1.4.1 now! :) :) :)
Two different downloads are available, the basic SBP 1.4.1 and SBP 1.4.1 with Admin Build and P4L. :)
Also, ghost preview works like it is suppose to (Thanks Jossy!) :) :)
striker
-
Hello, I have a bug. when you connect to the server pishshet just such a mistake
ErrorMessage: File mpmissions\DayZ_Epoch_11.Chernarus\custom\snap_pro\snappoints.hpp, line 397: .SnapBuilding: Member already defined.
This is my snappoints.hpp
/*-----------------------------------------------------------*/ // Created by Raymix // Last update - August 21 2014 /*-----------------------------------------------------------*/ class SnapBuilding { //Barriers whitelist class Barrier { snapTo[] = { "Land_HBarrier5_DZ", "Land_HBarrier3_DZ", "Land_HBarrier1_DZ", "Sandbag1_DZ", "BagFenceRound_DZ", "Fort_RazorWire" }; radius = 5; }; //snap points class Land_HBarrier5Preview: Barrier{ //fix for broken offsets in ghost points[] = { {0,0,0,"Pivot"}, {0,-0.75,0.1,"Back"}, {0,0.75,0.1,"Front"}, {-2.85,0,0.1,"Left"}, {2.85,0,0.1,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier5_DZ: Land_HBarrier5Preview { points[] = { {0,0,0,"Pivot"}, {0,-0.75,0,"Back"}, {0,0.75,0,"Front"}, {-2.85,0,0,"Left"}, {2.85,0,0,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier3ePreview: Barrier { //whitelist inheritance points[] = { {0,0,0,"Pivot"}, {0,-0.75,0,"Back"}, {0,0.75,0,"Front"}, {-1.7,0,0,"Left"}, {1.7,0,0,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier3_DZ: Land_HBarrier3ePreview{}; //point inheritance class Land_HBarrier1Preview: Barrier { points[] = { {0,0,0,"Pivot"}, {0,-0.75,0,"Back"}, {0,0.75,0,"Front"}, {-0.6,0,0,"Left"}, {0.6,0,0,"Right"}, {0,0,0.9,"Top"} }; }; class Land_HBarrier1_DZ: Land_HBarrier1Preview{}; class Fort_RazorWirePreview: Barrier { points[] = { {0,0,0,"Pivot"}, {0,-0.95,-0.3,"Back"}, {0,0.95,-0.3,"Front"}, {-4.1,0,-0.3,"Left"}, {4.1,0,-0.3,"Right"}, {0,0,1,"Top"} }; }; class Fort_RazorWire: Fort_RazorWirePreview {}; class Sandbag1_DZ: Barrier { points[] = { {0,0,0,"Pivot"}, {-1.5,0,0,"Left"}, {1.5,0,0,"Right"}, {0,0,0.4,"Top"} }; }; class BagFenceRound_DZ: Barrier { points[] = { {0,0,0,"Pivot"}, {-1.295,0.38,0,"Left"}, {1.295,0.38,0,"Right"}, {0,0,0.4,"Top"} }; }; //Snapping whitelists for Floors, walls and stairs class FloorsWallsStairs { snapTo[] = { "WoodFloorQuarter_DZ", "WoodFloorHalf_DZ", "WoodFloor_DZ", "WoodStairs_DZ", "WoodStairsSans_DZ", "WoodSmallWallDoor_DZ", "WoodSmallWall_DZ", "WoodSmallWallWin_DZ", "Land_DZE_WoodDoor", "Land_DZE_WoodDoorLocked", "WoodLargeWall_DZ", "Land_DZE_LargeWoodDoor", "WoodLargeWallWin_DZ", "WoodLargeWallDoor_DZ", "Land_DZE_GarageWoodDoor", "Land_DZE_GarageWoodDoorLocked", "Land_DZE_LargeWoodDoorLocked", "WoodSmallWallThird_DZ", "CinderWall_DZ", "CinderWallDoorway_DZ", "CinderWallDoorLocked_DZ", "CinderWallDoor_DZ", "CinderWallSmallDoorway_DZ", "CinderWallDoorSmallLocked_DZ", "CinderWallHalf_DZ", "CinderWallDoorSmall_DZ", "MetalFloor_DZ" }; radius = 7; }; class WoodFloorQuarter_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost points[] = { {0,0,0,"Pivot"}, {0,-1.23,0,"Back"}, {0,1.23,0,"Front"}, {-1.24,0,0,"Left"}, {1.24,0,0,"Right"} }; }; class WoodFloorQuarter_DZ: FloorsWallsStairs { points[] = { {0,0,0,"Pivot"}, {0,-1.23,0.137726,"Back"}, {0,1.23,0.137726,"Front"}, {-1.24,0,0.137726,"Left"}, {1.24,0,0.137726,"Right"} }; }; class WoodFloorHalf_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost points[] = { {0,0,0,"Pivot"}, {0,-2.34,0,"Back"}, {0,2.34,0,"Front"}, {-1.25,0,0,"Left"}, {1.25,0,0,"Right"} }; }; class WoodFloorHalf_DZ: FloorsWallsStairs{ points[] = { {0,0,0,"Pivot"}, {0,-2.34,0.1407,"Back"}, {0,2.34,0.1407,"Front"}, {-1.25,0,0.1407,"Left"}, {1.25,0,0.1407,"Right"} }; }; class WoodFloor_Preview_DZ: FloorsWallsStairs { points[] = { {0,0,0,"Pivot"}, {0,-2.33,0.130,"Back"}, {0,2.33,0.130,"Front"}, {-2.495,0,0.130,"Left"}, {2.495,0,0.130,"Right"} }; radius = 10; }; class WoodFloor_DZ: WoodFloor_Preview_DZ{}; class Stairs_DZE: FloorsWallsStairs { points[] = { {0,0,0,"Pivot"}, {1.56055,-0.78,1.5,"Back"}, {1.56055,0.78,1.5,"Front"}, {1.73926,0.05,2.9,"Top"}, {-1.73926,0.05,0,"Bottom"} }; }; class WoodStairs_DZ: Stairs_DZE {}; class WoodStairs_Preview_DZ: Stairs_DZE {}; class WoodStairsSans_Preview_DZ: Stairs_DZE {}; class WoodStairsSans_DZ: Stairs_DZE {}; class WoodSmall_DZE: FloorsWallsStairs { // Small wood walls points[] = { {0,0,0,"Pivot"}, {-2.285, 0, 1.5,"Left"}, {2.285, 0, 1.5,"Right"}, {0, 0, 3,"Top"} }; }; class WoodSmallWallDoor_Preview_DZ: WoodSmall_DZE {}; class WoodSmallWall_Preview_DZ: WoodSmall_DZE {}; class WoodSmallWallWin_Preview_DZ: WoodSmall_DZE {}; class WoodSmallWallDoor_DZ: WoodSmall_DZE {}; class WoodSmallWall_DZ: WoodSmall_DZE {}; class WoodSmallWallWin_DZ: WoodSmall_DZE {}; class Land_DZE_WoodDoor: WoodSmall_DZE {}; class Land_DZE_WoodDoorLocked: WoodSmall_DZE {}; class WoodDoor_Preview_DZ: WoodSmall_DZE{}; class WoodLarge_DZE: FloorsWallsStairs { //Large wood walls points[] = { {0,0,0,"Pivot"}, {-2.45, 0, 1.5,"Left"}, {2.45, 0, 1.5,"Right"}, {0, 0, 3,"Top"} }; }; class WoodLargeWall_Preview_DZ: WoodLarge_DZE {}; class WoodLargeWallWin_Preview_DZ: WoodLarge_DZE {}; class WoodLargeWallDoor_Preview_DZ: WoodLarge_DZE {}; class WoodSmallWallThird_Preview_DZ: WoodLarge_DZE { points[] = { {0,0,0,"Pivot"}, {-2.445, 0, 1.5,"Left"}, {2.445, 0, 1.5,"Right"}, {0, 0, 1.17,"Top"} }; }; class WoodSmallWallThird_DZ: WoodSmallWallThird_Preview_DZ{}; class WoodLargeWall_DZ: WoodLarge_DZE {}; class Land_DZE_LargeWoodDoor: WoodLarge_DZE {}; class WoodLargeWallWin_DZ: WoodLarge_DZE {}; class WoodLargeWallDoor_DZ: WoodLarge_DZE {}; class Land_DZE_GarageWoodDoor: WoodLarge_DZE {}; class GarageWoodDoor_Preview_DZ: WoodLarge_DZE {}; class Land_DZE_GarageWoodDoorLocked: WoodLarge_DZE {}; class Land_DZE_LargeWoodDoorLocked: WoodLarge_DZE {}; class LargeWoodDoor_Preview_DZ: WoodLarge_DZE {}; class Cinder_DZE: FloorsWallsStairs { //All cinder walls and doors points[] = { {0,0,0,"Pivot"}, {-2.752, 0, 1.5,"Left"}, {2.752, 0, 1.5,"Right"}, {0, 0, 3.37042,"Top"} }; radius = 10; }; class CinderWall_Preview_DZ: Cinder_DZE {}; class CinderWallDoorway_Preview_DZ: Cinder_DZE {}; class CinderWallSmallDoorway_Preview_DZ: Cinder_DZE {}; class CinderWallHalf_Preview_DZ: Cinder_DZE { points[] = { {0,0,0,"Pivot"}, {-2.752, 0, 1.5,"Left"}, {2.752, 0, 1.5,"Right"}, {0, 0, 1.5,"Top"} }; }; class CinderWall_DZ: Cinder_DZE {}; class CinderWallDoorway_DZ: Cinder_DZE {}; class CinderWallDoorLocked_DZ: Cinder_DZE {}; class CinderWallDoor_DZ: Cinder_DZE {}; class CinderWallSmallDoorway_DZ: Cinder_DZE {}; class CinderWallDoorSmallLocked_DZ: Cinder_DZE {}; class CinderWallHalf_DZ: Cinder_DZE { points[] = { {0,0,0,"Pivot"}, {-2.752, 0, 1.5,"Left"}, {2.752, 0, 1.5,"Right"}, {0, 0, 1.5,"Top"} }; }; class CinderWallDoorSmall_DZ: Cinder_DZE {}; class MetalFloor_Preview_DZ: FloorsWallsStairs { //fix for broken offsets in ghost points[] = { {0,0,0.011,"Pivot"}, {0, -2.64, 0.009,"Back"}, {0, 2.64, 0.009,"Front"}, {-2.64, 0, 0.009,"Left"}, {2.64, 0, 0.009,"Right"} }; radius = 12; }; class MetalFloor_DZ: FloorsWallsStairs{ points[] = { {0,0,0,"Pivot"}, {0, -2.64, 0.15,"Back"}, {0, 2.64, 0.15,"Front"}, {-2.64, 0, 0.15,"Left"}, {2.64, 0, 0.15,"Right"} }; radius = 12; }; //Non essential Items that only snap to themselves, do whitelist inheritance if you want these to snap class WoodCrate_DZ { snapTo[] = { "WoodCrate_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {0,-0.47,0,"Back"}, {0,0.47,0,"Front"}, {-0.47,0,0,"Left"}, {0.47,0,0,"Right"}, {0,0,0.47,"Top"} }; }; class MetalPanel_DZ { snapTo[] = { "MetalPanel_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {-1.5,0,0,"Left"}, {1.5,0,0,"Right"} }; }; class MetalGate_DZ { snapTo[] = { "MetalGate_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {-4.1,0,0,"Left"} }; }; class StickFence_DZ { snapTo[] = { "StickFence_DZ" }; radius = 10; points[] = { {0,0,0,"Pivot"}, {-2.95,0,0.3,"Left"}, {2.95,0,0.3,"Right"} }; }; class Fence_corrugated_DZ { snapTo[] = { "Fence_corrugated_DZ" }; radius = 10; points[] = { {0,0,0,"Pivot"}, {-1.95,0,0.88,"Left"}, {1.95,0,0.88,"Right"} }; }; class WoodRamp_Preview_DZ { snapTo[] = { "WoodRamp_DZ" }; radius = 7; points[] = { {0,0,0,"Pivot"}, {0.65,-1.7,1.2,"Back"}, {0.65,1.5,1.2,"Front"}, {3.34,-0.115,2.82,"Top"} }; }; class WoodRamp_DZ: WoodRamp_Preview_DZ{}; class WoodLadder_Preview_DZ { snapTo[] = { "WoodLadder_DZ" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {-0.4,0,1.725,"Left"}, {0.4,0,1.725,"Right"} }; }; class WoodLadder_DZ: WoodLadder_Preview_DZ{}; class VaultStorageLocked { snapTo[] = { "VaultStorageLocked", "VaultStorage" }; radius = 5; points[] = { {0,0,0,"Pivot"}, {0,0.284,0.615,"Back"}, {0,0,1.23,"Top"}, {-0.362,0,0.615,"Left"}, {0.362,0,0.615,"Right"} }; }; class VaultStorage: VaultStorageLocked {}; };
[Release] Build Vectors - Rotate objects in Dayz Epoch (v2.34 P4L & non-P4L)
in A2: Epoch Mods (1.0.5.1)
Posted
Ill probably release a step by step guide soon. That way it will be easy to integrate and update without being depended on the other mods.
striker