diff --git a/CHANGE LOG 1.0.6.txt b/CHANGE LOG 1.0.6.txt index 230333ca4..6694f031e 100644 --- a/CHANGE LOG 1.0.6.txt +++ b/CHANGE LOG 1.0.6.txt @@ -36,6 +36,7 @@ [NEW] Gem rarity is now configurable for mining using DZE_GemOccurance =[]; see ConfigVariables.sqf for more info @icomrade [NEW] Plot Management by Zupa is now included and enabled by default with variable DZE_plotManagement, see ConfigVariables.sqf @DevZupa @Bruce-LXXVI @icomrade [NEW] A Plot For Life by RimBlock is now included and enabled by default with variable DZE_plotforLife, see configVariables.sqf @RimBlock @icomrade +[NEW] You may toggle vehicle destruction effects to prevent damage from vehicle explosions (useful to prevent griefing from ramming) use DZE_NoVehicleExplosions = true; to enable #1198 @icomrade [CHANGED] Many duplicate functions and variables were renamed. See Documents\1.0.6 Variable Name Changes.txt @ebaydayz [CHANGED] Several weapon, item and tool classnames changed. Admins see SQL\1.0.6_Updates @ebaydayz diff --git a/SQF/dayz_code/Configs/CfgVehicles/Helicopter/CH53.hpp b/SQF/dayz_code/Configs/CfgVehicles/Helicopter/CH53.hpp index 35d19e76c..4ee4c1cea 100644 --- a/SQF/dayz_code/Configs/CfgVehicles/Helicopter/CH53.hpp +++ b/SQF/dayz_code/Configs/CfgVehicles/Helicopter/CH53.hpp @@ -6,7 +6,6 @@ class CH53_DZE : USEC_ch53_E { displaynameshort = "CH53_DZE"; destrType = "DestructWreck"; enablemanualfire = 0; - secondaryExplosion = -1; crew = ""; soundGetIn[] = {"\ca\Sounds\Air\Noises\heli_door_01",0.316228,1}; soundGetOut[] = {"\ca\Sounds\Air\Noises\heli_door_01",0.316228,1,30}; @@ -31,6 +30,7 @@ class CH53_DZE : USEC_ch53_E { fuelCapacity = 3849; class eventhandlers { GetIn = "if ((_this select 2) == player) then {MonitorVM = [_this select 0] execvm '\usec_ch53\scripts\ch53_monitor.sqf';};"; - init = "MonitorVM = [_this select 0] execvm '\usec_ch53\scripts\ch53_monitor.sqf';MonitorSFXVM = [_this select 0] execvm '\z\addons\dayz_code\system\CH53\ch53_monitorSFX.sqf';"; + init = "MonitorVM = [_this select 0] execvm '\usec_ch53\scripts\ch53_monitor.sqf';MonitorSFXVM = [_this select 0] execvm '\usec_ch53\scripts\ch53_monitorSFX.sqf';"; + killed = "_this spawn BIS_Effects_EH_Killed;"; }; }; \ No newline at end of file diff --git a/SQF/dayz_code/configVariables.sqf b/SQF/dayz_code/configVariables.sqf index 60c2b3aac..280f355b3 100644 --- a/SQF/dayz_code/configVariables.sqf +++ b/SQF/dayz_code/configVariables.sqf @@ -14,6 +14,7 @@ dayz_tameDogs = false; // Allow taming dogs with raw meat dayz_townGenerator = false; // Spawn vanilla map junk in addition to Epoch DynamicDebris. Only works on Chernarus. dayz_townGeneratorBlackList = [[4053,11668,0],[11463,11349,0],[6344,7806,0],[1606,7803,0],[12944,12766,0],[5075,9733,0],[12060,12638,0]]; // Town generator will not spawn junk within 150m of these positions. DayZ_UseSteamID = true; // Use getPlayerUID instead of getPlayerUIDOld +DZE_NoVehicleExplosions = false; //Disable vehicle explosions to prevent damage to objects by ramming - doesn't work with amphibious pook which you should not use due to other issues DynamicVehicleDamageLow = 0; // Min damage random vehicles can spawn with DynamicVehicleDamageHigh = 100; // Max damage random vehicles can spawn with diff --git a/SQF/dayz_code/system/BIS_Effects/killed.sqf b/SQF/dayz_code/system/BIS_Effects/killed.sqf index 099eac9e2..e239d2327 100644 --- a/SQF/dayz_code/system/BIS_Effects/killed.sqf +++ b/SQF/dayz_code/system/BIS_Effects/killed.sqf @@ -13,38 +13,47 @@ _KillEject = { //leave as local compile for a tiny bit more security [player, "explosion"] spawn player_death; }; }; -if (_v iskindof "helicopter" || _v iskindof "plane") then { - if (player in (crew _v)) then { - [] spawn _KillEject; +if (!DZE_NoVehicleExplosions) then { + if (_v iskindof "helicopter" || _v iskindof "plane") then { + if (player in (crew _v)) then { + [] spawn _KillEject; + }; + //_v setVehicleInit "[this] spawn BIS_Effects_AirDestruction"; + //processInitCommands; //ClearvehicleInit done at end of burn script + ["AirDestruction", _v] call BIS_Effects_globalEvent; }; - //_v setVehicleInit "[this] spawn BIS_Effects_AirDestruction"; - //processInitCommands; //ClearvehicleInit done at end of burn script - ["AirDestruction", _v] call BIS_Effects_globalEvent; -}; -if (_v iskindof "tank") then { - if (player in (crew _v)) then { - [] spawn _KillEject; + if (_v iskindof "tank") then { + if (player in (crew _v)) then { + [] spawn _KillEject; + }; + _int = (fuel _v)*(2+random 2); + _t = time; + //_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_Burn",_int, _t]; - disabled to prepaire for move into engine + //processInitCommands; //ClearvehicleInit done at end of burn script + [_v,_int] spawn BIS_Effects_Secondaries; }; - _int = (fuel _v)*(2+random 2); - _t = time; - //_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_Burn",_int, _t]; - disabled to prepaire for move into engine - //processInitCommands; //ClearvehicleInit done at end of burn script - [_v,_int] spawn BIS_Effects_Secondaries; -}; -if (_v iskindof "car" || _v iskindof "ship")then { - if (player in (crew _v)) then { - [] spawn _KillEject; - }; - _int = (fuel _v)*(2 + random 1); - _t = time; + if (_v iskindof "car" || _v iskindof "ship")then { + if (player in (crew _v)) then { + [] spawn _KillEject; + }; + _int = (fuel _v)*(2 + random 1); + _t = time; - //_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_Burn; ",_int, _t]; - disabled to prepaire for move into engine - //processInitCommands; //ClearvehicleInit done at end of burn script - [_v,_int] spawn BIS_Effects_Secondaries; + //_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_Burn; ",_int, _t]; - disabled to prepaire for move into engine + //processInitCommands; //ClearvehicleInit done at end of burn script + [_v,_int] spawn BIS_Effects_Secondaries; - //Possible initial explosion - if ((random _int)>2.2) then - { - _b = createVehicle ["SmallSecondary", (getPosATL _v), [], 0, "CAN_COLLIDE"]; + //Possible initial explosion + if ((random _int)>2.2) then + { + _b = createVehicle ["SmallSecondary", (getPosATL _v), [], 0, "CAN_COLLIDE"]; + }; + }; +} else { + _isVeh = (_v iskindof "helicopter" || _v iskindof "plane" || _v iskindof "tank" || _v iskindof "car" || _v iskindof "ship"); + if (_isVeh) then { + if (player in (crew _v)) then { + [] spawn _KillEject; + }; }; }; diff --git a/SQF/dayz_code/system/CH53/ch53_monitorSFX.sqf b/SQF/dayz_code/system/CH53/ch53_monitorSFX.sqf deleted file mode 100644 index 59cce53ea..000000000 --- a/SQF/dayz_code/system/CH53/ch53_monitorSFX.sqf +++ /dev/null @@ -1,82 +0,0 @@ -_vehicle = _this select 0; -_wait = 0.5; - -//Initiate Variables - _RampSound = false; - _gearDown = true; - _gearSound = false; - _vehicle setVariable ["HydraulicsFailure",false, false]; - _vehicle setVariable ["EngineFailure",false, false]; - _vehicle setVariable ["AvionicsFailure",false, false]; - -//Overall Event Handlers -_EHDamageIdx = _vehicle addEventHandler ["Dammaged",{ - if ((_this select 2) > 0.8 ) then { - switch (_this select 1) do { - case "mala vrtule": {_this select 0 setVariable ["HydraulicsFailure",true, true];}; - case "velka vrtule": {_this select 0 setVariable ["HydraulicsFailure",true, true];}; - case "motor": {_this select 0 setVariable ["EngineFailure",true, true];}; - case "elektronika": {_this select 0 setVariable ["AvionicsFailure",true, true];}; - }; - }; -}]; - -while {(alive _vehicle)} do { - // SINGLE // Ramp Sound Effect - if((_vehicle animationPhase "ramp_bottom" > 0) && !(_RampSound)) then { - _vehicle say ["ch53_rampdown",5]; - _RampSound = true; - sleep 3; - }; - - // SINGLE // Ramp Sound Effect - if((_vehicle animationPhase "ramp_bottom" < 1) && !(_vehicle animationPhase "ramp_bottom" == 0.56) && (_RampSound)) then { - _vehicle say ["ch53_rampup",5]; - _RampSound = false; - sleep 3; - }; - - // SINGLE // Gear Sound Effect - if((_vehicle animationPhase "gear_nose_1" > 0) && !(_gearSound) && (_gearDown)) then { - _vehicle say ["ch53_gear",5]; - _gearSound = true; - }; - - // SINGLE // Gear Sound Effect - if((_vehicle animationPhase "gear_nose_1" < 1) && (_gearSound) && !(_gearDown)) then { - _vehicle say ["ch53_gear",5]; - _gearSound = false; - }; - - if (player in (crew _vehicle)) then { - // INFO // SINGLE // Gear Down - if((_vehicle animationPhase "gear_nose_1" == 0) && !(_gearDown)) then { - _vehicle vehicleRadio "dws_info_geardown"; - _gearDown = true; - sleep 3; - }; - - // INFO // SINGLE // Gear Up - if((_vehicle animationPhase "gear_nose_1" == 1) && (_gearDown)) then { - _vehicle vehicleRadio "dws_info_gearup"; - _gearDown = false; - sleep 3; - }; - }; - - if(player in (crew _vehicle)) then {sleep _wait;} else {sleep (_wait * 4);}; -}; -if (player in (crew _vehicle) && (!alive _vehicle)) then { - _cancel = false; - { - _SZPos = _x select 0; - _radius = _x select 1; - if ((isInTraderCity || !canbuild) && {(player distance _SZPos) < _radius}) then {_cancel = true;}; - } count DZE_SafeZonePosArray; - if (!_cancel) then { - player action ["Eject",vehicle player]; //eject player so I can get their gear - sleep 0.01; //don't use uisleep here - [player, "explosion"] spawn player_death; - }; -}; -_vehicle removeAllEventHandlers "Dammaged"; \ No newline at end of file