PAR4NA Posted October 20, 2014 Report Share Posted October 20, 2014 I have already installed "Plot for Life v2.33 & Snap Pro 1.4.1". How do I install the Build Vectors? Link to comment Share on other sites More sharing options...
THEbookie Posted October 20, 2014 Report Share Posted October 20, 2014 I can get the vectors working but after a restart they flop back to the normal positions. I've got P4L, Snap 1.4, indestructible building and tried multiple different ways to fix it and tried both the adminbuild version and without. I saw other people with this problem but didn't see anyone of them get help. Sorry if its an easy fix I just can't seem to find it anywhere at the moment. Any help? Edit: Is my server monitor right? 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"; }; Link to comment Share on other sites More sharing options...
Proximus Posted October 21, 2014 Report Share Posted October 21, 2014 Same problem with full cinder walls and cinder garage doorway disappearing after restart. Half cinder blocks walls are fine. I am using the build vectors, snap build pro and plot 4 life.My map is Sauerland. Server_monitor.sqf is correct (with new code). What should i check there? I have this issue too. Using Build vector with build in snap pro. No p4l or anything related. Taviana map Don't know what to look for Anyone got a fix? Link to comment Share on other sites More sharing options...
syco Posted October 21, 2014 Report Share Posted October 21, 2014 Tested and working 100% on panthera. No problems at all so far. Link to comment Share on other sites More sharing options...
Ghostrider-GRG Posted October 21, 2014 Report Share Posted October 21, 2014 100% working on Lingor running the SnapBuildPro 1.4.1 / PP4L version. I would be sure you have made all changes needed. If the object is not rotated, it may be either that you are missing the relevant code in Server_monitor.sqf which orients the objects when streaming them from the hive, or that they are not published with the _vector variable for some reason. Link to comment Share on other sites More sharing options...
Apraxas Posted October 22, 2014 Report Share Posted October 22, 2014 Hi there, anyone any clue what the Problem could be here ? 18:22:35 Error in expression <; _object setVariable ["OEMPos", call compile (_worldspace select 1), true]; > 18:22:35 Error position: <compile (_worldspace select 1), true]; > 18:22:35 Error compile: Type Array, expected String 18:22:35 File z\addons\dayz_server\compile\server_swapObject.sqf, line 52 by looking into z\addons\dayz_server\compile\server_swapObject.sqf // Publish variables _object setVariable ["CharacterID",_charID,true]; //_object setVariable ["ObjectUID",_objectUID,true]; _object setVariable ["OEMPos", call compile (_worldspace select 1), true]; //diag_log ("PUBLISH: Attempt " + str(_object)); //get UID this is only happening when upgrading ... ( doors, cinderblockwalls, and so on ) and they dont get stored into the DB. Link to comment Share on other sites More sharing options...
ABLGDayZ Posted October 22, 2014 Report Share Posted October 22, 2014 Hi there, anyone any clue what the Problem could be here ? 18:22:35 Error in expression <; _object setVariable ["OEMPos", call compile (_worldspace select 1), true]; > 18:22:35 Error position: <compile (_worldspace select 1), true]; > 18:22:35 Error compile: Type Array, expected String 18:22:35 File z\addons\dayz_server\compile\server_swapObject.sqf, line 52 by looking into z\addons\dayz_server\compile\server_swapObject.sqf // Publish variables _object setVariable ["CharacterID",_charID,true]; //_object setVariable ["ObjectUID",_objectUID,true]; _object setVariable ["OEMPos", call compile (_worldspace select 1), true]; //diag_log ("PUBLISH: Attempt " + str(_object)); //get UID this is only happening when upgrading ... ( doors, cinderblockwalls, and so on ) and they dont get stored into the DB. The problem here is the call compile, which expects a string. You probably have installed another script, which changes the build-files?! Which changes the worldspace to a string, like the Precise Base Building. But in your player_upgrade.sqf you have the normal Array-Version of the Worldspace Location and commit it as array to your server_swapObject, i would suspect. They are not saved in the DB, because the saving is located after the error line, so it's not executed. regards Link to comment Share on other sites More sharing options...
ABLGDayZ Posted October 22, 2014 Report Share Posted October 22, 2014 I have this issue too. Using Build vector with build in snap pro. No p4l or anything related. Taviana map Don't know what to look for Anyone got a fix? Same problem with full cinder walls and cinder garage doorway disappearing after restart. Half cinder blocks walls are fine. I am using the build vectors, snap build pro and plot 4 life.My map is Sauerland. Server_monitor.sqf is correct (with new code). What should i check there? Check your DB if the Cinder stuff is saved correctly. Check your RPT for errors. You both, could have the same problem like Apraxas. Because, cinder garage doorway and cinder walls all need to be upgraded, check your player_upgrade.sqf, if everythings correctly. regards Link to comment Share on other sites More sharing options...
ABLGDayZ Posted October 22, 2014 Report Share Posted October 22, 2014 I can get the vectors working but after a restart they flop back to the normal positions. I've got P4L, Snap 1.4, indestructible building and tried multiple different ways to fix it and tried both the adminbuild version and without. I saw other people with this problem but didn't see anyone of them get help. Sorry if its an easy fix I just can't seem to find it anywhere at the moment. Any help? Edit: Is my server monitor right? 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"; }; There's not always an "easy" fix for problems like that, because the error could be everywhere. You have to check everything for correctness. Are there any errors in your RPT? Is everything saved correctly in your DB? Because of all your different mods changing the worldspace. Are these correct in the DB, in any way possible, saving through building, upgrading, downgrading...? That's something you have to do for yourself, that's a rather unpleasant side of scripting/programming, but that's what you wanna do here dude ;D... regards Link to comment Share on other sites More sharing options...
Proximus Posted October 22, 2014 Report Share Posted October 22, 2014 When i place a Cinder_Garage_Kit, it is saved to the database. As soon a i upgrade it with a door, it is removed from the database and get this error in the client RPT Error in expression <VDZE_veh_Update"; PVDZE_veh_Update call server_updateObject; } else { {player > Error position: <server_updateObject; } else { {player > Error Undefined variable in expression: server_updateobject File mpmissions\__CUR_MP.Tavi\fixes\player_upgrade.sqf, line 185 Link to comment Share on other sites More sharing options...
Apraxas Posted October 22, 2014 Report Share Posted October 22, 2014 Well it seems this is going get a bigger Problem Minute by Minute, btw they changed somehthing at battleeye... I traced the whole Function across the scripts. Starting with the Definition of " upgradeing " fn_selfActions.sqf: if (s_player_upgrade_build < 0) then { // s_player_lastTarget = _cursorTarget; s_player_lastTarget set [0,_cursorTarget]; s_player_upgrade_build = player addAction [format[localize "STR_EPOCH_ACTIONS_UPGRADE",_text], "custom\PlotForLifev2\player_upgrade.sqf",_cursorTarget, -1, false, true, "",""]; }; okay so the click on Upgrade itself is causing the player_upgrade.sqf to get executed, for myself this is located in the PlotforLifev2 folder ... // check for near plot _findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], _distance]; _findNearestPole = []; bla bla bla // check nearby plots ownership && then for friend status blabla // Find owner blubber // check if friendly to owner Last bit of this file is the one which is in my sense the intresting once. //Get Vector _vector = [(vectorDir _obj),(vectorUp _obj)]; // Current charID _objectCharacterID = _obj getVariable ["CharacterID","0"]; _ownerID = _obj getVariable ["ownerPUID","0"]; _classname = _newclassname; // Create new object _object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"]; // Set direction _object setDir _dir; // Set vector _object setVectorDirAndUp _vector; // Set location _object setPosATL _location; // Set Owner. _object setVariable ["ownerPUID",_ownerID,true]; if (_lockable == 3) then { _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]; _objectCharacterID = _combination; cutText [format[(localize "str_epoch_player_158"),_combination,_text], "PLAIN DOWN", 5]; } else { cutText [format[(localize "str_epoch_player_159"),_text], "PLAIN DOWN", 5]; }; PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location, _vector, _ownerID],_classname,_obj,player]; publicVariableServer "PVDZE_obj_Swap"; player reveal _object; _friendUID = getPlayerUID player; _friendName = name player; _friends = [[_friendUID,_friendName]] ; _object setVariable ["doorfriends", _friends, true]; PVDZE_veh_Update = [_object,"gear"]; publicVariableServer "PVDZE_veh_Update"; PVDZE_veh_Update call server_updateObject; } else { {player addMagazine _x;} count _temp_removed_array; cutText [format[(localize "str_epoch_player_145"),_removed_total,_tobe_removed_total], "PLAIN DOWN"]; }; } else { _textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName"); cutText [format[(localize "str_epoch_player_146"),_missingQty, _textMissing], "PLAIN DOWN"]; }; } else { cutText [(localize "str_epoch_player_82"), "PLAIN DOWN"]; }; DZE_ActionInProgress = false; s_player_upgrade_build = -1; so in clear words, the only part where i can see an error is at // Set location _object setPosATL _location; i know this is the first answer you guys getting but " i didnt do anything to the file " At the moment of time i am about to check for the > PVDZE_obj_Swap < Variable if it is getting catched by some stupid mo... PIIIEEPPPP stu..iPIIIEEPPPPP Battleeye filter. Addition 0: For my part the Variable is okay .. 5 "PVDZE_" !"PVDZE_player" !="PVDZE_send" !="PVDZE_log_lockUnlock" !="PVDZE_Server_Simulation" !="PVDZE_veh_Update" !="PVDZE_plr_GutBody" !="PVDZE_plr_GutBodyZ" !="PVDZE_veh_Lock" !="PVDZE_plr_DeathB" !="PVDZE_maintainArea" !="PVDZE_obj_Publish" !="PVDZE_obj_Swap" !="PVDZE_plr_Save" !="PVDZE_obj_Delete" !="PVDZE_obj_Trade" !="PVDZE_veh_Publish2" !="PVDZE_zed_Spawn" !="PVDZE_plr_Died" !="PVDZE_plr_TradeMenu" !="PVDZE_veh_Upgrade" !="PVDZE_atp" !="PVDZE_plr_Login" !="PVDZE_plr_Login2" !="PVDZE_plr_LoginRecord" !="PVDZE_plr_DeathBResult" !="PVDZE_veh_SFix" !="PVDZE_plr_Hit" !="PVDZE_plr_HitV" !="PVDZE_veh_SFuel" !="PVDZE_plr_HideBody" !="PVDZE_plr_Morph" !="PVDZE_veh_Publish" !="PVDZE_plr_Characters" !="PVDZE_lockVault" !="PVDZE_obj_setlocalVars" !="PVDZE_obj_getlocalVars" !="PVDZE_bank_Save" Addition 1: Local RPT Logs not showing something super .. special beside: Error in expression < = alive _agent; _targetPos = getPosATL _target; _agent moveTo _targetPos; _a> Error position: <_target; _agent moveTo _targetPos; _a> Error Undefined variable in expression: _target Link to comment Share on other sites More sharing options...
Proximus Posted October 22, 2014 Report Share Posted October 22, 2014 Seems my problem has to do with the Doormanagment 3.0 from Zupa ^_^ Link to comment Share on other sites More sharing options...
Apraxas Posted October 22, 2014 Report Share Posted October 22, 2014 Installed the DoorManagment long time ago, never had problems with it, can you be more spezific what _exactly_ the problem is ? Link to comment Share on other sites More sharing options...
Proximus Posted October 22, 2014 Report Share Posted October 22, 2014 As soon as i upgrade something, a custom player_upgrade.sqf is called from the doormanagment script. I added this code to the player_upgrade.sqf from this build vector script for the doormanagment script: To add the owner as default to the doors on placement, edit your Player_Upgrade.sqf Locate this: player reveal _object;Paste the following code underneath: _friendUID = getPlayerUID player; _friendName = name player; _friends = [[_friendUID,_friendName]] ; _object setVariable ["doorfriends", _friends, true]; PVDZE_veh_Update = [_object,"gear"]; publicVariableServer "PVDZE_veh_Update"; PVDZE_veh_Update call server_updateObject; Now getting this error: Error Undefined variable in expression: server_updateobject File mpmissions\__CUR_MP.chernarus\Mods\snap_build\player_upgrade.sqf, line 207 Error in expression <VDZE_veh_Update"; PVDZE_veh_Update call server_updateObject; } else { {player a> Error position: <server_updateObject; } else { {player a> In the doormanagment tutorial Zupa tells us to define the server_updateObject, but i don't know how/where Link to comment Share on other sites More sharing options...
ABLGDayZ Posted October 22, 2014 Report Share Posted October 22, 2014 server_updateobject is a function, which usually only exists on the server, like the name says. That's because executing PVDZE_veh_Update call server_updateObject; will result in an error, the function is not known for the clients. I myself have not installed zupas Doormanagement yet. But it seems to me it's the original server_updateObject.sqf from the server files. Just add it to your custom compiles.sqf, which is called in your init.sqf for the CLIENT side stuff. Important, add it in the compiles.sqf in this section if (!isDedicated) then { .... }; Also Important, you need to copy the server_updateObject.sqf file from the server files to your Mission.pbo, calling files from the server as client won't success! regards Link to comment Share on other sites More sharing options...
Proximus Posted October 22, 2014 Report Share Posted October 22, 2014 Will this work in the player_upgrade.sqf? Instead of making a client-side server_updateObject.sqf? if (isServer) then { PVDZE_veh_Update call server_updateObject; }; Link to comment Share on other sites More sharing options...
ABLGDayZ Posted October 22, 2014 Report Share Posted October 22, 2014 should help too, yeah Link to comment Share on other sites More sharing options...
Proximus Posted October 22, 2014 Report Share Posted October 22, 2014 Tried it, not getting the error anymore, now getting this error server side: 21:22:33 Error in expression < _object setVariable ["OEMPos", call compile (_worldspace select 1), true]; > 21:22:33 Error position: <compile (_worldspace select 1), true]; > 21:22:33 Error compile: Type Array, expected String 21:22:33 File z\addons\dayz_server\compile\server_swapObject.sqf, line 53 :( Link to comment Share on other sites More sharing options...
Proximus Posted October 22, 2014 Report Share Posted October 22, 2014 Got it fixed. Messed up server_swapObject.sqf for step 6 (precise building) Everything works now :D Link to comment Share on other sites More sharing options...
THEbookie Posted October 22, 2014 Report Share Posted October 22, 2014 There's not always an "easy" fix for problems like that, because the error could be everywhere. You have to check everything for correctness. Are there any errors in your RPT? Is everything saved correctly in your DB? Because of all your different mods changing the worldspace. Are these correct in the DB, in any way possible, saving through building, upgrading, downgrading...? That's something you have to do for yourself, that's a rather unpleasant side of scripting/programming, but that's what you wanna do here dude ;D... regards Server/Client RPT looks pretty clear. But when I did check the db objects last night I did notice something strange my worldspace said something like [any,any[my steam uid]] <-- Something along those lines atleast. Yeah I know what you mean about the testing I do alot of it before I come to ask for help, I like to try and fix stuff myself before I bother others with my problems haha. Anyway just got back from work so back to try some other tactics :D Link to comment Share on other sites More sharing options...
Shadowking74 Posted October 22, 2014 Report Share Posted October 22, 2014 Anybody got the files with that have Vector, snap build pro and plot 4 life v2.3 in it? or know when this will be updated with the latest plot for life Link to comment Share on other sites More sharing options...
A Pollo Posted October 22, 2014 Report Share Posted October 22, 2014 I'm getting a very strange error... 23:21:00 "Admin Tools: AdminList.sqf loaded" 23:21:00 Warning: z\addons\dayz_communityassets\models\compass.p3d:0 Error while trying to generate ST for points: 863, 853, 852 23:21:01 "Res3tting B!S effects..." 23:21:01 "\z\addons\dayz_code\system\REsec.sqf:Monitoring Remote Exe..." 23:21:01 "HIVE: Starting" 23:21:01 "HIVE: Local Time set to [2012,6,6,20,20]" 23:21:01 "LOAD OBJECTS" 23:21:01 "FOUND 0 OBJECTS" 23:21:01 Error in expression <rverObjectMonitor,_object]; }; } count (_BuildingQueue + _objectQueue); if !(> 23:21:01 Error position: <_BuildingQueue + _objectQueue); if !(> 23:21:01 Error count: Undefined variable in expression: _buildingqueue 23:21:01 File z\addons\dayz_server\system\server_monitor.sqf, line 304 23:21:58 Game started. How do I fix this? edit: Derp sorry I need to remember I'm using Linux files. Everything is different. Link to comment Share on other sites More sharing options...
Machingamer Posted October 24, 2014 Report Share Posted October 24, 2014 When i go to build an object, i press spacebar then it instantly says cancelled building. anyone able to help? Link to comment Share on other sites More sharing options...
RussianCaliber Posted October 24, 2014 Report Share Posted October 24, 2014 So got it up and running but got few problems the buildables will not save to hive and when i place a plotpole down the plot is like 1 by 1 square. Any ideas? Link to comment Share on other sites More sharing options...
jay8454 Posted October 25, 2014 Report Share Posted October 25, 2014 You will likely want to add those to your custom variables for undefined variable errors in the RPT And how in the .... do you do that I got major errors, why are they not already input into that area? Why was that not part of the install? GREAT I JUST PLOW UP MY SERVER BEFORE THE END OF THE FORUM!!! 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