mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
Should stop vehicles from falling through buildables
This commit is contained in:
@@ -7,6 +7,7 @@ if (!isNil "sm_done") exitWith {}; // prevent server_monitor be called twice (bu
|
|||||||
sm_done = false;
|
sm_done = false;
|
||||||
|
|
||||||
dayz_serverIDMonitor = [];
|
dayz_serverIDMonitor = [];
|
||||||
|
DZE_VehObjects = [];
|
||||||
dayz_versionNo = getText (configFile >> "CfgMods" >> "DayZ" >> "version");
|
dayz_versionNo = getText (configFile >> "CfgMods" >> "DayZ" >> "version");
|
||||||
dayz_hiveVersionNo = getNumber (configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
|
dayz_hiveVersionNo = getNumber (configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
|
||||||
_hiveLoaded = false;
|
_hiveLoaded = false;
|
||||||
@@ -150,7 +151,7 @@ _respawnPos = getMarkerpos "respawn_west";
|
|||||||
|
|
||||||
if (!_wsDone) then {
|
if (!_wsDone) then {
|
||||||
//_pos = [,0,30,10,0,2000,0] call BIS_fnc_findSafePos;
|
//_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];
|
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 :-( )
|
//TODO add remove object and readd old fence (hideobject would be nice to use here :-( )
|
||||||
//Pending change to new fence models\Layout
|
//Pending change to new fence models\Layout
|
||||||
};
|
};
|
||||||
_nonColide = _type in DayZ_nonCollide;
|
_nonCollide = _type in DayZ_nonCollide;
|
||||||
|
|
||||||
//Create it
|
//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 setPosATL _pos;
|
||||||
_object setDir _dir;
|
_object setDir _dir;
|
||||||
_object setDamage _damage;
|
_object setDamage _damage;
|
||||||
|
_object enableSimulation false;
|
||||||
if(_vecExists)then{
|
if(_vecExists)then{
|
||||||
_object setVectorDirAndUp _vector;
|
_object setVectorDirAndUp _vector;
|
||||||
};
|
};
|
||||||
@@ -276,16 +278,18 @@ _respawnPos = getMarkerpos "respawn_west";
|
|||||||
|
|
||||||
_object setFuel _fuel;
|
_object setFuel _fuel;
|
||||||
if (!_isSafeObject) then {
|
if (!_isSafeObject) then {
|
||||||
_object setVelocity [0,0,1];
|
DZE_VehObjects set [count DZE_VehObjects,_object];
|
||||||
_object call fnc_veh_ResetEH;
|
_object call fnc_veh_ResetEH;
|
||||||
if (_ownerID != "0" && {!(_object isKindOf "Bicycle")}) then {_object setVehicleLock "locked";};
|
if (_ownerID != "0" && {!(_object isKindOf "Bicycle")}) then {_object setVehicleLock "locked";};
|
||||||
_serverVehicleCounter set [count _serverVehicleCounter,_type]; // total each vehicle
|
_serverVehicleCounter set [count _serverVehicleCounter,_type]; // total each vehicle
|
||||||
|
} else {
|
||||||
|
_object enableSimulation true;
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
if (_nonColide) then {
|
if (_nonCollide) then {
|
||||||
_pos set [2,0];
|
_pos set [2,0];
|
||||||
};
|
|
||||||
_object setPosATL _pos;
|
_object setPosATL _pos;
|
||||||
|
};
|
||||||
if (_isDZ_Buildable || {(_isSafeObject && !_isTrapItem)}) then {
|
if (_isDZ_Buildable || {(_isSafeObject && !_isTrapItem)}) then {
|
||||||
_object setVariable["memDir",_dir,true];
|
_object setVariable["memDir",_dir,true];
|
||||||
if (DZE_GodModeBase && {!(_type in DZE_GodModeBaseExclude)}) then {
|
if (DZE_GodModeBase && {!(_type in DZE_GodModeBaseExclude)}) then {
|
||||||
@@ -293,7 +297,6 @@ _respawnPos = getMarkerpos "respawn_west";
|
|||||||
} else {
|
} else {
|
||||||
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
|
_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
|
_object setVariable ["OEMPos",_pos,true]; // used for inplace upgrades and lock/unlock of safe
|
||||||
};
|
};
|
||||||
if (_isTrapItem || _isDZ_Buildable) then {
|
if (_isTrapItem || _isDZ_Buildable) then {
|
||||||
@@ -317,11 +320,20 @@ _respawnPos = getMarkerpos "respawn_west";
|
|||||||
} forEach _inventory;
|
} forEach _inventory;
|
||||||
|
|
||||||
if (_maintenanceMode) then { _object setVariable ["Maintenance", true, true]; _object setVariable ["MaintenanceVars", _maintenanceModeVars]; };
|
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
|
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object]; //Monitor the object
|
||||||
} forEach _myArray;
|
} 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 #
|
// # END OF STREAMING #
|
||||||
|
|
||||||
call server_plantSpawner; // Draw the pseudo random seeds
|
call server_plantSpawner; // Draw the pseudo random seeds
|
||||||
|
|||||||
Reference in New Issue
Block a user