Jump to content

[Release] Build Vectors - Rotate objects in Dayz Epoch (v2.34 P4L & non-P4L)


striker

Recommended Posts

Hi i'm currently rebuilding my server as i'm moving hosting companies

 

When i install v4 without p4l i have an issue all works but when upgrading doors with combo locks well they don't add and when trying to place another buildable it says building in progress?

 

I followed the tutorial step by step twice n same happened every time

 

Any idea what could be the issue?

 

Many Thanks in advance

 

R4id3n84

Link to comment
Share on other sites

  On 1/12/2015 at 5:57 PM, R4id3n84 said:

Hi i'm currently rebuilding my server as i'm moving hosting companies

 

When i install v4 without p4l i have an issue all works but when upgrading doors with combo locks well they don't add and when trying to place another buildable it says building in progress?

 

I followed the tutorial step by step twice n same happened every time

 

Any idea what could be the issue?

 

Many Thanks in advance

 

R4id3n84

did you install precise base building?

Link to comment
Share on other sites

I just reinstalled again without Precise base building and i can add the combo lock, then i installed Precise base building and i can still add combo locks as far as i can tell as they are still on the doors however i'm just wiping the database and going to build a small base to test the vector build + precise base building.

 

If all works i'll report back, i did same install steps as before so dunno what was happening ? rather strange tbh

Link to comment
Share on other sites

  On 1/20/2015 at 4:33 AM, ElDubya said:

Actually, I was only have one issue but I believe I may have fixed that myself. It was basically that I didn't read the instructions as well as I should have and confused server_updateFullObject.sqf with server_updateObject.sqf ...... 

Oh I didn't realize you said you was using 2.5 I think I just got it installed on the 2.35.

 

Anyway the problem I had was everything was being called in the compiles correctly, p4l and vector was working but for some reason snap wasn't so if anyone is having this problem I just added this extra part to the compiles and everything worked.

snap_build = compile preprocessFileLineNumbers DZE_snap_build_file;

Its possible I completely missed this part of the installation....  ;)

Link to comment
Share on other sites

anyone know why i get this error in the RPT log?

_object setdir _dir;
if(_vecExists)then{
_object setVec>
16:46:52   Error position: <_dir;
if(_vecExists)then{
_object setVec>
16:46:52   Error Undefined variable in expression: _dir
16:46:52 File z\addons\dayz_server\system\server_monitor.sqf, line 219
16:46:53 "MOVED OBJ: "376" of class hilux1_civil_3_open_EP1 to pos: [4047.12,6621.02,0]"
16:46:53 Error in expression <eCargoGlobal  _object;


_object setdir _dir;
if(_vecExists)then{
_object setVec>
16:46:53   Error position: <_dir;
if(_vecExists)then{
_object setVec>
16:46:53   Error Undefined variable in expression: _dir
16:46:53 File z\addons\dayz_server\system\server_monitor.sqf, line 219

Server_Monitor.sqf

 

  Reveal hidden contents

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
        };
    };
};  

        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];

            _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 {
                _object setVariable["memDir",_dir,true];
                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];
                
            };

            /*ZSC*/
            if( count (_intentory) > 3)then{
            _object setVariable ["bankMoney", _intentory select 3, true];
            }else{
            _object setVariable ["bankMoney", 0, true];
            };
            /*ZSC*/
            
            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;
    };
ExecVM "\z\addons\dayz_server\WAI\init.sqf";
    allowConnection = true;    
    sm_done = true;
    publicVariable "sm_done";
};
 

Link to comment
Share on other sites

  On 1/21/2015 at 3:53 PM, norsk22771 said:

anyone know why i get this error in the RPT log?

_object setdir _dir;
if(_vecExists)then{
_object setVec>
16:46:52   Error position: <_dir;
if(_vecExists)then{
_object setVec>
16:46:52   Error Undefined variable in expression: _dir
16:46:52 File z\addons\dayz_server\system\server_monitor.sqf, line 219
16:46:53 "MOVED OBJ: "376" of class hilux1_civil_3_open_EP1 to pos: [4047.12,6621.02,0]"
16:46:53 Error in expression <eCargoGlobal  _object;


_object setdir _dir;
if(_vecExists)then{
_object setVec>
16:46:53   Error position: <_dir;
if(_vecExists)then{
_object setVec>
16:46:53   Error Undefined variable in expression: _dir
16:46:53 File z\addons\dayz_server\system\server_monitor.sqf, line 219

I had the same error

 2:22:57 Error in expression <eCargoGlobal  _object;


_object setdir _dir;
if(_vecExists)then{
_object setVec>
 2:22:57   Error position: <_dir;
if(_vecExists)then{
_object setVec>
 2:22:57   Error Undefined variable in expression: _dir
 2:22:57 File custom\system\server_monitor.sqf, line 218

It turned out to be an issue with some of the object_data in my database. Some objects had their worldspace value set to any,any. Removing all of those objects fixed this error for me.

Link to comment
Share on other sites

Error in expression <Array = [_cancel,_reason,_position,_dir,_vector];
_passArray 
>
  Error position: <_vector];
_passArray 
>
  Error Undefined variable in expression: _vector
File mpmissions\__CUR_MP.Napf\Custom\A_Plot_for_Life\Action\player_build_controls.sqf, line 224
Error in expression <text, _isPole, _lockable,_dir, _reason, _vector] call player_build_publish;
};
}>
  Error position: <_vector] call player_build_publish;
};
}>
  Error Undefined variable in expression: _vector
File mpmissions\__CUR_MP.Napf\Custom\A_Plot_for_Life\Action\modular_build.sqf, line 91

Anyone seen these before?

Link to comment
Share on other sites

Would anyone know why infiSTAR is blocking these actions from showing when these exceptions are in the list?
 

"s_player_setVectorsReset","s_player_setVectorsForward",
	"s_player_setVectorsBack","s_player_setVectorsLeft","s_player_setVectorsRight","s_player_setVectors1","s_player_setVectors5","s_player_setVectors45",
	"s_player_setVectors90"

The Vectors and Degrees options no longer show up on the scroll wheel for non admin players.

 

Gonna try adding these and see if that works

"s_player_toggleDegree","s_player_toggleVectors"
Link to comment
Share on other sites

Who can help me

21:29:14 Error in expression <;
_usedVec = false;
{
_element = _x;
if(typeName _element == "ARRAY") then{
_vec>
21:29:14   Error position: <typeName _element == "ARRAY") then{
_vec>
21:29:14   Error Generic error in expression
21:29:14 File z\addons\dayz_server\init\server_functions.sqf, line 624

server_functions.sqf

  Reveal hidden contents

Link to comment
Share on other sites

Heya!

 

Copy pasted the dayz_objectUID2 and im getting:

 

Error in expression < select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _>

Error position: <&amp;lt; 0 ) then { _x = _x * -10 }; _>
Error Missing )
File z\addons\dayz_server\init\server_functions.sqf, line 592

 

  Reveal hidden contents

 

dayz_objectUID = {
private["_position","_dir","_key","_object"];
_object = _this;
_position = getPosATL _object;
_dir = direction _object;
_key = [_dir,_position] call dayz_objectUID2;
    _key
};
 
dayz_objectUID2 = {
private["_position","_dir","_key"]; if((count _this) == 2) then{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }else{ if((count _this) == 3) then{ if(typename (_this select 2) == "ARRAY")then{ _vector = _this select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) &amp;amp;&amp;amp; ((count (_vector select 1)) == 3))then{ _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _vecCnt = 0; { _set = _x; { _vecCnt = _vecCnt + (round (_x * 100)) } foreach _set; } foreach _vector; if(_vecCnt &amp;lt; 0)then{ _vecCnt = ((_vecCnt * -1) * 3); }; _key = _key + str(_vecCnt); }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ if((count _this) == 4) then{ if(typename (_this select 3) == "ARRAY")then{ _vector = _this select 3; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) &amp;amp;&amp;amp; ((count (_vector select 1)) == 3))then{ _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _vecCnt = 0; { _set = _x; { _vecCnt = _vecCnt + (round (_x * 100)) } foreach _set; } foreach _vector; if(_vecCnt &amp;lt; 0)then{ _vecCnt = ((_vecCnt * -1) * 3); }; _key = _key + str(_vecCnt); }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ if(typename (_this select 2) == "ARRAY")then{ _vector = _this select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) &amp;amp;&amp;amp; ((count (_vector select 1)) == 3))then{ _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _vecCnt = 0; { _set = _x; { _vecCnt = _vecCnt + (round (_x * 100)) } foreach _set; } foreach _vector; if(_vecCnt &amp;lt; 0)then{ _vecCnt = ((_vecCnt * -1) * 3); }; _key = _key + str(_vecCnt); }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }; }else{ _dir = _this select 0; _key = ""; _position = _this select 1; { _x = _x * 10; if ( _x &amp;lt; 0 ) then { _x = _x * -10 }; _key = _key + str(round(_x)); } count _position; _key = _key + str(round(_dir)); }; }; }; _key};
 
dayz_objectUID3 = {
private["_position","_dir","_key"];
_dir = _this select 0;
_key = "";
_position = _this select 1;
{
_x = _x * 10;
if ( _x < 0 ) then { _x = _x * -10 };
_key = _key + str(round(_x));
} count _position;
_key = _key + str(round(_dir + time));
_key
};
 

server functions.txt

Link to comment
Share on other sites

  On 1/16/2015 at 5:49 PM, przewodnik said:

HI,

we are having the same problem like dknight903. If we build 2 garage doors we loose on of them on restart and all buildings are going to back to the 'straight' mode. Any ideas?

 

 

Does my problem have the same solution as przewodnik's ???? My problem occurs upon upgrading.

 

 

I have an issue with v4, which used to work great in v3.....

Placing 2 block garage doors on top of each other, the bottom one upside down, the upper one snapped to the lower one in the normal block garage door position (so an MTVR can easily get through)

The problem comes when I want to upgrade the lower door. When I do this, it resets the door's angles/vectors and places it in the same position as the top garage door, and deletes the original upside version.

I have tried this with snap turned on and off, the problem exists under both sets of circumstances.

I am not running any other unusual addons. Just DZMS, WAI, Refuel/Rearm/Repair, and Zupa Coins (non-hive version). Chernarus Overpoch on a GTX server.

Link to comment
Share on other sites

If you guys are having problems, you installed this wrong or something else is conflicting with it. Your best bet is to start from scratch, add stuff back 1 by 1 until you figure out whats causing the conflict or it's fixed. Thats the painful truth. You'll sit here and wait for days to get a response from someone that may or may not help.

Link to comment
Share on other sites

  On 1/9/2015 at 5:21 AM, Kroenen said:

 

Hoping someone can help with this one, I've been battling it for days. (also posted in Plot For Life thread, but the issue is still unresolved)

 

I have SBP installed as part of the Plot For Life latest version. I also have Build Vectors and Precise Base Building (as recommended by Build Vectors).

 

Everything sort of seems to be working normally, except, when you press F to snap an item, it flips around and no longer lines up properly. In some cases, even if you get it facing the right way, and the ghost image lines up, as soon as you hit SPACE to build, it goes out of line. I've done a little video below to show what I mean...

http://www.twitch.tv...ntv/b/608667844

 

On advice from Rimblock, I downgraded P4L to 2.35, but the problem is exactly the same. It seems if you build on flat planes with the correct objects (ie: floors horizontal and walls vertical), it's OK ( although still flips sometimes). As soon as you start vectoring stuff around, it never snaps properly after that.

 

My last attempt was 2 x cinder walls. 1st one was placed pitched forward 45, and banked left 45. I got the 2nd section out and oriented it the same way, but when you tried to snap them end to end, it would rotate and bank the 2nd one a little so it was out of line by a few degrees. Is it possible that Precise Building is doing something screwy with rounding up/down as you're building?

 

Still got this issue outstanding. From doing a little digging, it may be due to there not being enough accuracy with vectors as there is in precise building. So when you vector something around, it's worldspace gets rounded up/down enough to cause it to be out of line. Seems the more you vector it around, the worse it gets. This is of course, just guesswork at this stage.

Link to comment
Share on other sites

  On 2/4/2015 at 5:45 PM, Kroenen said:

Still got this issue outstanding. From doing a little digging, it may be due to there not being enough accuracy with vectors as there is in precise building. So when you vector something around, it's worldspace gets rounded up/down enough to cause it to be out of line. Seems the more you vector it around, the worse it gets. This is of course, just guesswork at this stage.

I have vectoring and precise base building, no problems. The only thing that he mentioned that I dont use is P4L and from looking around the forums it seems P4L causes a lot of problems. Good ole' arma

Link to comment
Share on other sites

  On 2/5/2015 at 3:42 PM, DangerRuss said:

Zombies walking through walls has been a thing in arma for as long as I can remember. You probably didnt do anything wrong.try putting up a sandbag thing in front of the wall

Waking through walls sure. But I'm talking about full sprinting through the wall without slowing down or anything. I tested it by surrounding myself with 4 regular cinder walls then spawned a bunch of zombies and started shooting, no zombies got to me. Then I surrounded myself in 4 cinder walls that were rotated 90 degrees and did the same thing and immediately I was covered in zombies. They run through the walls like they're not even there.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



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