From 21b193d9e0d4ae77edbb2eab4051b2bebee6e3f7 Mon Sep 17 00:00:00 2001 From: Christian Date: Sat, 7 Oct 2017 18:11:24 +0200 Subject: [PATCH] First part of splitted preset framework --- Missionframework/init.sqf | 12 +- Missionframework/kp_liberation_config.sqf | 27 ++- Missionframework/presets/3cbBAF.sqf | 4 +- Missionframework/presets/apex_tanoa.sqf | 2 +- .../presets/{ => blufor}/custom.sqf | 195 ------------------ Missionframework/presets/civilians/custom.sqf | 43 ++++ .../init_presets.sqf} | 156 ++++++++------ Missionframework/presets/opfor/custom.sqf | 128 ++++++++++++ .../presets/resistance/custom.sqf | 16 ++ Missionframework/presets/rhs.sqf | 4 +- Missionframework/presets/rhs_bw.sqf | 4 +- Missionframework/presets/rhs_takistan.sqf | 2 +- 12 files changed, 311 insertions(+), 282 deletions(-) rename Missionframework/presets/{ => blufor}/custom.sqf (70%) create mode 100644 Missionframework/presets/civilians/custom.sqf rename Missionframework/{scripts/shared/classnames.sqf => presets/init_presets.sqf} (54%) create mode 100644 Missionframework/presets/opfor/custom.sqf create mode 100644 Missionframework/presets/resistance/custom.sqf diff --git a/Missionframework/init.sqf b/Missionframework/init.sqf index c85eecf4..ade2e281 100644 --- a/Missionframework/init.sqf +++ b/Missionframework/init.sqf @@ -6,17 +6,7 @@ if (isDedicated) then {debug_source = "Server";} else {debug_source = name playe [] call compileFinal preprocessFileLineNumbers "scripts\shared\init_sectors.sqf"; [] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf"; [] call compileFinal preprocessFileLineNumbers "kp_liberation_config.sqf"; - -switch (KP_liberation_preset) do { - case 0: {[] call compileFinal preprocessFileLineNumbers "presets\custom.sqf";}; - case 1: {[] call compileFinal preprocessFileLineNumbers "presets\apex_tanoa.sqf";}; - case 2: {[] call compileFinal preprocessFileLineNumbers "presets\rhs.sqf";}; - case 3: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_bw.sqf";}; - case 4: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_takistan.sqf";}; - case 5: {[] call compileFinal preprocessFileLineNumbers "presets\3cbBAF.sqf";}; - default {[] call compileFinal preprocessFileLineNumbers "presets\custom.sqf";}; -}; - +[] call compileFinal preprocessFileLineNumbers "presets\init_presets.sqf"; [] call compileFinal preprocessFileLineNumbers "scripts\shared\classnames.sqf"; [] execVM "GREUH\scripts\GREUH_activate.sqf"; diff --git a/Missionframework/kp_liberation_config.sqf b/Missionframework/kp_liberation_config.sqf index 60f81638..ef7e449e 100644 --- a/Missionframework/kp_liberation_config.sqf +++ b/Missionframework/kp_liberation_config.sqf @@ -22,15 +22,24 @@ KP_liberation_ace_crates = [ "ACE_medicalSupplyCrate_advanced" ]; -/* - Custom unit and arsenal preset settings. -Which units preset should be used? -0 = Default vanilla with RHS USAF and BWMod, both optional (edit the custom.sqf in the presets\ folder to change things for your own versions and tweaks). -1 = Apex vanilla with RHS USAF and BWMod, both optional (edit the apex_tanoa.sqf in the presets\ folder to change things for your own versions and tweaks). -2 = RHS USAF and RHS AFRF. -3 = RHS USAF, RHS AFRF and BWMod. -4 = RHS USAF, RHS AFRF and Project OPFOR (Takistan) -5 = 3cbBAF, RHS USAF and RHS AFRF. */ -KP_liberation_preset = 0; +/* - Custom unit and arsenal preset settings. +If you want to change a preset, it's recommended to set all four presets to 0 and edit the appropriate custom.sqf files in the preset folders.*/ + +/* BLUFOR preset: +0 = custom (default vanilla with many optional mods supported) */ +KP_liberation_preset_blufor = 0; + +/* OPFOR preset: +0 = custom (default vanilla CSAT) */ +KP_liberation_preset_opfor = 0; + +/* Resistance preset: +0 = custom (default vanilla) */ +KP_liberation_preset_resistance = 0; + +/* Civilians preset: +0 = custom (default vanilla) */ +KP_liberation_preset_civilians = 0; /* Which arsenal preset should be used? 0 = Use the default blacklist method (defined below). diff --git a/Missionframework/presets/3cbBAF.sqf b/Missionframework/presets/3cbBAF.sqf index 8cdd9181..08a06715 100644 --- a/Missionframework/presets/3cbBAF.sqf +++ b/Missionframework/presets/3cbBAF.sqf @@ -342,8 +342,8 @@ blufor_squad_para = [ /* - Badguy classnames. All enemy infantry are defined here. */ opfor_officer = "rhs_vdv_officer_armored"; //Officer -opfor_team_leader = "rhs_vdv_sergeant"; //Team Leader -opfor_squad_leader = "rhs_vdv_efreitor"; //Squad Leader +opfor_squad_leader = "rhs_vdv_sergeant"; //Squad Leader +opfor_team_leader = "rhs_vdv_efreitor"; //Team Leader opfor_sentry = "rhs_vdv_rifleman_lite"; //Rifleman (Lite) opfor_rifleman = "rhs_vdv_rifleman"; //Rifleman opfor_rpg = "rhs_vdv_LAT"; //Rifleman (LAT) diff --git a/Missionframework/presets/apex_tanoa.sqf b/Missionframework/presets/apex_tanoa.sqf index ba7493cb..433ebaa1 100644 --- a/Missionframework/presets/apex_tanoa.sqf +++ b/Missionframework/presets/apex_tanoa.sqf @@ -369,8 +369,8 @@ blufor_squad_para = [ /* - Badguy classnames. All enemy infantry are defined here. */ opfor_officer = "O_T_Officer_F"; //Officer -opfor_team_leader = "O_T_Soldier_TL_F"; //Team Leader opfor_squad_leader = "O_T_Soldier_SL_F"; //Squad Leader +opfor_team_leader = "O_T_Soldier_TL_F"; //Team Leader opfor_sentry = "O_T_Soldier_F"; //Rifleman opfor_rifleman = "O_T_Soldier_F"; //Rifleman opfor_rpg = "O_T_Soldier_LAT_F"; //Rifleman (LAT) diff --git a/Missionframework/presets/custom.sqf b/Missionframework/presets/blufor/custom.sqf similarity index 70% rename from Missionframework/presets/custom.sqf rename to Missionframework/presets/blufor/custom.sqf index 64c00bf7..ad5b1554 100644 --- a/Missionframework/presets/custom.sqf +++ b/Missionframework/presets/blufor/custom.sqf @@ -1,5 +1,3 @@ -// If you want more modifications to be supported by this file, let's discuss it on the forums. - // No required mods. // RHS USAF, BWMod, F-15C, F/A-18 are optional (just load the mods on server & client). // Apex & Jets DLC are also included but not required (required only to drive/pilot anything from each DLC inc/ the Tanoa map). @@ -372,197 +370,6 @@ blufor_squad_para = [ "B_soldier_PG_F" ]; -/* - Badguy classnames. -All enemy infantry are defined here. */ -opfor_officer = "O_officer_F"; //Officer -opfor_team_leader = "O_Soldier_TL_F"; //Team Leader -opfor_squad_leader = "O_Soldier_SL_F"; //Squad Leader -opfor_sentry = "O_Soldier_lite_F"; //Rifleman (Lite) -opfor_rifleman = "O_Soldier_F"; //Rifleman -opfor_rpg = "O_Soldier_LAT_F"; //Rifleman (LAT) -opfor_grenadier = "O_Soldier_GL_F"; //Grenadier -opfor_machinegunner = "O_Soldier_AR_F"; //Autorifleman -opfor_heavygunner = "O_HeavyGunner_F"; //Heavy Gunner -opfor_marksman = "O_soldier_M_F"; //Marksman -opfor_sharpshooter = "O_Sharpshooter_F"; //Sharpshooter -opfor_sniper = "O_sniper_F"; //Sniper -opfor_at = "O_Soldier_AT_F"; //AT Specialist -opfor_aa = "O_Soldier_AA_F"; //AA Specialist -opfor_medic = "O_medic_F"; //Combat Life Saver -opfor_engineer = "O_engineer_F"; //Engineer -opfor_paratrooper = "O_soldier_PG_F"; //Paratrooper - -// Enemy vehicles used by secondary objectives. -opfor_mrap = "O_MRAP_02_F"; //Ifrit -opfor_mrap_armed = "O_MRAP_02_hmg_F"; //Ifrit (HMG) -opfor_transport_helo = "O_Heli_Transport_04_bench_F"; //Mi-290 Taru (Bench) -opfor_transport_truck = "O_Truck_03_covered_F"; //Tempest Transport (Covered) -opfor_fuel_truck = "O_Truck_03_fuel_F"; //Tempest Fuel -opfor_ammo_truck = "O_Truck_03_ammo_F"; //Tempest Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; //Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; //Taru Ammo Pod -opfor_flag = "Flag_CSAT_F"; //CSAT Flag - -/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. -Therefore, adding the same value twice or three times means they are more likely to be chosen more often. -Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. */ -militia_squad = [ - "O_soldierU_TL_F", //Team Leader - "O_SoldierU_SL_F", //Squad Leader - "O_soldierU_F", //Rifleman (Lite) - "O_soldierU_F", //Rifleman - "O_soldierU_F", //Rifleman - "O_soldierU_LAT_F", //Rifleman (AT) - "O_SoldierU_GL_F", //Grenadier - "O_soldierU_AR_F", //Autorifleman - "O_soldierU_AR_F", //Autorifleman - "O_soldierU_M_F", //Marksman - "O_soldierU_medic_F", //Medic - "O_engineer_U_F", //Engineer - "O_soldierU_exp_F" //Explosives Specialist -]; - -// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. -militia_vehicles = [ - "O_LSV_02_armed_F" //Qilin (armed) -]; - -// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ - "O_MRAP_02_hmg_F", //Ifrit (HMG) - "O_MRAP_02_hmg_F", //Ifrit (GMG) - "O_MRAP_02_gmg_F", //Ifrit (GMG) - "O_APC_Tracked_02_cannon_F", //BTR-K Kamysh - "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris - "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris - "O_MBT_02_cannon_F", //T-100 Varsuk - "O_MBT_02_cannon_F" //T-100 Varsuk -]; - -// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ - "O_MRAP_02_hmg_F", //Ifrit (HMG) - "O_MRAP_02_hmg_F", //Ifrit (HMG) - "O_APC_Wheeled_02_rcws_F", //MSE-3 Marid - "O_APC_Tracked_02_cannon_F" //BTR-K Kamysh -]; - -// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ - "O_MRAP_02_hmg_F", //Ifrit (HMG) - "O_MRAP_02_gmg_F", //Ifrit (GMG) - "O_MRAP_02_gmg_F", //Ifrit (GMG) - "O_Truck_03_transport_F", //Tempest Transport - "O_Truck_03_covered_F", //Tempest Transport (Covered) - "O_APC_Tracked_02_cannon_F", //BTR-K Kamysh - "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris - "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris - "O_MBT_02_cannon_F", //T-100 Varsuk - "O_MBT_02_cannon_F", //T-100 Varsuk - "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) - "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) - "O_Heli_Transport_04_bench_F", //Mi-290 Taru (Bench) - "O_Heli_Attack_02_dynamicLoadout_F" //Mi-48 Kajman -]; - -// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ - "O_MRAP_02_hmg_F", //Ifrit (HMG) - "O_MRAP_02_hmg_F", //Ifrit (HMG) - "O_Truck_03_transport_F", //Tempest Transport - "O_APC_Wheeled_02_rcws_F", //MSE-3 Marid - "O_APC_Tracked_02_cannon_F", //BTR-K Kamysh - "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris - "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) - "O_Heli_Transport_04_bench_F" //Mi-290 Taru (Bench) -]; - -/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. -If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ - "O_Truck_03_transport_F", //Tempest Transport - "O_Truck_03_covered_F", //Tempest Transport (Covered) - "O_APC_Wheeled_02_rcws_F", //MSE-3 Marid - "O_Heli_Transport_04_bench_F", //Mi-290 Taru (Bench) - "O_Heli_Light_02_dynamicLoadout_F" //Po-30 Orca (Armed) -]; - -// Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ - "O_Heli_Transport_04_bench_F", //Mi-290 Taru (Bench) - "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) - "O_Heli_Attack_02_dynamicLoadout_F" //Mi-48 Kajman -]; - -// Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ - "O_Plane_CAS_02_dynamicLoadout_F", //To-199 Neophron (CAS) - "O_Plane_Fighter_02_F" //To-201 Shikra -]; - -/* - Guerilla forces -classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation -Standard loadout (except the uniform) of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ - "I_G_Soldier_AR_F", - "I_G_engineer_F", - "I_G_officer_F", - "I_G_medic_F", - "I_G_Soldier_F", - "I_G_Soldier_LAT_F", - "I_G_Soldier_M_F", - "I_G_Soldier_SL_F" -]; - -KP_liberation_guerilla_vehicles = [ - "I_G_Offroad_01_armed_F" -]; - -/* - Other various mission classnames. -Civilian classnames. */ -civilians = [ - "C_Man_Fisherman_01_F", - "C_man_w_worker_F", - "C_man_1_1_F", - "C_man_p_beggar_F", - "C_Man_Messenger_01_F", - "C_man_hunter_1_F", - "C_journalist_F", - "C_Journalist_01_War_F", - "C_man_shorts_2_F", - "C_Man_UtilityWorker_01_F", - "C_man_1", - "C_Man_casual_1_F", - "C_Man_casual_2_F", - "C_Man_casual_3_F", - "C_Man_casual_4_F", - "C_Man_casual_5_F", - "C_Man_casual_6_F", - "C_man_polo_1_F", - "C_man_polo_2_F", - "C_man_polo_3_F", - "C_man_polo_4_F", - "C_man_polo_5_F", - "C_man_polo_6_F" -]; - -// Civilian vehicle classnames. -civilian_vehicles = [ - "C_Quadbike_01_F", - "C_Hatchback_01_F", - "C_Hatchback_01_sport_F", - "C_Offroad_01_F", - "C_Offroad_01_repair_F", - "C_SUV_01_F", - "C_Van_01_fuel_F", - "C_Van_01_transport_F", - "C_Van_01_box_F", - "C_Truck_02_fuel_F", - "C_Truck_02_transport_F", - "C_Truck_02_covered_F", - "C_Truck_02_box_F" -]; - // Elite vehicles that should be unlocked through military base capture. elite_vehicles = [ "rhsusf_mkvsoc", //Mk.V SOCOM @@ -591,5 +398,3 @@ elite_vehicles = [ "B_Plane_Fighter_01_Stealth_F", //F/A-181 Black Wasp II (Stealth) "B_T_VTOL_01_armed_F" //V-44 X Blackfish (Armed) ]; - -if (KP_liberation_debug) then {private _text = format ["[KP LIBERATION] [DEBUG] Unit preset %1 intitialized for: %2", KP_liberation_preset, debug_source];_text remoteExec ["diag_log",2];}; diff --git a/Missionframework/presets/civilians/custom.sqf b/Missionframework/presets/civilians/custom.sqf new file mode 100644 index 00000000..523c759d --- /dev/null +++ b/Missionframework/presets/civilians/custom.sqf @@ -0,0 +1,43 @@ +// Civilian classnames. +civilians = [ + "C_Man_Fisherman_01_F", + "C_man_w_worker_F", + "C_man_1_1_F", + "C_man_p_beggar_F", + "C_Man_Messenger_01_F", + "C_man_hunter_1_F", + "C_journalist_F", + "C_Journalist_01_War_F", + "C_man_shorts_2_F", + "C_Man_UtilityWorker_01_F", + "C_man_1", + "C_Man_casual_1_F", + "C_Man_casual_2_F", + "C_Man_casual_3_F", + "C_Man_casual_4_F", + "C_Man_casual_5_F", + "C_Man_casual_6_F", + "C_man_polo_1_F", + "C_man_polo_2_F", + "C_man_polo_3_F", + "C_man_polo_4_F", + "C_man_polo_5_F", + "C_man_polo_6_F" +]; + +// Civilian vehicle classnames. +civilian_vehicles = [ + "C_Quadbike_01_F", + "C_Hatchback_01_F", + "C_Hatchback_01_sport_F", + "C_Offroad_01_F", + "C_Offroad_01_repair_F", + "C_SUV_01_F", + "C_Van_01_fuel_F", + "C_Van_01_transport_F", + "C_Van_01_box_F", + "C_Truck_02_fuel_F", + "C_Truck_02_transport_F", + "C_Truck_02_covered_F", + "C_Truck_02_box_F" +]; \ No newline at end of file diff --git a/Missionframework/scripts/shared/classnames.sqf b/Missionframework/presets/init_presets.sqf similarity index 54% rename from Missionframework/scripts/shared/classnames.sqf rename to Missionframework/presets/init_presets.sqf index 4bf7213a..03ea4211 100644 --- a/Missionframework/scripts/shared/classnames.sqf +++ b/Missionframework/presets/init_presets.sqf @@ -1,6 +1,40 @@ -// !! IF YOU WANT TO EDIT THIS FOR MODDING PURPOSES, PLEASE USE PRESETS/CUSTOM.SQF INSTEAD !! -// If you know what you're doing then sure, proceed :) +switch (KP_liberation_preset_blufor) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\apex_tanoa.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\rhs.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_bw.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_takistan.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\3cbBAF.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\blufor\custom.sqf";}; +}; +switch (KP_liberation_preset_opfor) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\apex_tanoa.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\rhs.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_bw.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_takistan.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\3cbBAF.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\opfor\custom.sqf";}; +}; + +switch (KP_liberation_preset_resistance) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\apex_tanoa.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\rhs.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_bw.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_takistan.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\3cbBAF.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\resistance\custom.sqf";}; +}; + +switch (KP_liberation_preset_civilians) do { + case 1: {[] call compileFinal preprocessFileLineNumbers "presets\apex_tanoa.sqf";}; + case 2: {[] call compileFinal preprocessFileLineNumbers "presets\rhs.sqf";}; + case 3: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_bw.sqf";}; + case 4: {[] call compileFinal preprocessFileLineNumbers "presets\rhs_takistan.sqf";}; + case 5: {[] call compileFinal preprocessFileLineNumbers "presets\3cbBAF.sqf";}; + default {[] call compileFinal preprocessFileLineNumbers "presets\civilians\custom.sqf";}; +}; + +// Prices for the blufor infantry squads (supplies, ammo, fuel) squads = [ [blufor_squad_inf_light,200,0,0], [blufor_squad_inf,300,0,0], @@ -10,63 +44,7 @@ squads = [ [blufor_squad_para,200,0,0] ]; -infantry_units = [ infantry_units ] call F_filterMods; -light_vehicles = [ light_vehicles ] call F_filterMods; -heavy_vehicles = [ heavy_vehicles ] call F_filterMods; -air_vehicles = [ air_vehicles ] call F_filterMods; -support_vehicles = [ support_vehicles ] call F_filterMods; -static_vehicles = [ static_vehicles ] call F_filterMods; -buildings = [ buildings ] call F_filterMods; -build_lists = [[],infantry_units,light_vehicles,heavy_vehicles,air_vehicles,static_vehicles,buildings,support_vehicles,squads]; -KP_liberation_storage_buildings = [KP_liberation_small_storage_building,KP_liberation_large_storage_building]; -KP_liberation_crates = [KP_liberation_supply_crate,KP_liberation_ammo_crate,KP_liberation_fuel_crate]; -KP_liberation_upgrade_buildings = [KP_liberation_recycle_building,KP_liberation_air_vehicle_building,KP_liberation_heli_slot_building,KP_liberation_plane_slot_building]; -KP_liberation_air_slots = [KP_liberation_heli_slot_building,KP_liberation_plane_slot_building]; -militia_squad = [ militia_squad , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -militia_vehicles = [ militia_vehicles , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_vehicles = [ opfor_vehicles , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_vehicles_low_intensity = [ opfor_vehicles_low_intensity , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_battlegroup_vehicles = [ opfor_battlegroup_vehicles , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_battlegroup_vehicles_low_intensity = [ opfor_battlegroup_vehicles_low_intensity , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_troup_transports = [ opfor_troup_transports , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_choppers = [ opfor_choppers , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -opfor_air = [ opfor_air , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -civilians = [ civilians , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -civilian_vehicles = [ civilian_vehicles , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -military_alphabet = ["Alpha","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-Ray","Yankee","Zulu"]; -land_vehicles_classnames = (opfor_vehicles + militia_vehicles); -opfor_squad_low_intensity = [opfor_team_leader,opfor_machinegunner,opfor_medic,opfor_rpg,opfor_sentry,opfor_sentry,opfor_sentry,opfor_sentry]; -opfor_squad_8_standard = [opfor_squad_leader,opfor_team_leader,opfor_machinegunner,opfor_heavygunner,opfor_medic,opfor_marksman,opfor_grenadier,opfor_rpg]; -opfor_squad_8_infkillers = [opfor_squad_leader,opfor_machinegunner,opfor_machinegunner,opfor_heavygunner,opfor_medic,opfor_marksman,opfor_sharpshooter,opfor_sniper]; -opfor_squad_8_tankkillers = [opfor_squad_leader,opfor_medic,opfor_machinegunner,opfor_rpg,opfor_rpg,opfor_at,opfor_at,opfor_at]; -opfor_squad_8_airkillers = [opfor_squad_leader,opfor_medic,opfor_machinegunner,opfor_rpg,opfor_rpg,opfor_aa,opfor_aa,opfor_aa]; -friendly_infantry_classnames = []; -{if (!(_x in friendly_infantry_classnames)) then {friendly_infantry_classnames pushBack _x};} forEach (blufor_squad_inf_light + blufor_squad_inf + blufor_squad_at + blufor_squad_aa + blufor_squad_recon + blufor_squad_para); -{if (!((_x select 0) in friendly_infantry_classnames)) then {friendly_infantry_classnames pushBack (_x select 0)};} forEach infantry_units; -all_resistance_troops = [] + militia_squad; -all_hostile_classnames = (land_vehicles_classnames + opfor_air + opfor_choppers + opfor_troup_transports + opfor_vehicles_low_intensity); -{ land_vehicles_classnames pushback (_x select 0); } foreach (heavy_vehicles + light_vehicles); -air_vehicles_classnames = [] + opfor_choppers; -KP_liberation_friendly_air_classnames = []; -{air_vehicles_classnames pushback (_x select 0); KP_liberation_friendly_air_classnames pushback (_x select 0);} foreach air_vehicles; -KP_liberation_friendly_air_classnames = KP_liberation_friendly_air_classnames - uavs; -KP_liberation_static_classnames = []; -{KP_liberation_static_classnames pushback (_x select 0);} forEach static_vehicles; -ai_resupply_sources = ai_resupply_sources + [Respawn_truck_typename, huron_typename, Arsenal_typename]; -markers_reset = [99999,99999,0]; -zeropos = [0,0,0]; -squads_names = [ localize "STR_LIGHT_RIFLE_SQUAD", localize "STR_RIFLE_SQUAD", localize "STR_AT_SQUAD", localize "STR_AA_SQUAD", localize "STR_RECON_SQUAD", localize "STR_PARA_SQUAD" ]; -ammobox_transports_typenames = []; -{ ammobox_transports_typenames pushback (_x select 0) } foreach box_transport_config; -ammobox_transports_typenames = [ ammobox_transports_typenames , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -elite_vehicles = [ elite_vehicles , { [ _x ] call F_checkClass } ] call BIS_fnc_conditionalSelect; -original_resistance = ["O_G_Soldier_TL_F","O_G_Soldier_SL_F","O_G_Soldier_lite_F","O_G_Soldier_F","O_G_Soldier_F","O_G_Soldier_LAT_F","O_G_Soldier_GL_F","O_G_Soldier_AR_F","O_G_Soldier_AR_F","O_G_Soldier_M_F","O_G_engineer_F","O_G_Soldier_exp_F"]; -opfor_infantry = [opfor_sentry,opfor_rifleman,opfor_grenadier,opfor_squad_leader,opfor_team_leader,opfor_marksman,opfor_machinegunner,opfor_heavygunner,opfor_medic,opfor_rpg,opfor_at,opfor_aa,opfor_officer,opfor_sharpshooter,opfor_sniper,opfor_engineer]; -GRLIB_intel_file = "Land_File1_F"; -GRLIB_intel_laptop = "Land_Laptop_device_F"; -GRLIB_sar_wreck = "Land_Wreck_Heli_Attack_01_F"; -GRLIB_sar_fire = "test_EmptyObjectForFireBig"; - +// Classnames of objects which should be ignored when building GRLIB_ignore_colisions_when_building = [ "Land_HelipadSquare_F", "Land_TentHangar_V1_F", @@ -112,3 +90,63 @@ GRLIB_ignore_colisions_when_building = [ "ACE_friesGantryReverse", //ACE FRIES "ACE_friesGantry" //ACE FRIES ]; + + + +/* !!! DO NOT EDIT BELOW !!! */ + +infantry_units = [infantry_units] call F_filterMods; +light_vehicles = [light_vehicles] call F_filterMods; +heavy_vehicles = [heavy_vehicles] call F_filterMods; +air_vehicles = [air_vehicles] call F_filterMods; +support_vehicles = [support_vehicles] call F_filterMods; +static_vehicles = [static_vehicles] call F_filterMods; +buildings = [buildings] call F_filterMods; +build_lists = [[],infantry_units,light_vehicles,heavy_vehicles,air_vehicles,static_vehicles,buildings,support_vehicles,squads]; +KP_liberation_storage_buildings = [KP_liberation_small_storage_building,KP_liberation_large_storage_building]; +KP_liberation_crates = [KP_liberation_supply_crate,KP_liberation_ammo_crate,KP_liberation_fuel_crate]; +KP_liberation_upgrade_buildings = [KP_liberation_recycle_building,KP_liberation_air_vehicle_building,KP_liberation_heli_slot_building,KP_liberation_plane_slot_building]; +KP_liberation_air_slots = [KP_liberation_heli_slot_building,KP_liberation_plane_slot_building]; +militia_squad = [militia_squad, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +militia_vehicles = [militia_vehicles, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_vehicles = [opfor_vehicles, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_vehicles_low_intensity = [opfor_vehicles_low_intensity, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_battlegroup_vehicles = [opfor_battlegroup_vehicles, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_battlegroup_vehicles_low_intensity = [opfor_battlegroup_vehicles_low_intensity, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_troup_transports = [opfor_troup_transports, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_choppers = [opfor_choppers, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +opfor_air = [opfor_air, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +civilians = [civilians, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +civilian_vehicles = [civilian_vehicles, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +military_alphabet = ["Alpha","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-Ray","Yankee","Zulu"]; +land_vehicles_classnames = (opfor_vehicles + militia_vehicles); +opfor_squad_8_standard = [opfor_squad_leader,opfor_team_leader,opfor_machinegunner,opfor_heavygunner,opfor_medic,opfor_marksman,opfor_grenadier,opfor_rpg]; +opfor_squad_8_infkillers = [opfor_squad_leader,opfor_machinegunner,opfor_machinegunner,opfor_heavygunner,opfor_medic,opfor_marksman,opfor_sharpshooter,opfor_sniper]; +opfor_squad_8_tankkillers = [opfor_squad_leader,opfor_medic,opfor_machinegunner,opfor_rpg,opfor_rpg,opfor_at,opfor_at,opfor_at]; +opfor_squad_8_airkillers = [opfor_squad_leader,opfor_medic,opfor_machinegunner,opfor_rpg,opfor_rpg,opfor_aa,opfor_aa,opfor_aa]; +friendly_infantry_classnames = []; +{if (!(_x in friendly_infantry_classnames)) then {friendly_infantry_classnames pushBack _x};} forEach (blufor_squad_inf_light + blufor_squad_inf + blufor_squad_at + blufor_squad_aa + blufor_squad_recon + blufor_squad_para); +{if (!((_x select 0) in friendly_infantry_classnames)) then {friendly_infantry_classnames pushBack (_x select 0)};} forEach infantry_units; +all_resistance_troops = [] + militia_squad; +all_hostile_classnames = (land_vehicles_classnames + opfor_air + opfor_choppers + opfor_troup_transports + opfor_vehicles_low_intensity); +{ land_vehicles_classnames pushback (_x select 0); } foreach (heavy_vehicles + light_vehicles); +air_vehicles_classnames = [] + opfor_choppers; +KP_liberation_friendly_air_classnames = []; +{air_vehicles_classnames pushback (_x select 0); KP_liberation_friendly_air_classnames pushback (_x select 0);} foreach air_vehicles; +KP_liberation_friendly_air_classnames = KP_liberation_friendly_air_classnames - uavs; +KP_liberation_static_classnames = []; +{KP_liberation_static_classnames pushback (_x select 0);} forEach static_vehicles; +ai_resupply_sources = ai_resupply_sources + [Respawn_truck_typename, huron_typename, Arsenal_typename]; +markers_reset = [99999,99999,0]; +zeropos = [0,0,0]; +squads_names = [localize "STR_LIGHT_RIFLE_SQUAD", localize "STR_RIFLE_SQUAD", localize "STR_AT_SQUAD", localize "STR_AA_SQUAD", localize "STR_RECON_SQUAD", localize "STR_PARA_SQUAD"]; +ammobox_transports_typenames = []; +{ammobox_transports_typenames pushback (_x select 0)} foreach box_transport_config; +ammobox_transports_typenames = [ammobox_transports_typenames, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +elite_vehicles = [elite_vehicles, {[_x] call F_checkClass}] call BIS_fnc_conditionalSelect; +original_resistance = ["O_G_Soldier_TL_F","O_G_Soldier_SL_F","O_G_Soldier_lite_F","O_G_Soldier_F","O_G_Soldier_F","O_G_Soldier_LAT_F","O_G_Soldier_GL_F","O_G_Soldier_AR_F","O_G_Soldier_AR_F","O_G_Soldier_M_F","O_G_engineer_F","O_G_Soldier_exp_F"]; +opfor_infantry = [opfor_sentry,opfor_rifleman,opfor_grenadier,opfor_squad_leader,opfor_team_leader,opfor_marksman,opfor_machinegunner,opfor_heavygunner,opfor_medic,opfor_rpg,opfor_at,opfor_aa,opfor_officer,opfor_sharpshooter,opfor_sniper,opfor_engineer]; +GRLIB_intel_file = "Land_File1_F"; +GRLIB_intel_laptop = "Land_Laptop_device_F"; +GRLIB_sar_wreck = "Land_Wreck_Heli_Attack_01_F"; +GRLIB_sar_fire = "test_EmptyObjectForFireBig"; diff --git a/Missionframework/presets/opfor/custom.sqf b/Missionframework/presets/opfor/custom.sqf new file mode 100644 index 00000000..b7a6bf34 --- /dev/null +++ b/Missionframework/presets/opfor/custom.sqf @@ -0,0 +1,128 @@ +// Enemy infantry classes +opfor_officer = "O_officer_F"; //Officer +opfor_squad_leader = "O_Soldier_SL_F"; //Squad Leader +opfor_team_leader = "O_Soldier_TL_F"; //Team Leader +opfor_sentry = "O_Soldier_lite_F"; //Rifleman (Lite) +opfor_rifleman = "O_Soldier_F"; //Rifleman +opfor_rpg = "O_Soldier_LAT_F"; //Rifleman (LAT) +opfor_grenadier = "O_Soldier_GL_F"; //Grenadier +opfor_machinegunner = "O_Soldier_AR_F"; //Autorifleman +opfor_heavygunner = "O_HeavyGunner_F"; //Heavy Gunner +opfor_marksman = "O_soldier_M_F"; //Marksman +opfor_sharpshooter = "O_Sharpshooter_F"; //Sharpshooter +opfor_sniper = "O_sniper_F"; //Sniper +opfor_at = "O_Soldier_AT_F"; //AT Specialist +opfor_aa = "O_Soldier_AA_F"; //AA Specialist +opfor_medic = "O_medic_F"; //Combat Life Saver +opfor_engineer = "O_engineer_F"; //Engineer +opfor_paratrooper = "O_soldier_PG_F"; //Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "O_MRAP_02_F"; //Ifrit +opfor_mrap_armed = "O_MRAP_02_hmg_F"; //Ifrit (HMG) +opfor_transport_helo = "O_Heli_Transport_04_bench_F"; //Mi-290 Taru (Bench) +opfor_transport_truck = "O_Truck_03_covered_F"; //Tempest Transport (Covered) +opfor_fuel_truck = "O_Truck_03_fuel_F"; //Tempest Fuel +opfor_ammo_truck = "O_Truck_03_ammo_F"; //Tempest Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; //Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; //Taru Ammo Pod +opfor_flag = "Flag_CSAT_F"; //CSAT Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + + +// Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. */ +militia_squad = [ + "O_soldierU_TL_F", //Team Leader + "O_SoldierU_SL_F", //Squad Leader + "O_soldierU_F", //Rifleman (Lite) + "O_soldierU_F", //Rifleman + "O_soldierU_F", //Rifleman + "O_soldierU_LAT_F", //Rifleman (AT) + "O_SoldierU_GL_F", //Grenadier + "O_soldierU_AR_F", //Autorifleman + "O_soldierU_AR_F", //Autorifleman + "O_soldierU_M_F", //Marksman + "O_soldierU_medic_F", //Medic + "O_engineer_U_F", //Engineer + "O_soldierU_exp_F" //Explosives Specialist +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. +militia_vehicles = [ + "O_LSV_02_armed_F" //Qilin (armed) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "O_MRAP_02_hmg_F", //Ifrit (HMG) + "O_MRAP_02_hmg_F", //Ifrit (GMG) + "O_MRAP_02_gmg_F", //Ifrit (GMG) + "O_APC_Tracked_02_cannon_F", //BTR-K Kamysh + "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris + "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris + "O_MBT_02_cannon_F", //T-100 Varsuk + "O_MBT_02_cannon_F" //T-100 Varsuk +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "O_MRAP_02_hmg_F", //Ifrit (HMG) + "O_MRAP_02_hmg_F", //Ifrit (HMG) + "O_APC_Wheeled_02_rcws_F", //MSE-3 Marid + "O_APC_Tracked_02_cannon_F" //BTR-K Kamysh +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "O_MRAP_02_hmg_F", //Ifrit (HMG) + "O_MRAP_02_gmg_F", //Ifrit (GMG) + "O_MRAP_02_gmg_F", //Ifrit (GMG) + "O_Truck_03_transport_F", //Tempest Transport + "O_Truck_03_covered_F", //Tempest Transport (Covered) + "O_APC_Tracked_02_cannon_F", //BTR-K Kamysh + "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris + "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris + "O_MBT_02_cannon_F", //T-100 Varsuk + "O_MBT_02_cannon_F", //T-100 Varsuk + "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) + "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) + "O_Heli_Transport_04_bench_F", //Mi-290 Taru (Bench) + "O_Heli_Attack_02_dynamicLoadout_F" //Mi-48 Kajman +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "O_MRAP_02_hmg_F", //Ifrit (HMG) + "O_MRAP_02_hmg_F", //Ifrit (HMG) + "O_Truck_03_transport_F", //Tempest Transport + "O_APC_Wheeled_02_rcws_F", //MSE-3 Marid + "O_APC_Tracked_02_cannon_F", //BTR-K Kamysh + "O_APC_Tracked_02_AA_F", //ZSU-39 Tigris + "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) + "O_Heli_Transport_04_bench_F" //Mi-290 Taru (Bench) +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "O_Truck_03_transport_F", //Tempest Transport + "O_Truck_03_covered_F", //Tempest Transport (Covered) + "O_APC_Wheeled_02_rcws_F", //MSE-3 Marid + "O_Heli_Transport_04_bench_F", //Mi-290 Taru (Bench) + "O_Heli_Light_02_dynamicLoadout_F" //Po-30 Orca (Armed) +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "O_Heli_Transport_04_bench_F", //Mi-290 Taru (Bench) + "O_Heli_Light_02_dynamicLoadout_F", //Po-30 Orca (Armed) + "O_Heli_Attack_02_dynamicLoadout_F" //Mi-48 Kajman +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "O_Plane_CAS_02_dynamicLoadout_F", //To-199 Neophron (CAS) + "O_Plane_Fighter_02_F" //To-201 Shikra +]; \ No newline at end of file diff --git a/Missionframework/presets/resistance/custom.sqf b/Missionframework/presets/resistance/custom.sqf new file mode 100644 index 00000000..676931c1 --- /dev/null +++ b/Missionframework/presets/resistance/custom.sqf @@ -0,0 +1,16 @@ +/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation +Standard loadout (except the uniform) of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ +KP_liberation_guerilla_units = [ + "I_G_Soldier_AR_F", + "I_G_engineer_F", + "I_G_officer_F", + "I_G_medic_F", + "I_G_Soldier_F", + "I_G_Soldier_LAT_F", + "I_G_Soldier_M_F", + "I_G_Soldier_SL_F" +]; + +KP_liberation_guerilla_vehicles = [ + "I_G_Offroad_01_armed_F" +]; \ No newline at end of file diff --git a/Missionframework/presets/rhs.sqf b/Missionframework/presets/rhs.sqf index 7caa6dd6..57563b6c 100644 --- a/Missionframework/presets/rhs.sqf +++ b/Missionframework/presets/rhs.sqf @@ -331,8 +331,8 @@ blufor_squad_para = [ /* - Badguy classnames. All enemy infantry are defined here. */ opfor_officer = "rhs_msv_emr_officer"; //Officer -opfor_team_leader = "rhs_msv_emr_sergeant"; //Team Leader -opfor_squad_leader = "rhs_msv_emr_efreitor"; //Squad Leader +opfor_squad_leader = "rhs_msv_emr_sergeant"; //Squad Leader +opfor_team_leader = "rhs_msv_emr_efreitor"; //Team Leader opfor_sentry = "rhs_msv_emr_rifleman"; //Rifleman (Lite) opfor_rifleman = "rhs_msv_emr_rifleman"; //Rifleman opfor_rpg = "rhs_msv_emr_LAT"; //Rifleman (LAT) diff --git a/Missionframework/presets/rhs_bw.sqf b/Missionframework/presets/rhs_bw.sqf index 16ca6814..8c01db22 100644 --- a/Missionframework/presets/rhs_bw.sqf +++ b/Missionframework/presets/rhs_bw.sqf @@ -336,8 +336,8 @@ blufor_squad_para = [ /* - Badguy classnames. All enemy infantry are defined here. */ opfor_officer = "rhs_msv_emr_officer"; //Officer -opfor_team_leader = "rhs_msv_emr_sergeant"; //Team Leader -opfor_squad_leader = "rhs_msv_emr_efreitor"; //Squad Leader +opfor_squad_leader = "rhs_msv_emr_sergeant"; //Squad Leader +opfor_team_leader = "rhs_msv_emr_efreitor"; //Team Leader opfor_sentry = "rhs_msv_emr_rifleman"; //Rifleman (Lite) opfor_rifleman = "rhs_msv_emr_rifleman"; //Rifleman opfor_rpg = "rhs_msv_emr_LAT"; //Rifleman (LAT) diff --git a/Missionframework/presets/rhs_takistan.sqf b/Missionframework/presets/rhs_takistan.sqf index 146f3b76..afbc6d1c 100644 --- a/Missionframework/presets/rhs_takistan.sqf +++ b/Missionframework/presets/rhs_takistan.sqf @@ -327,8 +327,8 @@ blufor_squad_para = [ /* - Badguy classnames. All enemy infantry are defined here. */ opfor_officer = "LOP_TKA_Infantry_Officer"; //Officer -opfor_team_leader = "LOP_TKA_Infantry_TL"; //Team Leader opfor_squad_leader = "LOP_TKA_Infantry_SL"; //Squad Leader +opfor_team_leader = "LOP_TKA_Infantry_TL"; //Team Leader opfor_sentry = "LOP_TKA_Infantry_Rifleman"; //Rifleman (Lite) opfor_rifleman = "LOP_TKA_Infantry_Rifleman_2"; //Rifleman opfor_rpg = "LOP_TKA_Infantry_Rifleman_3"; //Rifleman (LAT)