From f28e3670c94971ea94280678759cf339eb526afa Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Sun, 6 Dec 2020 19:43:37 -0700 Subject: [PATCH 01/27] Small pathing loop change Using move instead of doMove to try and encourcage the AI more. --- Functions/Other/fn_pathingLoop.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Functions/Other/fn_pathingLoop.sqf b/Functions/Other/fn_pathingLoop.sqf index 804bdbe4..71cbf43b 100644 --- a/Functions/Other/fn_pathingLoop.sqf +++ b/Functions/Other/fn_pathingLoop.sqf @@ -135,7 +135,7 @@ while {sleep _timeBetweenChecks; (_groupToCheck getVariable [LOOP_VAR_NAME,false //_groupLeader setPos (selectRandom BLWK_infantrySpawnPositions); _groupLeader setPos ([BLWK_mainCrate, 75, 125, 2, 0] call BIS_fnc_findSafePos); sleep 1; - [_groupLeader,position BLWK_mainCrate] remoteExecCall ["doMove",_groupLeader]; + [_groupLeader,position BLWK_mainCrate] remoteExecCall ["move",_groupLeader]; }; }; }; \ No newline at end of file From dad53f609b22c9d8b0544aeaaf651733afdbe199 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Sun, 6 Dec 2020 19:44:31 -0700 Subject: [PATCH 02/27] Fix #66 : If no respawns are left and players clear wave, dead players do not respawn --- Functions/Waves/fn_endWave.sqf | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Functions/Waves/fn_endWave.sqf b/Functions/Waves/fn_endWave.sqf index c43339c1..e7582f44 100644 --- a/Functions/Waves/fn_endWave.sqf +++ b/Functions/Waves/fn_endWave.sqf @@ -56,16 +56,20 @@ private "_playerTemp"; _players apply { _playerTemp = _x; - if (lifeState _playerTemp == "DEAD") exitWith { - [_playerTemp] remoteExec ["forceRespawn",_playerTemp]; - }; - if (lifeState _playerTemp == "INCAPACITATED") then { - if (BLWK_dontUseRevive) then { - if (BLWK_ACELoaded) then { - [_playerTemp] remoteExecCall ["ace_medical_treatment_fnc_fullHealLocal",_playerTemp]; + if (!alive _playerTemp) then { + // add a single respawn ticket for each dead unit + [BLUFOR,1] call BIS_fnc_respawnTickets; + [0] remoteExecCall ["setPlayerRespawnTime",_playerTemp]; + [_playerTemp] remoteExecCall ["forceRespawn",_playerTemp]; + } else { + if (lifeState _playerTemp == "INCAPACITATED") then { + if (BLWK_dontUseRevive) then { + if (BLWK_ACELoaded) then { + [_playerTemp] remoteExecCall ["ace_medical_treatment_fnc_fullHealLocal",_playerTemp]; + }; + } else { + ["BLWK_reviveOnStateVar", 1, _playerTemp] remoteExecCall ["BIS_fnc_reviveOnState",_playerTemp]; }; - } else { - ["BLWK_reviveOnStateVar", 1, _playerTemp] remoteExecCall ["BIS_fnc_reviveOnState",_playerTemp]; }; }; }; From 81d61df689edc89e701a0a1f0f933d984c498b38 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Mon, 7 Dec 2020 19:44:19 -0700 Subject: [PATCH 03/27] Fix #275 : Add RHS GREF Support --- .../Init Functions/fn_prepareUnitClasses.sqf | 1 + Headers/Faction Headers/Define Factions.hpp | 20 +++- .../Unit Tables/RHS_GREF Unit Tables.hpp | 110 ++++++++++++++++++ 3 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp diff --git a/Functions/Init Functions/fn_prepareUnitClasses.sqf b/Functions/Init Functions/fn_prepareUnitClasses.sqf index 65b11f52..d753ace8 100644 --- a/Functions/Init Functions/fn_prepareUnitClasses.sqf +++ b/Functions/Init Functions/fn_prepareUnitClasses.sqf @@ -6,6 +6,7 @@ #include "..\..\Headers\Faction Headers\Unit Tables\RHS_AFRF Unit Tables.hpp" #include "..\..\Headers\Faction Headers\Unit Tables\RHS_USAF Unit Tables.hpp" #include "..\..\Headers\Faction Headers\Unit Tables\Z&DUnitTables.hpp" +#include "..\..\Headers\Faction Headers\Unit Tables\RHS_GREF Unit Tables.hpp" /* ---------------------------------------------------------------------------- Function: BLWK_fnc_prepareUnitClasses diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index 7a84a88b..94772d5d 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -59,7 +59,13 @@ 57,\ 58,\ 59,\ - 60 + 60,\ + 61,\ + 62,\ + 63,\ + 64,\ + 65,\ + 66 #define FACTION_STRINGS \ "VANILLA - NATO", \ @@ -107,6 +113,12 @@ "RHS AFRF - Russia VMF (RECON)", \ "RHS AFRF - Russia VMF (Flora)", \ "RHS AFRF - Russia VMF (OSN)", \ + "RHS GREF - Horizon Islands Defence Force", \ + "RHS GREF - CDF Guard", \ + "RHS GREF - CDF Paratroopers", \ + "RHS GREF - CDF", \ + "RHS GREF - ChDKZ", \ + "RHS GREF - TLA", \ "RHS USAF - US ARMY (Desert)", \ "RHS USAF - US ARMY (Desert CRYE)", \ "RHS USAF - US ARMY (Woodland)", \ @@ -171,6 +183,12 @@ RHS_AFRF_RUS_VMF_RECON_UNITS, \ RHS_AFRF_RUS_VMF_FLORA_UNITS, \ RHS_AFRF_RUS_VV_OSN_UNITS, \ + RHS_GREF_HIDF,\ + RHS_GREF_CDF_GUARD,\ + RHS_GREF_CDF_PARA,\ + RHS_GREF_CDF,\ + RHS_GREF_ChDKZ,\ + RHS_GREF_TLA,\ RHS_USF_ARMY_DES_UNITS, \ RHS_USF_ARMY_DES_CRYE_UNITS, \ RHS_USF_ARMY_WOODLAND_UNITS, \ diff --git a/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp new file mode 100644 index 00000000..6dd64ae4 --- /dev/null +++ b/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp @@ -0,0 +1,110 @@ +#define RHS_GREF_HIDF \ +[\ + "rhsgref_hidf_autorifleman",\ + "rhsgref_hidf_autorifleman_assist",\ + "rhsgref_hidf_medic",\ + "rhsgref_hidf_grenadier",\ + "rhsgref_hidf_machinegunner",\ + "rhsgref_hidf_machinegunner_assist",\ + "rhsgref_hidf_marksman",\ + "rhsgref_hidf_rifleman",\ + "rhsgref_hidf_rifleman_m72",\ + "rhsgref_hidf_sniper",\ + "rhsgref_hidf_squadleader",\ + "rhsgref_hidf_teamleader",\ + ["rhsgref_hidf_m1025_m2","rhsgref_hidf_m1025_mk19","rhsgref_hidf_m113a3_m2","rhsgref_hidf_m113a3_mk19","rhs_uh1h_hidf","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ +] + +// CDF +#define RHS_GREF_CDF_GUARD \ +[\ + "rhsgref_cdf_b_ngd_grenadier_rpg",\ + "rhsgref_cdf_b_ngd_engineer",\ + "rhsgref_cdf_b_ngd_machinegunner",\ + "rhsgref_cdf_b_ngd_medic",\ + "rhsgref_cdf_b_ngd_rifleman",\ + "rhsgref_cdf_b_ngd_rifleman_ak74",\ + "rhsgref_cdf_b_ngd_grenadier",\ + "rhsgref_cdf_b_ngd_rifleman_lite",\ + "rhsgref_cdf_b_ngd_rifleman_rpg75",\ + "rhsgref_cdf_b_ngd_squadleader",\ + ["rhsgref_cdf_b_reg_uaz_dshkm","rhsgref_BRDM2_b","rhsgref_cdf_b_bmp2e","rhsgref_cdf_b_t72ba_tv","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define RHS_GREF_CDF_PARA \ +[\ + "rhsgref_cdf_b_para_grenadier",\ + "rhsgref_cdf_b_para_grenadier_rpg",\ + "rhsgref_cdf_b_para_autorifleman",\ + "rhsgref_cdf_b_para_engineer",\ + "rhsgref_cdf_b_para_machinegunner",\ + "rhsgref_cdf_b_para_marksman",\ + "rhsgref_cdf_b_para_medic",\ + "rhsgref_cdf_b_para_rifleman_lite",\ + "rhsgref_cdf_b_para_squadleader",\ + ["rhsgref_cdf_b_reg_uaz_dshkm","rhsgref_BRDM2_b","rhsgref_cdf_b_bmp2e","rhsgref_cdf_b_t72ba_tv","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define RHS_GREF_CDF \ +[\ + "rhsgref_cdf_b_reg_specialist_aa",\ + "rhsgref_cdf_b_reg_grenadier_rpg",\ + "rhsgref_cdf_b_reg_engineer",\ + "rhsgref_cdf_b_reg_machinegunner",\ + "rhsgref_cdf_b_reg_marksman",\ + "rhsgref_cdf_b_reg_medic",\ + "rhsgref_cdf_b_reg_rifleman",\ + "rhsgref_cdf_b_reg_rifleman_akm",\ + "rhsgref_cdf_b_reg_rifleman_aks74",\ + "rhsgref_cdf_b_reg_grenadier",\ + "rhsgref_cdf_b_reg_rifleman_lite",\ + "rhsgref_cdf_b_reg_rifleman_rpg75",\ + "rhsgref_cdf_b_reg_squadleader",\ + ["rhsgref_cdf_b_reg_uaz_dshkm","rhsgref_BRDM2_b","rhsgref_cdf_b_bmp2e","rhsgref_cdf_b_t72ba_tv","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// ChDKZ +#define RHS_GREF_ChDKZ \ +[\ + "rhsgref_ins_specialist_aa",\ + "rhsgref_ins_grenadier_rpg",\ + "rhsgref_ins_machinegunner",\ + "rhsgref_ins_medic",\ + "rhsgref_ins_militiaman_mosin",\ + "rhsgref_ins_squadleader",\ + "rhsgref_ins_rifleman",\ + "rhsgref_ins_rifleman_akm",\ + "rhsgref_ins_rifleman_aks74",\ + "rhsgref_ins_rifleman_aksu",\ + "rhsgref_ins_grenadier",\ + "rhsgref_ins_rifleman_RPG26",\ + "rhsgref_ins_saboteur",\ + "rhsgref_ins_engineer",\ + "rhsgref_ins_sniper",\ + "rhsgref_ins_spotter",\ + ["rhsgref_ins_uaz_dshkm","rhsgref_BRDM2_ins","rhsgref_ins_bmp1k","rhsgref_ins_t72ba","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +//Tanoan liberation army +#define RHS_GREF_TLA \ +[\ + "rhsgref_tla_specialist_at",\ + "rhsgref_tla_squadleader",\ + "rhsgref_tla_grenadier",\ + "rhsgref_tla_rifleman",\ + "rhsgref_tla_rifleman_akms",\ + "rhsgref_tla_rifleman_l1a1",\ + "rhsgref_tla_rifleman_m1",\ + "rhsgref_tla_rifleman_m14",\ + "rhsgref_tla_rifleman_M16",\ + "rhsgref_tla_rifleman_pm63",\ + "rhsgref_tla_rifleman_rpg75",\ + "rhsgref_tla_rifleman_vz58",\ + "rhsgref_tla_machinegunner",\ + "rhsgref_tla_machinegunner_mg42",\ + "rhsgref_tla_marksman_m14",\ + "rhsgref_tla_mechanic",\ + "rhsgref_tla_medic",\ + "rhsgref_tla_saboteur",\ + ["rhsgref_tla_offroad_armed","rhsgref_tla_offroad_at","rhsgref_tla_btr60","rhsgref_ins_t72ba","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] \ No newline at end of file From 3ae4bea3d812f21e6c653ee997ed340b6c06b63b Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Mon, 7 Dec 2020 20:50:51 -0700 Subject: [PATCH 04/27] Started work on #276 : Project OPFOR --- .../Init Functions/fn_prepareUnitClasses.sqf | 1 + Headers/Faction Headers/Define Factions.hpp | 2 +- .../Unit Tables/Project Opfor Unit Tables.hpp | 223 ++++++++++++++++++ .../Unit Tables/RHS_GREF Unit Tables.hpp | 2 +- 4 files changed, 226 insertions(+), 2 deletions(-) create mode 100644 Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp diff --git a/Functions/Init Functions/fn_prepareUnitClasses.sqf b/Functions/Init Functions/fn_prepareUnitClasses.sqf index d753ace8..93cee727 100644 --- a/Functions/Init Functions/fn_prepareUnitClasses.sqf +++ b/Functions/Init Functions/fn_prepareUnitClasses.sqf @@ -7,6 +7,7 @@ #include "..\..\Headers\Faction Headers\Unit Tables\RHS_USAF Unit Tables.hpp" #include "..\..\Headers\Faction Headers\Unit Tables\Z&DUnitTables.hpp" #include "..\..\Headers\Faction Headers\Unit Tables\RHS_GREF Unit Tables.hpp" +#include "..\..\Headers\Faction Headers\Unit Tables\Project OPFOR Unit Tables.hpp" /* ---------------------------------------------------------------------------- Function: BLWK_fnc_prepareUnitClasses diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index 94772d5d..19da5ec9 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -187,7 +187,7 @@ RHS_GREF_CDF_GUARD,\ RHS_GREF_CDF_PARA,\ RHS_GREF_CDF,\ - RHS_GREF_ChDKZ,\ + RHS_GREF_CHDKZ,\ RHS_GREF_TLA,\ RHS_USF_ARMY_DES_UNITS, \ RHS_USF_ARMY_DES_CRYE_UNITS, \ diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp new file mode 100644 index 00000000..b78f4b65 --- /dev/null +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -0,0 +1,223 @@ +#define PROJOP_AFRICAN_MILITIA_UNITS \ +[\ + "LOP_AFR_OPF_Infantry_IED",\ + "LOP_AFR_OPF_Infantry_Corpsman",\ + "LOP_AFR_OPF_Infantry_GL",\ + "LOP_AFR_OPF_Infantry_Rifleman_4",\ + "LOP_AFR_OPF_Infantry_Rifleman",\ + "LOP_AFR_OPF_Infantry_Rifleman_5",\ + "LOP_AFR_OPF_Infantry_Rifleman_2",\ + "LOP_AFR_OPF_Infantry_Rifleman_7",\ + "LOP_AFR_OPF_Infantry_AR_2",\ + "LOP_AFR_OPF_Infantry_Rifleman_8",\ + "LOP_AFR_OPF_Infantry_AR",\ + "LOP_AFR_OPF_Infantry_AT",\ + "LOP_AFR_OPF_Infantry_Marksman",\ + "LOP_AFR_OPF_Infantry_Rifleman_6",\ + "LOP_AFR_OPF_Infantry_AR_Asst_2",\ + "LOP_AFR_OPF_Infantry_AR_Asst",\ + "LOP_AFR_OPF_Infantry_Driver",\ + "LOP_AFR_OPF_Infantry_SL",\ + ["LOP_AFR_OPF_Landrover_M2","LOP_ISTS_OPF_M1025_W_M2","LOP_AFR_OPF_BTR60","LOP_AFR_OPF_T34","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define PROJOP_BOKO_HAREM_UNITS \ +[\ + "LOP_BH_Infantry_IED",\ + "LOP_BH_Infantry_Corpsman",\ + "LOP_BH_Infantry_TL",\ + "LOP_BH_Infantry_Driver",\ + "LOP_BH_Infantry_GL",\ + "LOP_BH_Infantry_AR_2",\ + "LOP_BH_Infantry_AR",\ + "LOP_BH_Infantry_AR_Asst_2",\ + "LOP_BH_Infantry_AR_Asst",\ + "LOP_BH_Infantry_Rifleman",\ + "LOP_BH_Infantry_Rifleman_lite",\ + "LOP_BH_Infantry_AT",\ + "LOP_BH_Infantry_Marksman",\ + "LOP_BH_Infantry_SL",\ + ["LOP_BH_Landrover_M2","LOP_ISTS_OPF_M1025_W_M2","LOP_AFR_OPF_BTR60","LOP_AFR_OPF_T34","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define PROJOP_CHDKZ_UNITS \ +[\ + "LOP_ChDKZ_Infantry_Bardak",\ + "LOP_ChDKZ_Infantry_Corpsman",\ + "LOP_ChDKZ_Infantry_Engineer",\ + "LOP_ChDKZ_Infantry_GL",\ + "LOP_ChDKZ_Infantry_AT",\ + "LOP_ChDKZ_Infantry_MG",\ + "LOP_ChDKZ_Infantry_MG_Asst",\ + "LOP_ChDKZ_Infantry_Marksman",\ + "LOP_ChDKZ_Infantry_Rifleman",\ + "LOP_ChDKZ_Infantry_Rifleman_2",\ + "LOP_ChDKZ_Infantry_Rifleman_3",\ + "LOP_ChDKZ_Infantry_SL",\ + "LOP_ChDKZ_Infantry_TL",\ + ["rhsgref_ins_uaz_dshkm","LOP_AFR_OPF_M113_W","LOP_AFR_OPF_BTR60","LOP_ChDKZ_T72BA","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define PROJOP_IRA_UNITS \ +[\ + "LOP_IRA_Infantry_IED",\ + "LOP_IRA_Infantry_TL",\ + "LOP_IRA_Infantry_Rifleman_PM63",\ + "LOP_IRA_Infantry_Rifleman",\ + "LOP_IRA_Infantry_Rifleman_lite",\ + "LOP_IRA_Infantry_GL",\ + "LOP_IRA_Infantry_Corpsman",\ + "LOP_IRA_Infantry_AR_Asst",\ + "LOP_IRA_Infantry_AR",\ + "LOP_IRA_Infantry_AT",\ + "LOP_IRA_Infantry_Marksman",\ + "LOP_IRA_Infantry_Rifleman_vz58",\ + "LOP_IRA_Infantry_Driver",\ + "LOP_IRA_Infantry_SL",\ + ["LOP_IRA_Landrover_M2","LOP_ISTS_OPF_M1025_W_M2","LOP_AFR_OPF_BTR60","LOP_ChDKZ_T72BA","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define PROJOP_ISIS_UNITS \ +[\ + "LOP_ISTS_OPF_Infantry_Engineer",\ + "LOP_ISTS_OPF_Infantry_Corpsman",\ + "LOP_ISTS_OPF_Infantry_TL",\ + "LOP_ISTS_OPF_Infantry_Rifleman_5",\ + "LOP_ISTS_OPF_Infantry_GL",\ + "LOP_ISTS_OPF_Infantry_Rifleman_6",\ + "LOP_ISTS_OPF_Infantry_Rifleman",\ + "LOP_ISTS_OPF_Infantry_Rifleman_4",\ + "LOP_ISTS_OPF_Infantry_Rifleman_3",\ + "LOP_ISTS_OPF_Infantry_Rifleman_7",\ + "LOP_ISTS_OPF_Infantry_AR_Asst_2",\ + "LOP_ISTS_OPF_Infantry_AR_2",\ + "LOP_ISTS_OPF_Infantry_AR_Asst",\ + "LOP_ISTS_OPF_Infantry_AR",\ + "LOP_ISTS_OPF_Infantry_Rifleman_9",\ + "LOP_ISTS_OPF_Infantry_Marksman",\ + "LOP_ISTS_OPF_Infantry_Rifleman_8",\ + "LOP_ISTS_OPF_Infantry_AT",\ + "LOP_ISTS_OPF_Infantry_SL",\ + ["LOP_ISTS_OPF_Nissan_PKM","LOP_ISTS_OPF_M1025_W_M2","LOP_ISTS_OPF_BMP1","LOP_ISTS_OPF_T55","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +#define PROJOP_KPA_UNITS \ +[\ + "LOP_NK_Infantry_AT_Asst",\ + "LOP_NK_Infantry_AT",\ + "LOP_NK_Infantry_Corpsman",\ + "LOP_NK_Infantry_Engineer",\ + "LOP_NK_Infantry_Grenadier",\ + "LOP_NK_Infantry_MG",\ + "LOP_NK_Infantry_MG_Asst",\ + "LOP_NK_Infantry_Marksman",\ + "LOP_NK_Infantry_Rifleman",\ + "LOP_NK_Infantry_Rifleman_2",\ + "LOP_NK_Infantry_SL",\ + "LOP_NK_Infantry_TL",\ + ["LOP_NK_UAZ_DshKM","LOP_ISTS_OPF_M1025_W_M2","LOP_NK_BTR60","LOP_NK_T55","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// middle east militia +#define PROJOP_MEM_UNITS \ +[\ + "LOP_AM_OPF_Infantry_Engineer",\ + "LOP_AM_OPF_Infantry_Corpsman",\ + "LOP_AM_OPF_Infantry_GL",\ + "LOP_AM_OPF_Infantry_Rifleman_6",\ + "LOP_AM_OPF_Infantry_Rifleman",\ + "LOP_AM_OPF_Infantry_Rifleman_2",\ + "LOP_AM_OPF_Infantry_Rifleman_4",\ + "LOP_AM_OPF_Infantry_Rifleman_5",\ + "LOP_AM_OPF_Infantry_Rifleman_7",\ + "LOP_AM_OPF_Infantry_Rifleman_8",\ + "LOP_AM_OPF_Infantry_AT",\ + "LOP_AM_OPF_Infantry_Marksman",\ + "LOP_AM_OPF_Infantry_Rifleman_9",\ + "LOP_AM_OPF_Infantry_AR",\ + "LOP_AM_OPF_Infantry_AR_Asst",\ + "LOP_AM_OPF_Infantry_SL",\ + ["LOP_AM_OPF_Nissan_PKM","LOP_AM_OPF_Landrover_M2","LOP_AM_OPF_BTR60","LOP_AFR_OPF_T34","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// Sahrani Liberation Army +#define PROJOP_SLA_UNITS \ +[\ + "LOP_SLA_Infantry_AA",\ + "LOP_SLA_Infantry_AT_Asst",\ + "LOP_SLA_Infantry_Corpsman",\ + "LOP_SLA_Infantry_Engineer",\ + "LOP_SLA_Infantry_GL",\ + "LOP_SLA_Infantry_AT",\ + "LOP_SLA_Infantry_MG",\ + "LOP_SLA_Infantry_MG_Asst",\ + "LOP_SLA_Infantry_Marksman",\ + "LOP_SLA_Infantry_Rifleman",\ + "LOP_SLA_Infantry_Rifleman_2",\ + "LOP_SLA_Infantry_SL",\ + "LOP_SLA_Infantry_TL",\ + ["LOP_SLA_UAZ_DshKM","rhsgref_BRDM2_ins","LOP_SLA_BTR70","LOP_SLA_T72BA","LOP_SLA_Mi8MTV3_UPK23","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// Syrian Armed Forces +#define PROJOP_SAF_UNITS \ +[\ + "LOP_SYR_Infantry_AT_Asst",\ + "LOP_SYR_Infantry_AT",\ + "LOP_SYR_Infantry_Corpsman",\ + "LOP_SYR_Infantry_Engineer",\ + "LOP_SYR_Infantry_Grenadier",\ + "LOP_SYR_Infantry_MG",\ + "LOP_SYR_Infantry_MG_Asst",\ + "LOP_SYR_Infantry_Marksman",\ + "LOP_SYR_Infantry_Rifleman",\ + "LOP_SYR_Infantry_Rifleman_2",\ + "LOP_SYR_Infantry_SL",\ + "LOP_SYR_Infantry_TL",\ + ["LOP_SYR_UAZ_DshKM","LOP_SYR_BTR70","LOP_SYR_BMP1","LOP_SYR_T55","LOP_SLA_Mi8MTV3_UPK23","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// Takistan Armed Forces +#define PROJOP_TAF_UNITS \ +[\ + "LOP_TKA_Infantry_AA",\ + "LOP_TKA_Infantry_Corpsman",\ + "LOP_TKA_Infantry_Engineer",\ + "LOP_TKA_Infantry_GL",\ + "LOP_TKA_Infantry_AT",\ + "LOP_TKA_Infantry_AT_Asst",\ + "LOP_TKA_Infantry_MG",\ + "LOP_TKA_Infantry_MG_Asst",\ + "LOP_TKA_Infantry_Marksman",\ + "LOP_TKA_Infantry_Rifleman",\ + "LOP_TKA_Infantry_Rifleman_2",\ + "LOP_TKA_Infantry_Rifleman_3",\ + "LOP_TKA_Infantry_SL",\ + "LOP_TKA_Infantry_TL",\ + ["LOP_TKA_UAZ_DshKM","LOP_TKA_BTR60","LOP_TKA_BMP2","LOP_TKA_T55","LOP_TKA_Mi8MTV3_UPK23","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// Novorossiya Armed Forces +#define PROJOP_NAF_UNITS \ +[\ + "LOP_US_Infantry_AA",\ + "LOP_US_Infantry_Engineer",\ + "LOP_US_Infantry_GL",\ + "LOP_US_Infantry_GL_2",\ + "LOP_US_Infantry_AT",\ + "LOP_US_Infantry_AT_Asst",\ + "LOP_US_Infantry_SL",\ + "LOP_US_Infantry_MG_3",\ + "LOP_US_Infantry_MG",\ + "LOP_US_Infantry_MG_2",\ + "LOP_US_Infantry_MG_Asst",\ + "LOP_US_Infantry_Marksman",\ + "LOP_US_Infantry_Corpsman",\ + "LOP_US_Infantry_Officer",\ + "LOP_US_Infantry_Rifleman",\ + "LOP_US_Infantry_Rifleman_2",\ + "LOP_US_Infantry_Rifleman_3",\ + "LOP_US_Infantry_Rifleman_4",\ + "LOP_US_Infantry_TL",\ + ["LOP_US_UAZ_DshKM","LOP_US_BTR60","LOP_US_BMP2","LOP_US_T72BA","LOP_TKA_Mi8MTV3_UPK23","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] \ No newline at end of file diff --git a/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp index 6dd64ae4..4449b533 100644 --- a/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp @@ -64,7 +64,7 @@ ] // ChDKZ -#define RHS_GREF_ChDKZ \ +#define RHS_GREF_CHDKZ \ [\ "rhsgref_ins_specialist_aa",\ "rhsgref_ins_grenadier_rpg",\ From 0ebcffbb27d1a35c11a0027d7f2920ad9cd8f51c Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Mon, 7 Dec 2020 23:07:06 -0700 Subject: [PATCH 05/27] Update Project Opfor Unit Tables.hpp --- .../Unit Tables/Project Opfor Unit Tables.hpp | 154 ++++++++++++++++++ 1 file changed, 154 insertions(+) diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp index b78f4b65..82a5439f 100644 --- a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -220,4 +220,158 @@ "LOP_US_Infantry_Rifleman_4",\ "LOP_US_Infantry_TL",\ ["LOP_US_UAZ_DshKM","LOP_US_BTR60","LOP_US_BMP2","LOP_US_T72BA","LOP_TKA_Mi8MTV3_UPK23","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + +// Afghan National Army +#define PROJOP_ANA_UNITS \ +[\ + "LOP_AA_Infantry_Corpsman",\ + "LOP_AA_Infantry_Engineer",\ + "LOP_AA_Infantry_GL",\ + "LOP_AA_Infantry_AT",\ + "LOP_AA_Infantry_AT_Asst",\ + "LOP_AA_Infantry_MG_2",\ + "LOP_AA_Infantry_MG",\ + "LOP_AA_Infantry_MG_Asst_2",\ + "LOP_AA_Infantry_MG_Asst",\ + "LOP_AA_Infantry_Marksman",\ + "LOP_AA_Infantry_Rifleman_3",\ + "LOP_AA_Infantry_Rifleman_2",\ + "LOP_AA_Infantry_Rifleman",\ + "LOP_AA_Infantry_SL",\ + "LOP_AA_Infantry_TL",\ + ["LOP_AA_M1025_W_M2","LOP_AA_M1117_D","LOP_AA_BMP2_C","LOP_AA_T72BA","LOP_AA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","rhs_mi28n_vvsc"]\ +] + +//Afghan National Police +#define PROJOP_ANP_UNITS \ +[\ + "LOP_AA_Police_Corpsman",\ + "LOP_AA_Police_MG",\ + "LOP_AA_Police_MG_Asst",\ + "LOP_AA_Police_Rifleman_2",\ + "LOP_AA_Police_Rifleman",\ + "LOP_AA_Police_Rifleman_3",\ + "LOP_AA_Police_SL",\ + "LOP_AA_Police_TL",\ + ["LOP_AA_Offroad_M2_Police","LOP_AA_M113_W","LOP_AA_M1117_D","LOP_AA_BMP2_C","LOP_AA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","rhs_mi28n_vvsc"]\ +] + +#define PROJOP_CDF_UNITS \ +[\ + "LOP_CDF_Infantry_AA",\ + "LOP_CDF_Infantry_AT_Asst",\ + "LOP_CDF_Infantry_Corpsman",\ + "LOP_CDF_Infantry_Engineer",\ + "LOP_CDF_Infantry_GL",\ + "LOP_CDF_Infantry_AT",\ + "LOP_CDF_Infantry_MG",\ + "LOP_CDF_Infantry_MG_2",\ + "LOP_CDF_Infantry_MG_Asst",\ + "LOP_CDF_Infantry_Marksman",\ + "LOP_CDF_Infantry_Officer",\ + "LOP_CDF_Infantry_Rifleman",\ + "LOP_CDF_Infantry_Rifleman_2",\ + "LOP_CDF_Infantry_SL",\ + "LOP_CDF_Infantry_TL",\ + ["LOP_CDF_UAZ_DshKM","rhsgref_BRDM2_b","LOP_CDF_BTR70","LOP_CDF_T72BB","LOP_CDF_Mi8MTV3_UPK23","RHS_AN2_B","LOP_CDF_SU25SM","rhs_mi28n_vvsc"]\ +] + +// Hellnic Armed Forces +#define PROJOP_HAF_UNITS \ +[\ + "LOP_GRE_Infantry_AT_Asst",\ + "LOP_GRE_Infantry_AT",\ + "LOP_GRE_Infantry_Corpsman",\ + "LOP_GRE_Infantry_Engineer",\ + "LOP_GRE_Infantry_MG",\ + "LOP_GRE_Infantry_MG_Asst",\ + "LOP_GRE_Infantry_Rifleman",\ + "LOP_GRE_Infantry_Rifleman_2",\ + "LOP_GRE_Infantry_SL",\ + "LOP_GRE_Infantry_TL",\ + ["LOP_GRE_M1025_W_M2","LOP_GRE_M1025_W_Mk19","rhsgref_hidf_m113a3_m2","rhsgref_hidf_m113a3_mk19","rhs_uh1h_hidf","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ +] + +// Iraqi Armed Forces +#define PROJOP_IAF_UNITS \ +[\ + "LOP_IA_Infantry_Corpsman",\ + "LOP_IA_Infantry_Engineer",\ + "LOP_IA_Infantry_GL",\ + "LOP_IA_Infantry_AT",\ + "LOP_IA_Infantry_AT_Asst",\ + "LOP_IA_Infantry_MG_2",\ + "LOP_IA_Infantry_MG",\ + "LOP_IA_Infantry_MG_Asst_2",\ + "LOP_IA_Infantry_MG_Asst",\ + "LOP_IA_Infantry_Marksman",\ + "LOP_IA_Infantry_Rifleman",\ + "LOP_IA_Infantry_Rifleman_4",\ + "LOP_IA_Infantry_Rifleman_2",\ + "LOP_IA_Infantry_Rifleman_3",\ + "LOP_IA_Infantry_Rifleman_6",\ + "LOP_IA_Infantry_SL",\ + ["LOP_IA_Offroad_M2","LOP_IA_M1025_W_M2","LOP_IA_BTR80","LOP_IA_T72BB","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ +] + +// Iraqi Armed Forces Woodland +#define PROJOP_IAF_WDL_UNITS \ +[\ + "LOP_IA_Infantry_W_Corpsman",\ + "LOP_IA_Infantry_W_Engineer",\ + "LOP_IA_Infantry_W_GL",\ + "LOP_IA_Infantry_W_AT",\ + "LOP_IA_Infantry_W_AT_Asst",\ + "LOP_IA_Infantry_W_MG_2",\ + "LOP_IA_Infantry_W_MG",\ + "LOP_IA_Infantry_W_MG_Asst_2",\ + "LOP_IA_Infantry_W_MG_Asst",\ + "LOP_IA_Infantry_W_Marksman",\ + "LOP_IA_Infantry_W_Rifleman_3",\ + "LOP_IA_Infantry_W_Rifleman",\ + "LOP_IA_Infantry_W_Rifleman_4",\ + "LOP_IA_Infantry_W_Rifleman_2",\ + "LOP_IA_Infantry_W_Rifleman_6",\ + "LOP_IA_Infantry_W_SL",\ + "LOP_IA_Infantry_W_TL",\ + ["LOP_IA_Offroad_M2","LOP_IA_M1025_W_M2","LOP_IA_BTR80","LOP_IA_T72BB","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ +] + + +// Iraqi Armed Forces SF +#define PROJOP_IAF_SF_UNITS \ +[\ + "PO_IA_Infantry_SF_Corpsman",\ + "PO_IA_Infantry_SF_AT",\ + "PO_IA_Infantry_SF_AT_Asst",\ + "PO_IA_Infantry_SF_MG",\ + "PO_IA_Infantry_SF_MG_Asst",\ + "PO_IA_Infantry_SF_Marksman",\ + "PO_IA_Infantry_SF_Mechanic",\ + "PO_IA_Infantry_SF_Operator",\ + "PO_IA_Infantry_SF_Operator_2",\ + "PO_IA_Infantry_SF_GL",\ + "PO_IA_Infantry_SF_SL",\ + "PO_IA_Infantry_SF_TL",\ + ["LOP_IA_Offroad_M2","LOP_IA_M1025_W_M2","LOP_IA_BTR80","LOP_IA_M1A1_AIM_D","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ +] + +// Kurdish Peshmerga +#define PROJOP_KPF_UNITS \ +[\ + "LOP_Pesh_Infantry_Corpsman",\ + "LOP_PESH_Infantry_SL",\ + "LOP_PESH_Infantry_Engineer",\ + "LOP_PESH_Infantry_GL",\ + "LOP_PESH_Infantry_AT",\ + "LOP_PESH_Infantry_MG",\ + "LOP_PESH_Infantry_Marksman",\ + "LOP_PESH_Infantry_Rifleman_4",\ + "LOP_PESH_Infantry_Rifleman",\ + "LOP_PESH_Infantry_Rifleman_2",\ + "LOP_PESH_Infantry_Rifleman_3",\ + "LOP_PESH_Infantry_Sniper",\ + "LOP_PESH_Infantry_TL",\ + ["LOP_PESH_Offroad_M2","LOP_PESH_M1025_W_M2","LOP_IA_BMP1","LOP_IA_T34","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ ] \ No newline at end of file From 5f83b0dfcdfcf7ef62b90e1e08c388c0a20f5807 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Mon, 7 Dec 2020 23:38:12 -0700 Subject: [PATCH 06/27] Update Project Opfor Unit Tables.hpp --- .../Unit Tables/Project Opfor Unit Tables.hpp | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp index 82a5439f..152faa47 100644 --- a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -374,4 +374,66 @@ "LOP_PESH_Infantry_Sniper",\ "LOP_PESH_Infantry_TL",\ ["LOP_PESH_Offroad_M2","LOP_PESH_M1025_W_M2","LOP_IA_BMP1","LOP_IA_T34","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ +] + +//Chernarus National Insurgents +#define PROJOP_CNI_UNITS \ +[ \ + "LOP_NAPA_Infantry_SL",\ + "LOP_NAPA_Infantry_Engineer",\ + "LOP_NAPA_Infantry_GL_2",\ + "LOP_NAPA_Infantry_GL",\ + "LOP_NAPA_Infantry_Rifleman_3",\ + "LOP_NAPA_Infantry_Rifleman",\ + "LOP_NAPA_Infantry_AT",\ + "LOP_NAPA_Infantry_Rifleman_2",\ + "LOP_NAPA_Infantry_Marksman",\ + "LOP_NAPA_Infantry_MG",\ + "LOP_NAPA_Infantry_MG_Asst",\ + "LOP_NAPA_Infantry_Corpsman",\ + "LOP_NAPA_Infantry_TL",\ + "LOP_NAPA_Infantry_Prizrak",\ + ["LOP_NAPA_Offroad_M2","LOP_NAPA_Landrover_M2","","","I_C_Heli_Light_01_civil_F","",""]\ +] + +//Iranian Armed Forces +#define PROJOP_IRAN_UNITS \ +[ \ + "LOP_IRAN_Infantry_AA",\ + "LOP_IRAN_Infantry_engineer",\ + "LOP_IRAN_Infantry_Grenadier",\ + "LOP_IRAN_Infantry_RPG",\ + "LOP_IRAN_Infantry_RPG_Asst",\ + "LOP_IRAN_Infantry_AR_2",\ + "LOP_IRAN_Infantry_AR",\ + "LOP_IRAN_Infantry_AR_Asst_2",\ + "LOP_IRAN_Infantry_AR_Asst",\ + "LOP_IRAN_Infantry_Marksman",\ + "LOP_IRAN_Infantry_medic",\ + "LOP_IRAN_Infantry_officer_armored",\ + "LOP_IRAN_Infantry_Rifleman_2",\ + "LOP_IRAN_Infantry_Rifleman",\ + "LOP_IRAN_Infantry_Light",\ + "LOP_IRAN_Infantry_LAT",\ + "LOP_IRAN_Infantry_sergeant",\ + "LOP_IRAN_Infantry_junior_sergeant",\ + ["LOP_IRAN_UAZ_DshKM","LOP_IRAN_BTR70","LOP_IRAN_BMP2","LOP_IRAN_T72BA","LOP_IRAN_CH47F","LOP_IRAN_CH47F","rhs_l159_cdf_b_CDF","rhs_mi28n_vvsc"]\ +] + +//Iranian Armed Forces SF +#define PROJOP_IRAN_SF_UNITS \ +[ \ + "LOP_IRAN_Infantry_SF_engineer",\ + "LOP_IRAN_Infantry_SF_Grenadier",\ + "LOP_IRAN_Infantry_SF_RPG",\ + "LOP_IRAN_Infantry_SF_RPG_Asst",\ + "LOP_IRAN_Infantry_SF_AR",\ + "LOP_IRAN_Infantry_SF_AR_Asst",\ + "LOP_IRAN_Infantry_SF_Marksman",\ + "LOP_IRAN_Infantry_SF_medic",\ + "LOP_IRAN_Infantry_SF_Rifleman",\ + "LOP_IRAN_Infantry_SF_LAT",\ + "LOP_IRAN_Infantry_SF_sergeant",\ + "LOP_IRAN_Infantry_SF_junior_sergeant",\ + ["LOP_IRAN_UAZ_DshKM","LOP_IRAN_BTR70","LOP_IRAN_BMP2","LOP_IRAN_T72BA","LOP_IRAN_CH47F","LOP_IRAN_CH47F","rhs_l159_cdf_b_CDF","rhs_mi28n_vvsc"]\ ] \ No newline at end of file From 96676dd2ab4f0da98ba2f6157f248ad0a033950b Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Mon, 7 Dec 2020 23:45:56 -0700 Subject: [PATCH 07/27] Update Project Opfor Unit Tables.hpp --- .../Unit Tables/Project Opfor Unit Tables.hpp | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp index 152faa47..07bb24d2 100644 --- a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -436,4 +436,28 @@ "LOP_IRAN_Infantry_SF_sergeant",\ "LOP_IRAN_Infantry_SF_junior_sergeant",\ ["LOP_IRAN_UAZ_DshKM","LOP_IRAN_BTR70","LOP_IRAN_BMP2","LOP_IRAN_T72BA","LOP_IRAN_CH47F","LOP_IRAN_CH47F","rhs_l159_cdf_b_CDF","rhs_mi28n_vvsc"]\ +] + + +//ION PMC +#define PROJOP_PMC_UNITS \ +[ \ + "LOP_PMC_Infantry_AA",\ + "LOP_PMC_Infantry_AT_Asst",\ + "LOP_PMC_Infantry_AT",\ + "LOP_PMC_Infantry_EOD",\ + "LOP_PMC_Infantry_Marksman",\ + "LOP_PMC_Infantry_Rifleman_2",\ + "LOP_PMC_Infantry_GL",\ + "LOP_PMC_Infantry_MG_Asst",\ + "LOP_PMC_Infantry_MG",\ + "LOP_PMC_Infantry_Rifleman_3",\ + "LOP_PMC_Infantry_Rifleman",\ + "LOP_PMC_Infantry_Corpsman",\ + "LOP_PMC_Infantry_Marksman_2",\ + "LOP_PMC_Infantry_Rifleman_4",\ + "LOP_PMC_Infantry_Engineer",\ + "LOP_PMC_Infantry_SL",\ + "LOP_PMC_Infantry_TL",\ + ["LOP_PMC_Offroad_M2","LOP_ISTS_OPF_M1025_W_M2","rhsgref_BRDM2_vmf","rhs_btr80a_vdv","O_Heli_Light_02_unarmed_F","LOP_PMC_Mi8AMT","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ ] \ No newline at end of file From 96c8346cfba82ce595373a186026c7c17c0ffdab Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Mon, 7 Dec 2020 23:54:34 -0700 Subject: [PATCH 08/27] Update Project Opfor Unit Tables.hpp --- .../Unit Tables/Project Opfor Unit Tables.hpp | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp index 07bb24d2..4829def7 100644 --- a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -312,7 +312,7 @@ "LOP_IA_Infantry_Rifleman_3",\ "LOP_IA_Infantry_Rifleman_6",\ "LOP_IA_Infantry_SL",\ - ["LOP_IA_Offroad_M2","LOP_IA_M1025_W_M2","LOP_IA_BTR80","LOP_IA_T72BB","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ + ["LOP_IA_Offroad_M2","LOP_IA_M1025_W_M2","LOP_IA_BTR80","LOP_IA_T72BB","LOP_RACS_UH60M","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ ] // Iraqi Armed Forces Woodland @@ -460,4 +460,42 @@ "LOP_PMC_Infantry_SL",\ "LOP_PMC_Infantry_TL",\ ["LOP_PMC_Offroad_M2","LOP_ISTS_OPF_M1025_W_M2","rhsgref_BRDM2_vmf","rhs_btr80a_vdv","O_Heli_Light_02_unarmed_F","LOP_PMC_Mi8AMT","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ +] + + +//Royal Army Corps of Sahrani +#define PROJOP_RACS_UNITS \ +[ \ + "LOP_RACS_Infantry_Corpsman",\ + "LOP_RACS_Infantry_Engineer",\ + "LOP_RACS_Infantry_GL",\ + "LOP_RACS_Infantry_GL_2",\ + "LOP_RACS_Infantry_AT",\ + "LOP_RACS_Infantry_AT_Asst",\ + "LOP_RACS_Infantry_MG",\ + "LOP_RACS_Infantry_MG_Asst",\ + "LOP_RACS_Infantry_Marksman",\ + "LOP_RACS_Infantry_Rifleman",\ + "LOP_RACS_Infantry_Rifleman_2",\ + "LOP_RACS_Infantry_Rifleman_3",\ + "LOP_RACS_Infantry_SL",\ + "LOP_RACS_Infantry_TL",\ + ["LOP_RACS_Landrover_M2","LOP_AA_M1025_W_M2","LOP_AA_BMP2","LOP_RACS_T72BB","LOP_RACS_UH60M","LOP_PMC_Mi8AMT","LOP_IRAN_CH47F","rhs_mi28n_vvsc"]\ +] + +//Turkish Armed Forces +#define PROJOP_TURK_UNITS \ +[ \ + "LOP_TRK_Infantry_AT_Asst",\ + "LOP_TRK_Infantry_AT",\ + "LOP_TRK_Infantry_Corpsman",\ + "LOP_TRK_Infantry_Engineer",\ + "LOP_TRK_Infantry_MG",\ + "LOP_TRK_Infantry_MG_Asst",\ + "LOP_TRK_Infantry_Marksman",\ + "LOP_TRK_Infantry_Rifleman",\ + "LOP_TRK_Infantry_Rifleman_2",\ + "LOP_TRK_Infantry_SL",\ + "LOP_TRK_Infantry_TL",\ + ["LOP_RACS_Landrover_M2","LOP_AA_M1025_W_M2","LOP_TRK_BTR80","LOP_RACS_T72BB","LOP_RACS_UH60M","LOP_PMC_Mi8AMT","LOP_IRAN_CH47F","rhs_mi28n_vvsc"]\ ] \ No newline at end of file From 54f0b2240ebe12e01b7b15d597963ec77b74e6c0 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 08:25:22 -0700 Subject: [PATCH 09/27] Updated fall damage mission param text --- Headers/descriptionEXT/missionParams.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Headers/descriptionEXT/missionParams.hpp b/Headers/descriptionEXT/missionParams.hpp index fcf8ef12..eb71a6e4 100644 --- a/Headers/descriptionEXT/missionParams.hpp +++ b/Headers/descriptionEXT/missionParams.hpp @@ -112,7 +112,7 @@ class BLWK_friendlyFireOn }; class BLWK_fallDamageOn { - title = "Fall Damage"; + title = "Fall Damage (Not ACE Compatabile)"; values[] = ZERO_OR_ONE; texts[] = OFF_OR_ON; default = 0; From e44dadf47c114763e3706e62f8c7be54e0214ce6 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 08:51:14 -0700 Subject: [PATCH 10/27] Updated comment --- Headers/Faction Headers/Unit Tables/vanillaUnitTables.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Headers/Faction Headers/Unit Tables/vanillaUnitTables.hpp b/Headers/Faction Headers/Unit Tables/vanillaUnitTables.hpp index ef3088c8..39b3bca9 100644 --- a/Headers/Faction Headers/Unit Tables/vanillaUnitTables.hpp +++ b/Headers/Faction Headers/Unit Tables/vanillaUnitTables.hpp @@ -16,8 +16,8 @@ "B_MRAP_01_hmg_F",\ 1 // heavy car "B_APC_Wheeled_01_cannon_F",\ 2 // light armour "B_MBT_01_cannon_F",\ 3 // heavy armour - "B_Heli_Transport_01_F",\ 4 // transport aircraft - "B_T_VTOL_01_vehicle_F",\ 5 // cargo aircraft + "B_Heli_Transport_01_F",\ 4 // transport aircraft (used for door gunner) + "B_T_VTOL_01_vehicle_F",\ 5 // cargo aircraft (used to paradrop from and drop off arsenal) "B_Plane_CAS_01_F",\ 6 // CAS plane "B_Heli_Attack_01_dynamicLoadout_F",\ 7 // attack helicopter "B_T_VTOL_01_armed_F"\ 8 // gunship (ac130 type aircraft) From 1d90f32118a52ca08600bc6a296a47bd742f7975 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 08:51:35 -0700 Subject: [PATCH 11/27] Finished Project Opfor tables --- .../Unit Tables/Project Opfor Unit Tables.hpp | 87 ++++++++++++++++++- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp index 4829def7..891f75eb 100644 --- a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -480,7 +480,7 @@ "LOP_RACS_Infantry_Rifleman_3",\ "LOP_RACS_Infantry_SL",\ "LOP_RACS_Infantry_TL",\ - ["LOP_RACS_Landrover_M2","LOP_AA_M1025_W_M2","LOP_AA_BMP2","LOP_RACS_T72BB","LOP_RACS_UH60M","LOP_PMC_Mi8AMT","LOP_IRAN_CH47F","rhs_mi28n_vvsc"]\ + ["LOP_RACS_Landrover_M2","LOP_AA_M1025_W_M2","LOP_AA_BMP2","LOP_RACS_T72BB","LOP_RACS_UH60M","LOP_IRAN_CH47F","rhs_l159_cdf_b_CDF","rhs_mi28n_vvsc"]\ ] //Turkish Armed Forces @@ -497,5 +497,88 @@ "LOP_TRK_Infantry_Rifleman_2",\ "LOP_TRK_Infantry_SL",\ "LOP_TRK_Infantry_TL",\ - ["LOP_RACS_Landrover_M2","LOP_AA_M1025_W_M2","LOP_TRK_BTR80","LOP_RACS_T72BB","LOP_RACS_UH60M","LOP_PMC_Mi8AMT","LOP_IRAN_CH47F","rhs_mi28n_vvsc"]\ + ["LOP_RACS_Landrover_M2","LOP_AA_M1025_W_M2","LOP_TRK_BTR80","LOP_RACS_T72BB","LOP_RACS_UH60M","LOP_IRAN_CH47F","rhs_l159_cdf_b_CDF","rhs_mi28n_vvsc"]\ +] + +//Ukrainian Armed Forces +#define PROJOP_UAF_UNITS \ +[ \ + "LOP_UKR_Infantry_AA",\ + "LOP_UKR_Infantry_engineer",\ + "LOP_UKR_Infantry_Grenadier",\ + "LOP_UKR_Infantry_RPG",\ + "LOP_UKR_Infantry_RPG_Asst",\ + "LOP_UKR_Infantry_junior_sergeant",\ + "LOP_UKR_Infantry_AR",\ + "LOP_UKR_Infantry_AR_Asst",\ + "LOP_UKR_Infantry_Marksman",\ + "LOP_UKR_Infantry_medic",\ + "LOP_UKR_Infantry_officer",\ + "LOP_UKR_Infantry_Rifleman",\ + "LOP_UKR_Infantry_Light",\ + "LOP_UKR_Infantry_LAT",\ + "LOP_UKR_Infantry_RShG2",\ + "LOP_UKR_Infantry_sergeant",\ + ["LOP_UKR_UAZ_DshKM","LOP_AA_M1025_W_M2","LOP_UKR_BTR80","LOP_UKR_T72BB","LOP_UKR_Mi8MTV3_UPK23","LOP_UKR_Mi8MT_Cargo","rhs_l159_cdf_b_CDF","rhs_mi28n_vvsc"]\ +] + +//Ulseter Volunteer Force +#define PROJOP_UVF_UNITS \ +[ \ + "LOP_UVF_Infantry_IED",\ + "LOP_UVF_Infantry_TL",\ + "LOP_UVF_Infantry_Rifleman",\ + "LOP_UVF_Infantry_Rifleman_lite",\ + "LOP_UVF_Infantry_GL",\ + "LOP_UVF_Infantry_Corpsman",\ + "LOP_UVF_Infantry_AR_Asst",\ + "LOP_UVF_Infantry_AR",\ + "LOP_UVF_Infantry_AT",\ + "LOP_UVF_Infantry_Marksman",\ + "LOP_UVF_Infantry_Rifleman_vz58",\ + "LOP_UVF_Infantry_Driver",\ + "LOP_UVF_Infantry_SL",\ + ["LOP_UVF_Offroad_M2","LOP_ISTS_OPF_M1025_W_M2","rhsgref_BRDM2_vmf","rhs_btr80a_vdv","LOP_UKR_Mi8MTV3_UPK23","O_Heli_Light_02_unarmed_F","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ +] + +//Ultranationalists +#define PROJOP_ULT_UNITS \ +[ \ + "LOP_UA_Infantry_AT_Asst",\ + "LOP_UA_Infantry_Corpsman",\ + "LOP_UA_Infantry_Engineer",\ + "LOP_UA_Infantry_GL",\ + "LOP_UA_Infantry_AT",\ + "LOP_UA_Infantry_Rifleman_2",\ + "LOP_UA_Infantry_Rifleman",\ + "LOP_UA_Infantry_Rifleman_3",\ + "LOP_UA_Infantry_Marksman",\ + "LOP_UA_Infantry_MG",\ + "LOP_UA_Infantry_MG_Asst",\ + "LOP_UA_Officer",\ + "LOP_UA_Infantry_SL",\ + "LOP_UA_Infantry_TL",\ + ["LOP_UA_UAZ_DshKM","LOP_UA_UAZ_AGS","LOP_UA_BMP2","LOP_UA_T72BB","LOP_UA_Mi8MTV3_UPK23","LOP_UA_Mi8MT_Cargo","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ +] + +//United Nations +#define PROJOP_UN_UNITS \ +[ \ + "LOP_UN_Infantry_AA",\ + "LOP_UN_Infantry_AT_Asst",\ + "LOP_UN_Infantry_Corpsman",\ + "LOP_UN_Infantry_Engineer",\ + "LOP_UN_Infantry_GL",\ + "LOP_UN_Infantry_AT",\ + "LOP_UN_Infantry_MG",\ + "LOP_UN_Infantry_MG_Asst",\ + "LOP_UN_Infantry_Marksman",\ + "LOP_UN_Infantry_Officer",\ + "LOP_UN_Infantry_Rifleman",\ + "LOP_UN_Infantry_Rifleman_2",\ + "LOP_UN_Infantry_Rifleman_3",\ + "LOP_UN_Infantry_Rifleman_4",\ + "LOP_UN_Infantry_SL",\ + "LOP_UN_Infantry_TL",\ + ["LOP_UN_UAZ_DshKM","LOP_UN_BTR60","LOP_UN_BTR70","LOP_UN_BMP2D","LOP_UN_Mi8MTV3_UPK23","LOP_UN_Mi8MT_Cargo","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ ] \ No newline at end of file From ee0536b4e4bebc7a65406512bcf37cb77190cbad Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 08:51:39 -0700 Subject: [PATCH 12/27] Update missionParams.hpp --- Headers/descriptionEXT/missionParams.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Headers/descriptionEXT/missionParams.hpp b/Headers/descriptionEXT/missionParams.hpp index eb71a6e4..121dc0d7 100644 --- a/Headers/descriptionEXT/missionParams.hpp +++ b/Headers/descriptionEXT/missionParams.hpp @@ -112,7 +112,7 @@ class BLWK_friendlyFireOn }; class BLWK_fallDamageOn { - title = "Fall Damage (Not ACE Compatabile)"; + title = "Fall Damage (Not ACE Medical Compatabile)"; values[] = ZERO_OR_ONE; texts[] = OFF_OR_ON; default = 0; From 92b10ae24949d250fa7933757df62d937032c987 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 09:02:57 -0700 Subject: [PATCH 13/27] Fix #282 : RHS GREF NAPA faction needs to be added --- Headers/Faction Headers/Define Factions.hpp | 8 +++- .../Unit Tables/RHS_GREF Unit Tables.hpp | 39 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index 19da5ec9..5e290f37 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -65,7 +65,9 @@ 63,\ 64,\ 65,\ - 66 + 66,\ + 67,\ + 68 #define FACTION_STRINGS \ "VANILLA - NATO", \ @@ -119,6 +121,8 @@ "RHS GREF - CDF", \ "RHS GREF - ChDKZ", \ "RHS GREF - TLA", \ + "RHS GREF - NAPA Militia", \ + "RHS GREF - NAPA Paramilitary", \ "RHS USAF - US ARMY (Desert)", \ "RHS USAF - US ARMY (Desert CRYE)", \ "RHS USAF - US ARMY (Woodland)", \ @@ -189,6 +193,8 @@ RHS_GREF_CDF,\ RHS_GREF_CHDKZ,\ RHS_GREF_TLA,\ + RHS_GREF_NAPA_MILITIA_UNITS,\ + RHS_GREF_NAPA_PARAMILITARY_UNITS,\ RHS_USF_ARMY_DES_UNITS, \ RHS_USF_ARMY_DES_CRYE_UNITS, \ RHS_USF_ARMY_WOODLAND_UNITS, \ diff --git a/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp index 4449b533..06f3a9b3 100644 --- a/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/RHS_GREF Unit Tables.hpp @@ -107,4 +107,43 @@ "rhsgref_tla_medic",\ "rhsgref_tla_saboteur",\ ["rhsgref_tla_offroad_armed","rhsgref_tla_offroad_at","rhsgref_tla_btr60","rhsgref_ins_t72ba","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhsgref_cdf_b_su25","rhs_mi28n_vvsc"]\ +] + + +#define RHS_GREF_NAPA_MILITIA_UNITS \ +[\ + "rhsgref_nat_specialist_aa",\ + "rhsgref_nat_grenadier_rpg",\ + "rhsgref_nat_commander",\ + "rhsgref_nat_hunter",\ + "rhsgref_nat_machinegunner",\ + "rhsgref_nat_machinegunner_mg42",\ + "rhsgref_nat_medic",\ + "rhsgref_nat_militiaman_kar98k",\ + "rhsgref_nat_rifleman_akms",\ + "rhsgref_nat_rifleman_aks74",\ + "rhsgref_nat_grenadier",\ + "rhsgref_nat_rifleman_mp44",\ + "rhsgref_nat_rifleman",\ + "rhsgref_nat_rifleman_vz58",\ + "rhsgref_nat_saboteur",\ + "rhsgref_nat_scout",\ + "rhsgref_nat_warlord",\ + ["rhsgref_nat_uaz_dshkm","rhs_tigr_sts_msv","rhsgref_BRDM2_vmf","rhsgref_nat_btr70","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ +] +#define RHS_GREF_NAPA_PARAMILITARY_UNITS \ +[\ + "rhsgref_nat_pmil_specialist_aa",\ + "rhsgref_nat_pmil_grenadier_rpg",\ + "rhsgref_nat_pmil_commander",\ + "rhsgref_nat_pmil_machinegunner",\ + "rhsgref_nat_pmil_hunter",\ + "rhsgref_nat_pmil_medic",\ + "rhsgref_nat_pmil_rifleman_akm",\ + "rhsgref_nat_pmil_rifleman_aksu",\ + "rhsgref_nat_pmil_grenadier",\ + "rhsgref_nat_pmil_rifleman",\ + "rhsgref_nat_pmil_saboteur",\ + "rhsgref_nat_pmil_scout",\ + ["rhsgref_nat_uaz_dshkm","rhs_tigr_sts_msv","rhsgref_BRDM2_vmf","rhsgref_nat_btr70","rhsgref_cdf_b_reg_Mi17Sh","RHS_AN2_B","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ ] \ No newline at end of file From 8210d3fded6c17a5acbeb3743ed6ba1a061f70dd Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 09:03:01 -0700 Subject: [PATCH 14/27] Update Project Opfor Unit Tables.hpp --- .../Unit Tables/Project Opfor Unit Tables.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp index 891f75eb..143fd4a6 100644 --- a/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp +++ b/Headers/Faction Headers/Unit Tables/Project Opfor Unit Tables.hpp @@ -373,7 +373,7 @@ "LOP_PESH_Infantry_Rifleman_3",\ "LOP_PESH_Infantry_Sniper",\ "LOP_PESH_Infantry_TL",\ - ["LOP_PESH_Offroad_M2","LOP_PESH_M1025_W_M2","LOP_IA_BMP1","LOP_IA_T34","LOP_IA_Mi8MTV3_UPK23","RHS_C130J","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ + ["LOP_PESH_Offroad_M2","LOP_PESH_M1025_W_M2","LOP_IA_BMP1","LOP_IA_T34","LOP_IA_Mi8MTV3_UPK23","RHS_AN2_B","RHSGREF_A29B_HIDF","RHS_AH64D_wd"]\ ] //Chernarus National Insurgents @@ -393,7 +393,7 @@ "LOP_NAPA_Infantry_Corpsman",\ "LOP_NAPA_Infantry_TL",\ "LOP_NAPA_Infantry_Prizrak",\ - ["LOP_NAPA_Offroad_M2","LOP_NAPA_Landrover_M2","","","I_C_Heli_Light_01_civil_F","",""]\ + ["LOP_NAPA_Offroad_M2","rhsgref_BRDM2_vmf","rhsgref_nat_btr70","","I_C_Heli_Light_01_civil_F","RHS_AN2_B",""]\ ] //Iranian Armed Forces @@ -558,7 +558,7 @@ "LOP_UA_Officer",\ "LOP_UA_Infantry_SL",\ "LOP_UA_Infantry_TL",\ - ["LOP_UA_UAZ_DshKM","LOP_UA_UAZ_AGS","LOP_UA_BMP2","LOP_UA_T72BB","LOP_UA_Mi8MTV3_UPK23","LOP_UA_Mi8MT_Cargo","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ + ["LOP_UA_UAZ_DshKM","LOP_UA_UAZ_AGS","LOP_UA_BMP2","LOP_UA_T72BB","LOP_UA_Mi8MTV3_UPK23","RHS_AN2_B","rhs_l159_cdf_b_CDF","rhs_mi28n_vvs"]\ ] //United Nations From 7e49ab99bf321e07d294ad3fc6adf7446cacc8d3 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 09:27:39 -0700 Subject: [PATCH 15/27] Fix #283 : Alphabetize Faction List --- Headers/Faction Headers/Define Factions.hpp | 40 ++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index 5e290f37..0129e5f9 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -84,27 +84,27 @@ "CONTACT - NATO WOODLAND", \ "CONTACT - LDF", \ "CONTACT - Spetznas", \ - "OPTRE - UNSC Marines", \ - "OPTRE - ODSTs", \ - "OPTRE - UNSC Army Snow", \ - "OPTRE - United Rebel Front", \ "OPTRE - Battle Jumpers Urban", \ "OPTRE - Insurgents", \ + "OPTRE - ODSTs", \ + "OPTRE - United Rebel Front", \ + "OPTRE - UNSC Army", \ + "OPTRE - UNSC Marines", \ "OPTRE FC - Covenant", \ "OPCAN - Colonial Guard Corps", \ + "OPCAN - Colonial Military Authority", \ + "OPCAN - Colonial Police Force", \ + "OPCAN - Fridens", \ + "OPCAN - Fridens Desert", \ + "OPCAN - Fridens Woodland", \ + "OPCAN - Koslovics", \ + "OPCAN - United Rebel Army", \ "OPCAN - UNSC Army Desert", \ "OPCAN - UNSC Army Woodland", \ "OPCAN - UNSC Marine CE-A", \ "OPCAN - UNSC Marine Desert", \ "OPCAN - UNSC Marine Infinite", \ "OPCAN - UNSC Marine Woodland", \ - "OPCAN - United Rebel Army", \ - "OPCAN - Koslovics", \ - "OPCAN - Fridens Woodland", \ - "OPCAN - Fridens Desert", \ - "OPCAN - Fridens", \ - "OPCAN - Colonial Military Authority", \ - "OPCAN - Colonial Police Force", \ "RHS AFRF - Russia MSV (EMR)", \ "RHS AFRF - Russia MSV (Flora)", \ "RHS AFRF - Russia VDV (EMR)", \ @@ -115,22 +115,22 @@ "RHS AFRF - Russia VMF (RECON)", \ "RHS AFRF - Russia VMF (Flora)", \ "RHS AFRF - Russia VMF (OSN)", \ - "RHS GREF - Horizon Islands Defence Force", \ + "RHS GREF - CDF", \ "RHS GREF - CDF Guard", \ "RHS GREF - CDF Paratroopers", \ - "RHS GREF - CDF", \ "RHS GREF - ChDKZ", \ - "RHS GREF - TLA", \ + "RHS GREF - Horizon Islands Defence Force", \ "RHS GREF - NAPA Militia", \ "RHS GREF - NAPA Paramilitary", \ + "RHS GREF - TLA", \ "RHS USAF - US ARMY (Desert)", \ "RHS USAF - US ARMY (Desert CRYE)", \ "RHS USAF - US ARMY (Woodland)", \ "RHS USAF - US ARMY (Woodland CRYE)", \ "RHS USAF - MARSOC", \ - "RHS USAF - USMC RECON (Desert)", \ "RHS USAF - USMC Infantry (Desert)", \ "RHS USAF - USMC Infantry (Woodland)", \ + "RHS USAF - USMC RECON (Desert)", \ "RHS USAF - USMC RECON (Woodland)", \ "Zombies & Demons - Brittle Crawlers", \ "Zombies & Demons - Demons", \ @@ -205,10 +205,10 @@ RHS_USF_USMC_WOODLAND_UNITS, \ RHS_USF_USMC_WOODLAND_RECON_UNITS, \ ZND_BRITLLE_CRAWLERS, \ - ZND_DEMONS, \ - ZND_FAST, \ - ZND_MEDIUM, \ - ZND_SLOW, \ - ZND_SPIDERS, \ + ZND_DEMONS,\ + ZND_FAST,\ + ZND_MEDIUM,\ + ZND_SLOW,\ + ZND_SPIDERS,\ ZND_WALKERS \ ] \ No newline at end of file From c765c6b842f7c6eb04164455e58d2b5b2aa1108c Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 09:38:41 -0700 Subject: [PATCH 16/27] Fix #283 : Alphabetize faction list --- Headers/Faction Headers/Define Factions.hpp | 54 ++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index 0129e5f9..baef6a14 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -84,13 +84,6 @@ "CONTACT - NATO WOODLAND", \ "CONTACT - LDF", \ "CONTACT - Spetznas", \ - "OPTRE - Battle Jumpers Urban", \ - "OPTRE - Insurgents", \ - "OPTRE - ODSTs", \ - "OPTRE - United Rebel Front", \ - "OPTRE - UNSC Army", \ - "OPTRE - UNSC Marines", \ - "OPTRE FC - Covenant", \ "OPCAN - Colonial Guard Corps", \ "OPCAN - Colonial Military Authority", \ "OPCAN - Colonial Police Force", \ @@ -105,6 +98,13 @@ "OPCAN - UNSC Marine Desert", \ "OPCAN - UNSC Marine Infinite", \ "OPCAN - UNSC Marine Woodland", \ + "OPTRE - Battle Jumpers Urban", \ + "OPTRE - Insurgents", \ + "OPTRE - ODSTs", \ + "OPTRE - United Rebel Front", \ + "OPTRE - UNSC Army", \ + "OPTRE - UNSC Marines", \ + "OPTRE FC - Covenant", \ "RHS AFRF - Russia MSV (EMR)", \ "RHS AFRF - Russia MSV (Flora)", \ "RHS AFRF - Russia VDV (EMR)", \ @@ -112,9 +112,9 @@ "RHS AFRF - Russia VDV (Flora)", \ "RHS AFRF - Russia VDV (M-Flora)", \ "RHS AFRF - Russia VDV (RECON)", \ - "RHS AFRF - Russia VMF (RECON)", \ "RHS AFRF - Russia VMF (Flora)", \ "RHS AFRF - Russia VMF (OSN)", \ + "RHS AFRF - Russia VMF (RECON)", \ "RHS GREF - CDF", \ "RHS GREF - CDF Guard", \ "RHS GREF - CDF Paratroopers", \ @@ -156,27 +156,27 @@ NATO_WOODLAND_UNITS, \ LDF_UNITS, \ SPETZNAS_CONTACT_UNITS, \ - OPTRE_MARINE_UNITS, \ - OPTRE_ODST_UNITS, \ - OPTRE_ARMY_SNOW_UNITS, \ - OPTRE_URF_UNITS, \ - OPTRE_BATTLEJUMPERS_URBAN_UNITS, \ - OPTRE_INSURGENTS_UNITS, \ - OPTRE_COVENANT_UNITS, \ OPCAN_CGC_UNITS, \ + OPCAN_CMA_UNITS, \ + OPCAN_CPF_UNITS, \ + OPCAN_FRIDENS_UNITS, \ + OPCAN_FRIDENS_DES_UNITS, \ + OPCAN_FRIDENS_WDL_UNITS, \ + OPCAN_KOSLOVICS_UNITS, \ + OPCAN_URA_UNITS, \ OPCAN_ARMY_D_UNITS, \ OPCAN_ARMY_WDL_UNITS, \ OPCAN_MARINE_CEA_UNITS, \ OPCAN_MARINE_DES_UNITS, \ OPCAN_MARINE_INF_UNITS, \ OPCAN_MARINE_WDL_UNITS, \ - OPCAN_URA_UNITS, \ - OPCAN_KOSLOVICS_UNITS, \ - OPCAN_FRIDENS_WDL_UNITS, \ - OPCAN_FRIDENS_DES_UNITS, \ - OPCAN_FRIDENS_UNITS, \ - OPCAN_CMA_UNITS, \ - OPCAN_CPF_UNITS, \ + OPTRE_BATTLEJUMPERS_URBAN_UNITS, \ + OPTRE_INSURGENTS_UNITS, \ + OPTRE_ODST_UNITS, \ + OPTRE_URF_UNITS, \ + OPTRE_ARMY_SNOW_UNITS, \ + OPTRE_MARINE_UNITS, \ + OPTRE_COVENANT_UNITS, \ RHS_AFRF_RUS_MSV_EMR_UNITS, \ RHS_AFRF_RUS_MSV_FLORA_UNITS, \ RHS_AFRF_RUS_VDV_EMR_UNITS, \ @@ -184,25 +184,25 @@ RHS_AFRF_RUS_VDV_FLORA_UNITS, \ RHS_AFRF_RUS_VDV_MFLORA_UNITS, \ RHS_AFRF_RUS_VDV_RECON_UNITS, \ - RHS_AFRF_RUS_VMF_RECON_UNITS, \ RHS_AFRF_RUS_VMF_FLORA_UNITS, \ RHS_AFRF_RUS_VV_OSN_UNITS, \ - RHS_GREF_HIDF,\ + RHS_AFRF_RUS_VMF_RECON_UNITS, \ + RHS_GREF_CDF,\ RHS_GREF_CDF_GUARD,\ RHS_GREF_CDF_PARA,\ - RHS_GREF_CDF,\ RHS_GREF_CHDKZ,\ - RHS_GREF_TLA,\ + RHS_GREF_HIDF,\ RHS_GREF_NAPA_MILITIA_UNITS,\ RHS_GREF_NAPA_PARAMILITARY_UNITS,\ + RHS_GREF_TLA,\ RHS_USF_ARMY_DES_UNITS, \ RHS_USF_ARMY_DES_CRYE_UNITS, \ RHS_USF_ARMY_WOODLAND_UNITS, \ RHS_USF_ARMY_WOODLAND_CRYE_UNITS, \ RHS_USF_MARSOC_UNITS, \ - RHS_USF_USMC_DES_RECON_UNITS, \ RHS_USF_USMC_DES_UNITS, \ RHS_USF_USMC_WOODLAND_UNITS, \ + RHS_USF_USMC_DES_RECON_UNITS, \ RHS_USF_USMC_WOODLAND_RECON_UNITS, \ ZND_BRITLLE_CRAWLERS, \ ZND_DEMONS,\ From b03c29924be37df920f1a6ff17195415334ec968 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 10:51:24 -0700 Subject: [PATCH 17/27] Fix #276 : Add Project Opfor Support --- Headers/Faction Headers/Define Factions.hpp | 95 ++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index baef6a14..4e965f55 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -67,7 +67,36 @@ 65,\ 66,\ 67,\ - 68 + 68,\ + 69,\ + 70,\ + 71,\ + 72,\ + 73,\ + 74,\ + 75,\ + 76,\ + 77,\ + 78,\ + 79,\ + 80,\ + 81,\ + 82,\ + 83,\ + 84,\ + 85,\ + 86,\ + 87,\ + 88,\ + 89,\ + 90,\ + 91,\ + 92,\ + 93,\ + 94,\ + 95,\ + 96,\ + 97 #define FACTION_STRINGS \ "VANILLA - NATO", \ @@ -105,6 +134,35 @@ "OPTRE - UNSC Army", \ "OPTRE - UNSC Marines", \ "OPTRE FC - Covenant", \ + "PROJECT OPFOR - African Militia",\ + "PROJECT OPFOR - Afghan National Army",\ + "PROJECT OPFOR - Afghan National Police",\ + "PROJECT OPFOR - Boko Harem",\ + "PROJECT OPFOR - CDF",\ + "PROJECT OPFOR - ChDKZ",\ + "PROJECT OPFOR - Chernarus National Insurgents",\ + "PROJECT OPFOR - Hellnic Armed Forces",\ + "PROJECT OPFOR - Iraqi Armed Forces",\ + "PROJECT OPFOR - Iraqi Armed Forces (Woodland)",\ + "PROJECT OPFOR - Iraqi Special Forces",\ + "PROJECT OPFOR - Iranian Armed Forces",\ + "PROJECT OPFOR - Iranian Special Forces",\ + "PROJECT OPFOR - Irish Republic Army",\ + "PROJECT OPFOR - Islamic State",\ + "PROJECT OPFOR - Korean Peoples Army",\ + "PROJECT OPFOR - Kurdish Peshmerga",\ + "PROJECT OPFOR - Middle East Militia",\ + "PROJECT OPFOR - Novorossiya Armed Forces",\ + "PROJECT OPFOR - PMC",\ + "PROJECT OPFOR - Royal Army Corps of Sahrani",\ + "PROJECT OPFOR - Syrian Armed Forces",\ + "PROJECT OPFOR - Sahrani Liberation Army",\ + "PROJECT OPFOR - Takistan Armed Forces",\ + "PROJECT OPFOR - Turkish Armed Forces",\ + "PROJECT OPFOR - Ukrainian Armed Forces",\ + "PROJECT OPFOR - Ulseter Volunteer Force",\ + "PROJECT OPFOR - Ultranationalists",\ + "PROJECT OPFOR - United Nations",\ "RHS AFRF - Russia MSV (EMR)", \ "RHS AFRF - Russia MSV (Flora)", \ "RHS AFRF - Russia VDV (EMR)", \ @@ -177,6 +235,41 @@ OPTRE_ARMY_SNOW_UNITS, \ OPTRE_MARINE_UNITS, \ OPTRE_COVENANT_UNITS, \ + + + PROJOP_AFRICAN_MILITIA_UNITS,\ + PROJOP_ANA_UNITS,\ + PROJOP_ANP_UNITS,\ + PROJOP_BOKO_HAREM_UNITS,\ + PROJOP_CDF_UNITS,\ + PROJOP_CHDKZ_UNITS,\ + PROJOP_CNI_UNITS,\ + PROJOP_HAF_UNITS,\ + PROJOP_IAF_UNITS,\ + PROJOP_IAF_WDL_UNITS,\ + PROJOP_IAF_SF_UNITS,\ + PROJOP_IRAN_UNITS,\ + PROJOP_IRAN_SF_UNITS,\ + PROJOP_IRA_UNITS,\ + PROJOP_ISIS_UNITS,\ + PROJOP_KPA_UNITS,\ + PROJOP_KPF_UNITS,\ + PROJOP_MEM_UNITS,\ + PROJOP_NAF_UNITS,\ + PROJOP_PMC_UNITS,\ + PROJOP_RACS_UNITS,\ + PROJOP_SAF_UNITS,\ + PROJOP_SLA_UNITS,\ + PROJOP_TAF_UNITS,\ + PROJOP_TURK_UNITS,\ + PROJOP_UAF_UNITS,\ + PROJOP_UVF_UNITS,\ + PROJOP_ULT_UNITS,\ + PROJOP_UN_UNITS,\ + + + + RHS_AFRF_RUS_MSV_EMR_UNITS, \ RHS_AFRF_RUS_MSV_FLORA_UNITS, \ RHS_AFRF_RUS_VDV_EMR_UNITS, \ From 57964669d0dbdeac239a178bf00fa634d611aac9 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 10:52:39 -0700 Subject: [PATCH 18/27] Update Define Factions.hpp --- Headers/Faction Headers/Define Factions.hpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Headers/Faction Headers/Define Factions.hpp b/Headers/Faction Headers/Define Factions.hpp index 4e965f55..2fa6fe95 100644 --- a/Headers/Faction Headers/Define Factions.hpp +++ b/Headers/Faction Headers/Define Factions.hpp @@ -235,8 +235,6 @@ OPTRE_ARMY_SNOW_UNITS, \ OPTRE_MARINE_UNITS, \ OPTRE_COVENANT_UNITS, \ - - PROJOP_AFRICAN_MILITIA_UNITS,\ PROJOP_ANA_UNITS,\ PROJOP_ANP_UNITS,\ @@ -266,10 +264,6 @@ PROJOP_UVF_UNITS,\ PROJOP_ULT_UNITS,\ PROJOP_UN_UNITS,\ - - - - RHS_AFRF_RUS_MSV_EMR_UNITS, \ RHS_AFRF_RUS_MSV_FLORA_UNITS, \ RHS_AFRF_RUS_VDV_EMR_UNITS, \ From 3ecc31546860b4e846ba59d2fe620ae602bd5a49 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Tue, 8 Dec 2020 17:44:30 -0700 Subject: [PATCH 19/27] Temp garbage script to keep AI fro moving through objects --- .../Init Functions/fn_prepareUnitClasses.sqf | 4 +-- Functions/Other/fn_pathingLoop.sqf | 29 +++++++++++++++++++ Functions/build/fn_purchaseObject.sqf | 2 ++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Functions/Init Functions/fn_prepareUnitClasses.sqf b/Functions/Init Functions/fn_prepareUnitClasses.sqf index 93cee727..12ce8ed8 100644 --- a/Functions/Init Functions/fn_prepareUnitClasses.sqf +++ b/Functions/Init Functions/fn_prepareUnitClasses.sqf @@ -69,7 +69,7 @@ private _fn_sortFactionClasses = { private _allowedUnitClasses = []; _unitClassesToCheck apply { _tempUnitClass = _x; - // exclude the vehicle array and make sure unit actual exists + // exclude the vehicle array and make sure unit actually exists if (_tempUnitClass isEqualType "" AND {call _fn_checkTempClass}) then { _allowedUnitClasses pushBack _tempUnitClass; }; @@ -80,7 +80,7 @@ private _fn_sortFactionClasses = { // exit the mission if (_unitClassesToCheck isEqualTo _defaultFactionClasses) then { null = [] spawn { - null = ["A default faction appears to be empty, the mission will now end to reconfigure parameters"] remoteExec ["hint",0,true]; + null = ["A default faction appears to be empty, the mission will now end to reconfigure parameters"] remoteExecCall ["BIS_fnc_error",0]; sleep 20; call BIS_fnc_endMissionServer; }; diff --git a/Functions/Other/fn_pathingLoop.sqf b/Functions/Other/fn_pathingLoop.sqf index 71cbf43b..f4c069cd 100644 --- a/Functions/Other/fn_pathingLoop.sqf +++ b/Functions/Other/fn_pathingLoop.sqf @@ -115,6 +115,35 @@ private _fn_handleStationaryLeader = { }; +null = [_groupLeader] spawn { + sleep 1; + + params ["_unit"]; + if (!isNull (objectParent _unit)) exitWith {}; + + private ["_objects","_position","_index","_moveToPosition"]; + while {alive _unit AND {BLWK_doRunLoop}} do { + sleep 0.1; + + _position = getposASL _unit; + _objects = lineIntersectsObjs [_position,AGLToASL (_unit getRelPos [1,0]), objNull, _unit, false, 4]; + if !(_objects isEqualTo []) then { + _index = _objects findIf {_x getVariable ["BLWK_builtObject",false]}; + if (_index != -1) then { + _moveToPosition = (_unit getRelPos [20,180]); + _unit setPosATL (_unit getRelPos [2,180]); + + waitUntil { + _unit move _moveToPosition; + sleep 0.25; + _unit distance2D _moveToPosition < 5; + } + }; + }; + }; + +}; + #define LOOP_VAR_NAME "BLWK_runPathingLoop" _groupToCheck setVariable [LOOP_VAR_NAME,true]; diff --git a/Functions/build/fn_purchaseObject.sqf b/Functions/build/fn_purchaseObject.sqf index cfe43105..ebd8a2a5 100644 --- a/Functions/build/fn_purchaseObject.sqf +++ b/Functions/build/fn_purchaseObject.sqf @@ -83,6 +83,8 @@ null = [_purchasedObject,player,true] spawn BLWK_fnc_pickupObject; sleep 1; [_purchasedObject] call BLWK_fnc_addBuildableObjectActions; // give local player object actions +_purchasedObject setVariable ["BLWK_builtObject",true]; + /* Due to network issues with setOwner objects that are too quickly manipulated by other players after being set down From ada5d6262a83dd113293806e3ac1bb9d9ab4c639 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 08:34:12 -0700 Subject: [PATCH 20/27] Fix #285 : Add a mission param for AI collision detection --- Functions/Init Functions/fn_prepareGlobals.sqf | 2 ++ Headers/descriptionEXT/missionParams.hpp | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/Functions/Init Functions/fn_prepareGlobals.sqf b/Functions/Init Functions/fn_prepareGlobals.sqf index 7fdbb1dc..7d09fcdd 100644 --- a/Functions/Init Functions/fn_prepareGlobals.sqf +++ b/Functions/Init Functions/fn_prepareGlobals.sqf @@ -103,6 +103,8 @@ if (isServer OR {!hasInterface}) then { // used for chaning medical items of OPTRE units (biofoam to FAKs) BLWK_isOptreLoaded = ["OPTRE_core"] call KISKA_fnc_ispatchLoaded; + + BLWK_doDetectCollision = [false,true] select ("BLWK_doDetectCollision" call BIS_fnc_getParamValue); }; if (isServer) then { // We don't need to constantly check if the server is dedicated, and we only want to run things like diff --git a/Headers/descriptionEXT/missionParams.hpp b/Headers/descriptionEXT/missionParams.hpp index 121dc0d7..afc3398c 100644 --- a/Headers/descriptionEXT/missionParams.hpp +++ b/Headers/descriptionEXT/missionParams.hpp @@ -428,6 +428,13 @@ class BLWK_heavyArmorLikelihood A_SPACE(Other); A_SECTION_HEADER(Other); +class BLWK_doDetectCollision +{ + title = "Run Enemy AI Collision Script? (If you plan to be in a mostly rural environment, turn off)"; + values[] = ZERO_OR_ONE; + texts[] = NO_OR_YES; + default = 1; +}; class BLWK_multipleLootReveals { title = "Show all loot with reveal?"; From 209816c1438bdd87919e103d8bacf94cfb1084b2 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 08:46:43 -0700 Subject: [PATCH 21/27] Fix #287 & #86 : Psuedo AI collsion detection for built objects --- .../fn_createBuildObjectsArray.sqf | 13 ++-- Functions/Other/fn_aiCollisionLoop.sqf | 65 +++++++++++++++++++ .../fn_stdEnemyManCreateCode.sqf | 2 + Functions/build/fn_purchaseObject.sqf | 8 ++- .../Build Items/Main Build Items.hpp | 7 ++ Headers/descriptionEXT/functions.hpp | 2 + 6 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 Functions/Other/fn_aiCollisionLoop.sqf diff --git a/Functions/Init Functions/fn_createBuildObjectsArray.sqf b/Functions/Init Functions/fn_createBuildObjectsArray.sqf index dda2f0da..fb548bf7 100644 --- a/Functions/Init Functions/fn_createBuildObjectsArray.sqf +++ b/Functions/Init Functions/fn_createBuildObjectsArray.sqf @@ -25,17 +25,17 @@ params [ ]; if (isNull _configToSearch) exitWith { - "_configToSearch isNull" call BIS_fnc_error; + "BLWK_fnc_createBuildObjectsArray: _configToSearch isNull" call BIS_fnc_error; }; if !(isClass _configToSearch) exitWith { - ["_configToSearch %1 is not a class",_configToSearch] call BIS_fnc_error; + ["BLWK_fnc_createBuildObjectsArray: _configToSearch %1 is not a class",_configToSearch] call BIS_fnc_error; }; private _configs = "true" configClasses _configToSearch; if (_configs isEqualTo []) exitWith { - ["No classes found in _configToSearch %1",_configToSearch] call BIS_fnc_error; + ["BLWK_fnc_createBuildObjectsArray: No classes found in _configToSearch %1",_configToSearch] call BIS_fnc_error; }; private _returnArray = []; @@ -49,7 +49,8 @@ private [ "_attachmentY_temp", "_attachmentZ_temp", "_invincible_temp", - "_keepInventory_temp" + "_keepInventory_temp", + "_detectCollision_temp" ]; _configs apply { _class_temp = configName _x; @@ -64,6 +65,7 @@ _configs apply { _attachmentZ_temp = [_x >> "attachmentZ"] call BIS_fnc_getCfgData; _invincible_temp = [_x >> "invincible"] call BIS_fnc_getCfgDataBool; _keepInventory_temp = [_x >> "keepInventory"] call BIS_fnc_getCfgDataBool; + _detectCollision_temp = [_x >> "detectCollsion"] call BIS_fnc_getCfgDataBool; _returnArray pushBack [ @@ -73,7 +75,8 @@ _configs apply { [_rotation_temp,[_attachmentX_temp,_attachmentY_temp,_attachmentZ_temp]], _hasAI_temp, _invincible_temp, - _keepInventory_temp + _keepInventory_temp, + _detectCollision_temp ]; }; }; diff --git a/Functions/Other/fn_aiCollisionLoop.sqf b/Functions/Other/fn_aiCollisionLoop.sqf new file mode 100644 index 00000000..107a8df8 --- /dev/null +++ b/Functions/Other/fn_aiCollisionLoop.sqf @@ -0,0 +1,65 @@ +/* ---------------------------------------------------------------------------- +Function: BLWK_fnc_aiCollisionLoop + +Description: + Used to keep the AI from attempting to walk through a placed object. + + Units on roads sometimes follow predetermined paths that can have them walk + through objects a user places down. + +Parameters: + 0: _unit : - The unit to run the loop on + +Returns: + NOTHING + +Examples: + (begin example) + + null = [myUnit] spawn BLWK_fnc_aiCollisionLoop; + + (end) + +Author(s): + Ansible2 // Cipher +---------------------------------------------------------------------------- */ +if (!BLWK_doDetectCollision) exitWith {}; + +if (!canSuspend) exitWith { + "BLWK_fnc_aiCollisionLoop: should be run in scheduled environment" call BIS_fnc_error; + null = _this spawn BLWK_fnc_aiCollisionLoop; +}; + +params ["_unit"]; + +sleep 5; + +private ["_objects","_position","_index","_moveToPosition"]; +while {BLWK_doDetectCollision AND {alive _unit}} do { + sleep 0.1; + + // don't run while a unit is in a vehicle + if (isNull (objectParent _unit)) then { + _position = getposASL _unit; + _objects = lineIntersectsObjs [_position,AGLToASL (_unit getRelPos [1,0]), objNull, _unit, false, 4]; + + if !(_objects isEqualTo []) then { + + // check if any encountered object is a built one + _index = _objects findIf {_x getVariable ["BLWK_collisionObject",false]}; + if (_index != -1) then { + _moveToPosition = (_unit getRelPos [20,180]); + // push the unit back from the object + _unit setPosATL (_unit getRelPos [2,180]); + + waitUntil { + // tell the unit to move away + _unit move _moveToPosition; + sleep 0.25; + if (_unit distance2D _moveToPosition < 5 OR {!alive _unit}) exitWith {true}; + false + }; + }; + }; + }; +}; \ No newline at end of file diff --git a/Functions/Wave Type Libraries/Standard Wave Library/fn_stdEnemyManCreateCode.sqf b/Functions/Wave Type Libraries/Standard Wave Library/fn_stdEnemyManCreateCode.sqf index c5aaf053..9665204b 100644 --- a/Functions/Wave Type Libraries/Standard Wave Library/fn_stdEnemyManCreateCode.sqf +++ b/Functions/Wave Type Libraries/Standard Wave Library/fn_stdEnemyManCreateCode.sqf @@ -30,6 +30,8 @@ if (isNil "_group") then { null = [_group] spawn BLWK_fnc_pathingLoop; +null = [_unit] spawn BLWK_fnc_aiCollisionLoop; + null = [_group] spawn BLWK_fnc_startStalkingPlayers; diff --git a/Functions/build/fn_purchaseObject.sqf b/Functions/build/fn_purchaseObject.sqf index ebd8a2a5..ee458188 100644 --- a/Functions/build/fn_purchaseObject.sqf +++ b/Functions/build/fn_purchaseObject.sqf @@ -41,7 +41,8 @@ params [ "", // don't need attachment info "_hasAi", ["_indestructable",false], - ["_keepInventory",false] + ["_keepInventory",false], + ["_doDetectCollision",false] ]; /* @@ -83,7 +84,10 @@ null = [_purchasedObject,player,true] spawn BLWK_fnc_pickupObject; sleep 1; [_purchasedObject] call BLWK_fnc_addBuildableObjectActions; // give local player object actions -_purchasedObject setVariable ["BLWK_builtObject",true]; +if (_doDetectCollision) then { + // only the AI needs to know about it + _purchasedObject setVariable ["BLWK_collisionObject",true,BLWK_theAIHandlerOwnerID]; +}; /* Due to network issues with setOwner diff --git a/Headers/descriptionEXT/Build Items/Main Build Items.hpp b/Headers/descriptionEXT/Build Items/Main Build Items.hpp index 4b5ad009..5ca7ef8a 100644 --- a/Headers/descriptionEXT/Build Items/Main Build Items.hpp +++ b/Headers/descriptionEXT/Build Items/Main Build Items.hpp @@ -11,6 +11,7 @@ class BLWK_genericBuildItemBase attachmentZ = 1; // height invincible = 0; // 0 false, 1 true keepInventory = 0; // don't clear inventory + detectCollsion = 1; // registers with ai collision script }; class BLWK_genericTurretBase: BLWK_genericBuildItemBase { @@ -19,6 +20,7 @@ class BLWK_genericTurretBase: BLWK_genericBuildItemBase attachmentY = 2; attachmentZ = 1; invincible = 1; + detectCollsion = 0; }; class BLWK_buildableItems @@ -183,6 +185,7 @@ class BLWK_buildableItems rotation = 90; attachmentY = 2; invincible = 1; + detectCollsion = 0; }; class Land_GH_Stairs_F : BLWK_genericBuildItemBase @@ -223,6 +226,7 @@ class BLWK_buildableItems price = 1200; category = STORAGE_CATEGORY; invincible = 1; + detectCollsion = 0; }; class B_HMG_01_high_F : BLWK_genericTurretBase @@ -256,6 +260,7 @@ class BLWK_buildableItems rotation = 180; attachmentY = 6; attachmentZ = 5; + detectCollsion = 0; }; class B_HMG_01_A_F : BLWK_genericTurretBase @@ -344,6 +349,7 @@ class BLWK_buildableItems category = STORAGE_CATEGORY; attachmentY = 2; keepInventory = 1; + detectCollsion = 0; }; class ACE_medicalSupplyCrate : BLWK_genericBuildItemBase { @@ -351,6 +357,7 @@ class BLWK_buildableItems category = STORAGE_CATEGORY; attachmentY = 2; keepInventory = 1; + detectCollsion = 0; }; #include "OPTRE Build Items.hpp" #include "RHS Build Items.hpp" diff --git a/Headers/descriptionEXT/functions.hpp b/Headers/descriptionEXT/functions.hpp index b35df802..29899bcc 100644 --- a/Headers/descriptionEXT/functions.hpp +++ b/Headers/descriptionEXT/functions.hpp @@ -157,6 +157,8 @@ class BLWK {}; class adjustPlayerTraits {}; + class aiCollisionLoop + {}; /* class checkDLC {}; From b8b568e9ffdb651355fed5ace17f26365aa1bbb5 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 08:46:58 -0700 Subject: [PATCH 22/27] Updated some error messages --- Functions/Other/fn_pathingLoop.sqf | 34 ++---------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/Functions/Other/fn_pathingLoop.sqf b/Functions/Other/fn_pathingLoop.sqf index f4c069cd..dacc74f0 100644 --- a/Functions/Other/fn_pathingLoop.sqf +++ b/Functions/Other/fn_pathingLoop.sqf @@ -38,7 +38,7 @@ params [ ]; if (isNull _groupToCheck) exitWith { - "null _groupToCheck" call BIS_fnc_error; + "BLWK_fnc_pathingLoop: null _groupToCheck" call BIS_fnc_error; }; // follower units won't likely get stuck as their primary goal is to join the formation at all cost @@ -48,7 +48,7 @@ if (_groupToCheck isEqualType objNull) then { private _groupLeader = leader _groupToCheck; if (!alive _groupLeader) exitWith { - ["_groupLeader %1 is dead!",_groupLeader] call BIS_fnc_error; + ["BLWK_fnc_pathingLoop: _groupLeader %1 is dead!",_groupLeader] call BIS_fnc_error; }; @@ -115,36 +115,6 @@ private _fn_handleStationaryLeader = { }; -null = [_groupLeader] spawn { - sleep 1; - - params ["_unit"]; - if (!isNull (objectParent _unit)) exitWith {}; - - private ["_objects","_position","_index","_moveToPosition"]; - while {alive _unit AND {BLWK_doRunLoop}} do { - sleep 0.1; - - _position = getposASL _unit; - _objects = lineIntersectsObjs [_position,AGLToASL (_unit getRelPos [1,0]), objNull, _unit, false, 4]; - if !(_objects isEqualTo []) then { - _index = _objects findIf {_x getVariable ["BLWK_builtObject",false]}; - if (_index != -1) then { - _moveToPosition = (_unit getRelPos [20,180]); - _unit setPosATL (_unit getRelPos [2,180]); - - waitUntil { - _unit move _moveToPosition; - sleep 0.25; - _unit distance2D _moveToPosition < 5; - } - }; - }; - }; - -}; - - #define LOOP_VAR_NAME "BLWK_runPathingLoop" _groupToCheck setVariable [LOOP_VAR_NAME,true]; From de38e75151f9bd62b6ef2e5b63d46e3bdebe5fa9 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 08:47:07 -0700 Subject: [PATCH 23/27] whitespace --- Functions/Init Functions/fn_initServerAlias.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/Functions/Init Functions/fn_initServerAlias.sqf b/Functions/Init Functions/fn_initServerAlias.sqf index dd97abe0..f3cccf8c 100644 --- a/Functions/Init Functions/fn_initServerAlias.sqf +++ b/Functions/Init Functions/fn_initServerAlias.sqf @@ -25,6 +25,7 @@ null = [] spawn BLWK_fnc_createBattleAmbienceSound; sleep (BLWK_timeBetweenRounds - 15); null = remoteExec ["BLWK_fnc_startWaveCountDownFinal",BLWK_allClientsTargetID]; + sleep 15; null = [] spawn BLWK_fnc_startWave; From d44286c9e98fce29730d4fc5dc9ab2098e51cfb8 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 08:49:18 -0700 Subject: [PATCH 24/27] Fix #288 : Make cargo tower indestructable --- Headers/descriptionEXT/Build Items/Main Build Items.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Headers/descriptionEXT/Build Items/Main Build Items.hpp b/Headers/descriptionEXT/Build Items/Main Build Items.hpp index 5ca7ef8a..4058c1b5 100644 --- a/Headers/descriptionEXT/Build Items/Main Build Items.hpp +++ b/Headers/descriptionEXT/Build Items/Main Build Items.hpp @@ -260,6 +260,7 @@ class BLWK_buildableItems rotation = 180; attachmentY = 6; attachmentZ = 5; + invincible = 1; detectCollsion = 0; }; From 7cc72f3880d4b1551c1e3c1629af3a032f57dacf Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 08:51:14 -0700 Subject: [PATCH 25/27] Fix #290 : Respawn counter after reaching 0 does not go back up after units respawn --- Functions/Waves/fn_endWave.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Functions/Waves/fn_endWave.sqf b/Functions/Waves/fn_endWave.sqf index e7582f44..49bb2833 100644 --- a/Functions/Waves/fn_endWave.sqf +++ b/Functions/Waves/fn_endWave.sqf @@ -58,7 +58,8 @@ _players apply { if (!alive _playerTemp) then { // add a single respawn ticket for each dead unit - [BLUFOR,1] call BIS_fnc_respawnTickets; + private _respawns = [BLUFOR,1] call BIS_fnc_respawnTickets; + missionNamespace setVariable ["BLWK_numRespawnTickets",_respawns,true]; [0] remoteExecCall ["setPlayerRespawnTime",_playerTemp]; [_playerTemp] remoteExecCall ["forceRespawn",_playerTemp]; } else { From f1aa587d5103870a009e1e5375d532cb29e41461 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 09:04:32 -0700 Subject: [PATCH 26/27] Fix #286 : Paratrooper units don't seem to get loadout back after landing - units were probably still in a parachute becausue height detection was to much --- KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf b/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf index 5ab35470..b8db2b6b 100644 --- a/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf +++ b/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf @@ -115,7 +115,7 @@ localNamespace setVariable ["KISKA_fnc_staticline_doEJect",{ }; waitUntil { - if (((getPosATL _unit) select 2) < 1) exitWith {true}; + if (((getPosATL _unit) select 2) < 0.1 OR {isTouchingGround _unit}) exitWith {true}; sleep 2; false; }; @@ -126,7 +126,7 @@ localNamespace setVariable ["KISKA_fnc_staticline_doEJect",{ _unit setUnitLoadout _loadout; }; }]; - +attachedObjects // execute eject { From 4643539131b756c49ce00ca540fd0f6d4fe08fa1 Mon Sep 17 00:00:00 2001 From: Ansible2 <55198007+Ansible2@users.noreply.github.com> Date: Wed, 9 Dec 2020 09:04:45 -0700 Subject: [PATCH 27/27] Update fn_staticLine.sqf --- KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf b/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf index b8db2b6b..40a1b116 100644 --- a/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf +++ b/KISKA Systems/KISKA Utility Functions/fn_staticLine.sqf @@ -126,7 +126,6 @@ localNamespace setVariable ["KISKA_fnc_staticline_doEJect",{ _unit setUnitLoadout _loadout; }; }]; -attachedObjects // execute eject {