diff --git a/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf b/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf index 5bf6a1ef..71e28501 100644 --- a/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf +++ b/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf @@ -77,8 +77,10 @@ _spawnedGroups pushBack _grp; sleep 30; if (((random 100) <= 25) && !(KP_liberation_guerilla_vehicles isEqualTo [])) then { - _vehicle = (selectRandom KP_liberation_guerilla_vehicles) createVehicle _startpos; - _grp = [_startpos, 2] call F_spawnGuerillaGroup; + private _vehicle = (selectRandom KP_liberation_guerilla_vehicles) createVehicle _startpos; + _vehicle call F_allowCrewInImmobile; + + private _grp = [_startpos, 2] call F_spawnGuerillaGroup; ((units _grp) select 0) moveInDriver _vehicle; ((units _grp) select 1) moveInGunner _vehicle; diff --git a/Missionframework/scripts/shared/fetch_params.sqf b/Missionframework/scripts/shared/fetch_params.sqf index b02adba2..3e5898e8 100644 --- a/Missionframework/scripts/shared/fetch_params.sqf +++ b/Missionframework/scripts/shared/fetch_params.sqf @@ -50,6 +50,7 @@ if(isServer) then { GET_PARAM(KP_liberation_restart, "ServerRestart", 0); GET_PARAM(KP_liberation_respawn_cooldown, "RespawnCooldown", 900); GET_PARAM(KP_liberation_victoryCondition, "VictoryCondition", 0); + GET_PARAM(KP_liberation_allowEnemiesInImmobile, "AllowEnemiesInImmobile", 50); GET_PARAM(KP_liberation_delayDespawnMax, "DelayDespawnMax", 5); GET_PARAM_BOOL(KP_liberation_cr_param_buildings, "CR_Building", 0); diff --git a/Missionframework/scripts/shared/functions/F_kp_allowCrewInImmobile.sqf b/Missionframework/scripts/shared/functions/F_kp_allowCrewInImmobile.sqf new file mode 100644 index 00000000..bfb6defb --- /dev/null +++ b/Missionframework/scripts/shared/functions/F_kp_allowCrewInImmobile.sqf @@ -0,0 +1,25 @@ +/* + F_allowKrewInImmobile + + File: F_kp_allowCrewInImmobile.sqf + Author: veteran29 - https://github.com/veteran29 + Date: 2019-09-05 + Last Update: 2019-09-05 + + Description: + Allows crew in immobile vehicle depending on AllowEnemiesInImmobile parameters. + + Parameter(s): + 0: OBJECT - Vehicle which should allow immobile crew. (Default objNull) + + Returns: + BOOL +*/ +params [ + ["_vehicle", objNull, [objNull]] +]; + +// KP_liberation_allowEnemiesInImmobile (0-50-100) +_vehicle allowCrewInImmobile (random 100 < KP_liberation_allowEnemiesInImmobile); + +true diff --git a/Missionframework/scripts/shared/functions/F_libSpawnVehicle.sqf b/Missionframework/scripts/shared/functions/F_libSpawnVehicle.sqf index 5ef315b0..bc34b943 100644 --- a/Missionframework/scripts/shared/functions/F_libSpawnVehicle.sqf +++ b/Missionframework/scripts/shared/functions/F_libSpawnVehicle.sqf @@ -24,6 +24,7 @@ if ( _classname in opfor_choppers ) then { _newvehicle flyInHeight (100 + (random 200)); } else { _newvehicle = _classname createVehicle _spawnpos; + _newvehicle call F_allowCrewInImmobile; _newvehicle setpos _spawnpos; }; _newvehicle allowdamage false; diff --git a/Missionframework/scripts/shared/liberation_functions.sqf b/Missionframework/scripts/shared/liberation_functions.sqf index 3f2d4bac..f26ed428 100644 --- a/Missionframework/scripts/shared/liberation_functions.sqf +++ b/Missionframework/scripts/shared/liberation_functions.sqf @@ -66,5 +66,6 @@ F_getSaveableParam = compileFinal preprocessFileLineNumbers "scripts\shared\func F_setLoadableViV = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_setLoadableViV.sqf"; F_getNearestViVTransport = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_getNearestViVTransport.sqf"; F_addObjectInit = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_addObjectInit.sqf"; +F_allowCrewInImmobile = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_allowCrewInImmobile.sqf"; F_isRadio = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_isRadio.sqf"; F_createClearance = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_createClearance.sqf"; diff --git a/Missionframework/stringtable.xml b/Missionframework/stringtable.xml index c418b1cd..ea038676 100644 --- a/Missionframework/stringtable.xml +++ b/Missionframework/stringtable.xml @@ -2631,6 +2631,10 @@ Eingeschränkte Zeus Funktionen 제한된 제우스 인터페이스 + + Chance that enemies will stay in immobile/damaged vehicles + Chance, dass Feinde in fahrunfähigen/beschädigten Fahrzeugen verbleiben + Deployment in progress... 고공침투 중... diff --git a/Missionframework/ui/mission_params.hpp b/Missionframework/ui/mission_params.hpp index 39771e09..d14150f6 100644 --- a/Missionframework/ui/mission_params.hpp +++ b/Missionframework/ui/mission_params.hpp @@ -264,6 +264,12 @@ class Params texts[] = { $STR_PARAMS_ENABLED, $STR_PARAMS_DISABLED }; default = 1; }; + class AllowEnemiesInImmobile { + title = $STR_PARAM_ALLOW_ENEMIES_IN_IMMOBILE; + values[] = {0, 25, 50, 75, 100}; + text[] = { $STR_PARAMS_DISABLED, "25%", "50%", "75%", "100%"}; + default = 50; + }; class DelayDespawnMax { title = $STR_PARAM_DELAY_DESPAWN_MAX; values[] = {0,5,10,15,20,25,30}; diff --git a/README.md b/README.md index 9c9d8253..bcd015ba 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,7 @@ class Missions * Added: Parameter to enable/disable the vanilla A3 dynamic fog behavior. Default enabled, so `fucking_set_fog.sqf` isn't running by default. * Added: Parameter to enable/disable limitations on Zeus functionalities. Default enabled to keep old behaviour. * Added: Parameter to decide to start the campaign with a FOB container (default, like before) or a FOB truck. +* Added: Parameter to allow enemies stay in immobile vehicles (default 50% chance). * Added: Sector despawn scaling. The longer sector is activated the longer it de-activates. Configurable as parameter, 5min additional delay max by default. * Added: Korean localization. Thanks to [PanzerKoLee](https://github.com/PanzerKoLee) * Updated: Russian localization. Thanks to [DjHaski](https://github.com/DjHaski)