Add check to prevent submarine sink into the ground

This commit is contained in:
AirwavesMan
2021-03-12 11:12:31 +01:00
parent 6d91cea790
commit c4118463dc
3 changed files with 17 additions and 1 deletions

View File

@@ -0,0 +1,13 @@
local _vehicle = _this select 0;
local _unit = _this select 2;
local _driver = driver _vehicle;
if (!(isNull _driver) && {_driver != _unit}) exitwith {};
while {_vehicle isKindOf "Submarine_DZE_base"} do {
local _pos = getposATL _vehicle;
if (((_vehicle animationphase "dive") > 0.5) && {(_pos select 2) < 10}) then {
_vehicle animate ["dive", 0];
};
uisleep 1;
};

View File

@@ -51,6 +51,7 @@ if (!isDedicated) then {
player_regularSave = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_regularSave.sqf";
player_forceSave = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_forceSave.sqf";
vehicle_getOut = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getOut.sqf";
submarine_surface = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\submarine_surface.sqf";
//Objects
object_setpitchbank = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf";

View File

@@ -11,13 +11,15 @@ if (_this isKindOf "AllVehicles") then {
_this addeventhandler ["HandleDamage",{ _this call fnc_veh_handleDam } ];
_this addeventhandler ["Killed",{ _this call fnc_veh_handleKilled } ];
_this addEventHandler ["GetOut", { _this call vehicle_getOut }];
if (_this isKindOf "Submarine_DZE_base") then {
_this addEventHandler ["GetIn", { _this spawn submarine_surface }];
};
if (isServer) then {
_this removeAllEventHandlers "GetOut";
_this removeAllEventHandlers "GetIn";
_this addEventHandler ["GetOut", {[(_this select 0),"all",true] call server_updateObject;}];
_this addEventHandler ["GetIn", {[(_this select 0),"all",true] call server_updateObject; _this call server_checkIfTowed;}];
//_this addEventHandler ["Engine", { }];
};
//diag_log(format["%1: all EH reset for %2", __FILE__, _this]);