Should stop vehicles from falling through buildables

This commit is contained in:
icomrade
2016-08-11 13:19:24 -04:00
parent 2fdc87a86c
commit 4019d0c351

View File

@@ -7,6 +7,7 @@ if (!isNil "sm_done") exitWith {}; // prevent server_monitor be called twice (bu
sm_done = false;
dayz_serverIDMonitor = [];
DZE_VehObjects = [];
dayz_versionNo = getText (configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo = getNumber (configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
_hiveLoaded = false;
@@ -150,7 +151,7 @@ _respawnPos = getMarkerpos "respawn_west";
if (!_wsDone) then {
//_pos = [,0,30,10,0,2000,0] call BIS_fnc_findSafePos;
//if (count _pos < 3) then { _pos = [_worldspace select 0,_worldspace select 1,0]; }; //using 0,0,0 instead of getMarkerPos _pos will never be < 3
if (count _pos < 3) then { _pos = [_worldspace select 0,_worldspace select 1,0]; };
diag_log format["MOVED OBJ: %1 of class %2 to pos: [0,0,0]",_idKey,_type];
};
@@ -170,13 +171,14 @@ _respawnPos = getMarkerpos "respawn_west";
//TODO add remove object and readd old fence (hideobject would be nice to use here :-( )
//Pending change to new fence models\Layout
};
_nonColide = _type in DayZ_nonCollide;
_nonCollide = _type in DayZ_nonCollide;
//Create it
_object = createVehicle [_type, [0,0,0], [], 0, if (_nonColide) then {"NONE"} else {"CAN_COLLIDE"}];
_object = createVehicle [_type, [0,0,0], [], 0, if (_nonCollide) then {"NONE"} else {"CAN_COLLIDE"}];
_object setPosATL _pos;
_object setDir _dir;
_object setDamage _damage;
_object enableSimulation false;
if(_vecExists)then{
_object setVectorDirAndUp _vector;
};
@@ -276,16 +278,18 @@ _respawnPos = getMarkerpos "respawn_west";
_object setFuel _fuel;
if (!_isSafeObject) then {
_object setVelocity [0,0,1];
DZE_VehObjects set [count DZE_VehObjects,_object];
_object call fnc_veh_ResetEH;
if (_ownerID != "0" && {!(_object isKindOf "Bicycle")}) then {_object setVehicleLock "locked";};
_serverVehicleCounter set [count _serverVehicleCounter,_type]; // total each vehicle
} else {
_object enableSimulation true;
};
} else {
if (_nonColide) then {
if (_nonCollide) then {
_pos set [2,0];
_object setPosATL _pos;
};
_object setPosATL _pos;
if (_isDZ_Buildable || {(_isSafeObject && !_isTrapItem)}) then {
_object setVariable["memDir",_dir,true];
if (DZE_GodModeBase && {!(_type in DZE_GodModeBaseExclude)}) then {
@@ -293,7 +297,6 @@ _respawnPos = getMarkerpos "respawn_west";
} else {
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
};
_object enableSimulation false; // Test disabling simulation server side on buildables only.
_object setVariable ["OEMPos",_pos,true]; // used for inplace upgrades and lock/unlock of safe
};
if (_isTrapItem || _isDZ_Buildable) then {
@@ -317,11 +320,20 @@ _respawnPos = getMarkerpos "respawn_west";
} forEach _inventory;
if (_maintenanceMode) then { _object setVariable ["Maintenance", true, true]; _object setVariable ["MaintenanceVars", _maintenanceModeVars]; };
} else {
_object enableSimulation true;
};
};
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object]; //Monitor the object
} forEach _myArray;
[] spawn { //enable simulation on vehicles after all buildables are spawned
{
_object enableSimulation true;
_x setVelocity [0,0,1];
} count DZE_VehObjects;
};
// # END OF STREAMING #
call server_plantSpawner; // Draw the pseudo random seeds