commit
c75b807941
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,127 +1,132 @@
|
|||
// Global Mobilization East Germany Arsenal Preset
|
||||
/*
|
||||
Global Mobilization East Germany Arsenal Preset
|
||||
|
||||
// DLCs needed:
|
||||
// Global Mobilization
|
||||
Mods needed:
|
||||
- Global Mobilization
|
||||
|
||||
Mods optional:
|
||||
- None
|
||||
*/
|
||||
|
||||
GRLIB_arsenal_weapons = [
|
||||
// AK-74
|
||||
"gm_mpiak74n_brn",
|
||||
"gm_mpiaks74nk_brn",
|
||||
"gm_mpiaks74n_brn",
|
||||
// AK-74
|
||||
"gm_mpiak74n_brn",
|
||||
"gm_mpiaks74nk_brn",
|
||||
"gm_mpiaks74n_brn",
|
||||
|
||||
// RPK-74
|
||||
"gm_lmgrpk74n_brn",
|
||||
"gm_lmgrpk74n_prp",
|
||||
// RPK-74
|
||||
"gm_lmgrpk74n_brn",
|
||||
"gm_lmgrpk74n_prp",
|
||||
|
||||
// RPK
|
||||
"gm_lmgrpk_brn",
|
||||
"gm_lmgrpk_prp",
|
||||
// RPK
|
||||
"gm_lmgrpk_brn",
|
||||
"gm_lmgrpk_prp",
|
||||
|
||||
// LP1 26.5mm
|
||||
"gm_lp1_blk",
|
||||
// LP1 26.5mm
|
||||
"gm_lp1_blk",
|
||||
|
||||
// PKM
|
||||
"gm_hmgpkm_prp",
|
||||
// PKM
|
||||
"gm_hmgpkm_prp",
|
||||
|
||||
// RPG-7
|
||||
"gm_rpg7_prp_pgo7v"
|
||||
// RPG-7
|
||||
"gm_rpg7_prp_pgo7v"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_magazines = [
|
||||
|
||||
// LP1 26.5mm
|
||||
"gm_1Rnd_265mm_flare_single_grn_gc",
|
||||
"gm_1Rnd_265mm_flare_single_red_gc",
|
||||
"gm_1Rnd_265mm_flare_multi_red_gc",
|
||||
// LP1 26.5mm
|
||||
"gm_1Rnd_265mm_flare_single_grn_gc",
|
||||
"gm_1Rnd_265mm_flare_single_red_gc",
|
||||
"gm_1Rnd_265mm_flare_multi_red_gc",
|
||||
|
||||
"gm_1Rnd_265mm_smoke_single_yel_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blu_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blk_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_yel_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blu_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blk_gc",
|
||||
|
||||
// RPG-7
|
||||
"gm_1Rnd_40mm_heat_pg7v_rpg7",
|
||||
// RPG-7
|
||||
"gm_1Rnd_40mm_heat_pg7v_rpg7",
|
||||
|
||||
// AK-74 + RPK-74
|
||||
"gm_30Rnd_545x39mm_B_7N6_ak74_org",
|
||||
"gm_30Rnd_545x39mm_B_7N6_ak74_prp",
|
||||
"gm_30Rnd_545x39mm_B_T_7T3_ak74_prp",
|
||||
"gm_30Rnd_545x39mm_B_T_7T3_ak74_org",
|
||||
// AK-74 + RPK-74
|
||||
"gm_30Rnd_545x39mm_B_7N6_ak74_org",
|
||||
"gm_30Rnd_545x39mm_B_7N6_ak74_prp",
|
||||
"gm_30Rnd_545x39mm_B_T_7T3_ak74_prp",
|
||||
"gm_30Rnd_545x39mm_B_T_7T3_ak74_org",
|
||||
|
||||
"gm_45Rnd_545x39mm_B_7N6_ak74_prp",
|
||||
"gm_45Rnd_545x39mm_B_7N6_ak74_org",
|
||||
"gm_45Rnd_545x39mm_B_T_7T3_ak74_prp",
|
||||
"gm_45Rnd_545x39mm_B_T_7T3_ak74_org",
|
||||
"gm_45Rnd_545x39mm_B_7N6_ak74_prp",
|
||||
"gm_45Rnd_545x39mm_B_7N6_ak74_org",
|
||||
"gm_45Rnd_545x39mm_B_T_7T3_ak74_prp",
|
||||
"gm_45Rnd_545x39mm_B_T_7T3_ak74_org",
|
||||
|
||||
// RPK
|
||||
"gm_30Rnd_762x39mm_B_M43_ak47_blk",
|
||||
"gm_30Rnd_762x39mm_B_T_M43_ak47_blk",
|
||||
// RPK
|
||||
"gm_30Rnd_762x39mm_B_M43_ak47_blk",
|
||||
"gm_30Rnd_762x39mm_B_T_M43_ak47_blk",
|
||||
|
||||
"gm_75Rnd_762x39mm_B_M43_ak47_blk",
|
||||
"gm_75Rnd_762x39mm_B_T_M43_ak47_blk",
|
||||
"gm_75Rnd_762x39mm_B_M43_ak47_blk",
|
||||
"gm_75Rnd_762x39mm_B_T_M43_ak47_blk",
|
||||
|
||||
// PKM
|
||||
"gm_100Rnd_762x54mm_B_T_T46_pk_grn",
|
||||
"gm_100Rnd_762x54mm_API_B32_pk_grn",
|
||||
// PKM
|
||||
"gm_100Rnd_762x54mm_B_T_T46_pk_grn",
|
||||
"gm_100Rnd_762x54mm_API_B32_pk_grn",
|
||||
|
||||
// Grenades
|
||||
"gm_handgrenade_frag_rgd5",
|
||||
"gm_smokeshell_blk_gc",
|
||||
"gm_smokeshell_blu_gc",
|
||||
"gm_smokeshell_grn_gc",
|
||||
"gm_smokeshell_org_gc",
|
||||
"gm_smokeshell_red_gc",
|
||||
"gm_smokeshell_wht_gc",
|
||||
// Grenades
|
||||
"gm_handgrenade_frag_rgd5",
|
||||
"gm_smokeshell_blk_gc",
|
||||
"gm_smokeshell_blu_gc",
|
||||
"gm_smokeshell_grn_gc",
|
||||
"gm_smokeshell_org_gc",
|
||||
"gm_smokeshell_red_gc",
|
||||
"gm_smokeshell_wht_gc",
|
||||
|
||||
// Explosives
|
||||
"gm_explosive_plnp_charge",
|
||||
"gm_mine_at_tm46"
|
||||
// Explosives
|
||||
"gm_explosive_plnp_charge",
|
||||
"gm_mine_at_tm46"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_items = [
|
||||
|
||||
// Uniforms
|
||||
"gm_gc_army_uniform_dress_80_gry",
|
||||
"gm_gc_army_uniform_soldier_80_blk",
|
||||
"gm_gc_army_uniform_soldier_80_str",
|
||||
// Uniforms
|
||||
"gm_gc_army_uniform_dress_80_gry",
|
||||
"gm_gc_army_uniform_soldier_80_blk",
|
||||
"gm_gc_army_uniform_soldier_80_str",
|
||||
|
||||
// Vests
|
||||
"gm_gc_army_vest_80_leader_str",
|
||||
"gm_gc_army_vest_80_lmg_str",
|
||||
"gm_gc_army_vest_80_belt_str",
|
||||
"gm_gc_army_vest_80_rifleman_str",
|
||||
"gm_gc_army_vest_80_at_str",
|
||||
// Vests
|
||||
"gm_gc_army_vest_80_leader_str",
|
||||
"gm_gc_army_vest_80_lmg_str",
|
||||
"gm_gc_army_vest_80_belt_str",
|
||||
"gm_gc_army_vest_80_rifleman_str",
|
||||
"gm_gc_army_vest_80_at_str",
|
||||
|
||||
// Headgear
|
||||
"gm_gc_army_headgear_m56_cover_str",
|
||||
"gm_gc_army_headgear_cap_80_gry",
|
||||
"gm_gc_army_headgear_crewhat_80_blk",
|
||||
"gm_gc_army_headgear_m56_net",
|
||||
"gm_gc_army_headgear_hat_80_grn",
|
||||
// Headgear
|
||||
"gm_gc_army_headgear_m56_cover_str",
|
||||
"gm_gc_army_headgear_cap_80_gry",
|
||||
"gm_gc_army_headgear_crewhat_80_blk",
|
||||
"gm_gc_army_headgear_m56_net",
|
||||
"gm_gc_army_headgear_hat_80_grn",
|
||||
|
||||
// Facewear
|
||||
"gm_gc_army_facewear_schm41m",
|
||||
// Facewear
|
||||
"gm_gc_army_facewear_schm41m",
|
||||
|
||||
// Attachments
|
||||
"gm_pgo7v_blk",
|
||||
// Attachments
|
||||
"gm_pgo7v_blk",
|
||||
|
||||
// Items
|
||||
"gm_gc_compass_f73",
|
||||
"gm_repairkit_01",
|
||||
"gm_gc_army_gauzeBandage",
|
||||
"gm_gc_army_medkit",
|
||||
"gm_watch_kosei_80",
|
||||
"gm_df7x40_grn", // Binocular
|
||||
"ItemMap",
|
||||
"ItemWatch",
|
||||
"ItemRadio"
|
||||
// Items
|
||||
"gm_gc_compass_f73",
|
||||
"gm_repairkit_01",
|
||||
"gm_gc_army_gauzeBandage",
|
||||
"gm_gc_army_medkit",
|
||||
"gm_watch_kosei_80",
|
||||
"gm_df7x40_grn", // Binocular
|
||||
"ItemMap",
|
||||
"ItemWatch",
|
||||
"ItemRadio"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_backpacks = [
|
||||
"gm_gc_army_backpack_80_at_str",
|
||||
"gm_gc_army_backpack_80_lmg_str",
|
||||
"gm_gc_army_backpack_80_mgk_str",
|
||||
"gm_gc_army_backpack_80_engineer_str",
|
||||
"gm_gc_army_backpack_80_demolition_str",
|
||||
"gm_gc_army_backpack_80_assaultpack_mgk_str",
|
||||
"gm_gc_army_backpack_80_assaultpack_lmg_str"
|
||||
"gm_gc_army_backpack_80_at_str",
|
||||
"gm_gc_army_backpack_80_lmg_str",
|
||||
"gm_gc_army_backpack_80_mgk_str",
|
||||
"gm_gc_army_backpack_80_engineer_str",
|
||||
"gm_gc_army_backpack_80_demolition_str",
|
||||
"gm_gc_army_backpack_80_assaultpack_mgk_str",
|
||||
"gm_gc_army_backpack_80_assaultpack_lmg_str"
|
||||
];
|
||||
|
|
|
@ -1,170 +1,177 @@
|
|||
// Global Mobilization West Germany Arsenal Preset
|
||||
/*
|
||||
Global Mobilization West Germany Arsenal Preset
|
||||
|
||||
// DLCs needed:
|
||||
// Global Mobilization
|
||||
Author: Dahlgren - https://github.com/Dahlgren
|
||||
|
||||
Mods needed:
|
||||
- Global Mobilization
|
||||
|
||||
Mods optional:
|
||||
- None
|
||||
*/
|
||||
|
||||
GRLIB_arsenal_weapons = [
|
||||
// G3A3 + G3A4
|
||||
"gm_g3a3_oli",
|
||||
"gm_g3a4_oli",
|
||||
// G3A3 + G3A4
|
||||
"gm_g3a3_oli",
|
||||
"gm_g3a4_oli",
|
||||
|
||||
// MG3 7.62x51 mm
|
||||
"gm_mg3_blk",
|
||||
// MG3 7.62x51 mm
|
||||
"gm_mg3_blk",
|
||||
|
||||
// MP2A1 9x19 mm
|
||||
"gm_mp2a1_blk",
|
||||
// MP2A1 9x19 mm
|
||||
"gm_mp2a1_blk",
|
||||
|
||||
// P1 9x19 mm
|
||||
"gm_p1_blk",
|
||||
// P1 9x19 mm
|
||||
"gm_p1_blk",
|
||||
|
||||
// P2A1 26.5 mm
|
||||
"gm_p2a1_blk",
|
||||
// P2A1 26.5 mm
|
||||
"gm_p2a1_blk",
|
||||
|
||||
// PzF44-2
|
||||
"gm_pzf44_2_oli",
|
||||
// PzF44-2
|
||||
"gm_pzf44_2_oli",
|
||||
|
||||
// PzF84
|
||||
"gm_pzf84_oli"
|
||||
// PzF84
|
||||
"gm_pzf84_oli"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_magazines = [
|
||||
// G3A3 + G3A4
|
||||
"gm_20rnd_762x51mm_b_t_dm21_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a1_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a2_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_dm111_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_dm41_g3_blk",
|
||||
"gm_20rnd_762x51mm_ap_dm151_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_t_dm21_g3_des",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a1_g3_des",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a2_g3_des",
|
||||
"gm_20rnd_762x51mm_b_dm111_g3_des",
|
||||
"gm_20rnd_762x51mm_b_dm41_g3_des",
|
||||
"gm_20rnd_762x51mm_ap_dm151_g3_des",
|
||||
// G3A3 + G3A4
|
||||
"gm_20rnd_762x51mm_b_t_dm21_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a1_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a2_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_dm111_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_dm41_g3_blk",
|
||||
"gm_20rnd_762x51mm_ap_dm151_g3_blk",
|
||||
"gm_20rnd_762x51mm_b_t_dm21_g3_des",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a1_g3_des",
|
||||
"gm_20rnd_762x51mm_b_t_dm21a2_g3_des",
|
||||
"gm_20rnd_762x51mm_b_dm111_g3_des",
|
||||
"gm_20rnd_762x51mm_b_dm41_g3_des",
|
||||
"gm_20rnd_762x51mm_ap_dm151_g3_des",
|
||||
|
||||
"gm_1rnd_67mm_heat_dm22a1_g3",
|
||||
"gm_1rnd_67mm_heat_dm22a1_g3",
|
||||
|
||||
// MG3 7.62x51 mm
|
||||
"gm_120rnd_762x51mm_b_t_dm21_mg3_grn",
|
||||
"gm_120rnd_762x51mm_b_t_dm21a1_mg3_grn",
|
||||
"gm_120rnd_762x51mm_b_t_dm21a2_mg3_grn",
|
||||
// MG3 7.62x51 mm
|
||||
"gm_120rnd_762x51mm_b_t_dm21_mg3_grn",
|
||||
"gm_120rnd_762x51mm_b_t_dm21a1_mg3_grn",
|
||||
"gm_120rnd_762x51mm_b_t_dm21a2_mg3_grn",
|
||||
|
||||
// MP2A1 9x19 mm
|
||||
"gm_32rnd_9x19mm_b_dm51_mp2_blk",
|
||||
// MP2A1 9x19 mm
|
||||
"gm_32rnd_9x19mm_b_dm51_mp2_blk",
|
||||
|
||||
// P1 9x19 mm
|
||||
"gm_8rnd_9x19mm_b_dm11_p1_blk",
|
||||
// P1 9x19 mm
|
||||
"gm_8rnd_9x19mm_b_dm11_p1_blk",
|
||||
|
||||
// P2A1 26.5 mm
|
||||
"gm_1Rnd_265mm_flare_single_wht_gc",
|
||||
"gm_1Rnd_265mm_flare_single_grn_gc",
|
||||
"gm_1Rnd_265mm_flare_single_red_gc",
|
||||
"gm_1Rnd_265mm_flare_multi_red_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_yel_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blu_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blk_gc",
|
||||
"gm_1Rnd_265mm_flare_para_yel_DM16",
|
||||
"gm_1Rnd_265mm_flare_single_wht_DM15",
|
||||
"gm_1Rnd_265mm_flare_single_red_DM13",
|
||||
"gm_1Rnd_265mm_flare_single_grn_DM11",
|
||||
"gm_1Rnd_265mm_flare_single_yel_DM10",
|
||||
"gm_1Rnd_265mm_flare_multi_wht_DM25",
|
||||
"gm_1Rnd_265mm_flare_multi_red_DM23",
|
||||
"gm_1Rnd_265mm_flare_multi_grn_DM21",
|
||||
"gm_1Rnd_265mm_flare_multi_yel_DM20",
|
||||
"gm_1Rnd_265mm_smoke_single_yel_DM19",
|
||||
"gm_1Rnd_265mm_smoke_single_org_DM22",
|
||||
"gm_1Rnd_265mm_smoke_single_vlt_DM24",
|
||||
"gm_1Rnd_265mm_flare_multi_nbc_DM47",
|
||||
// P2A1 26.5 mm
|
||||
"gm_1Rnd_265mm_flare_single_wht_gc",
|
||||
"gm_1Rnd_265mm_flare_single_grn_gc",
|
||||
"gm_1Rnd_265mm_flare_single_red_gc",
|
||||
"gm_1Rnd_265mm_flare_multi_red_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_yel_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blu_gc",
|
||||
"gm_1Rnd_265mm_smoke_single_blk_gc",
|
||||
"gm_1Rnd_265mm_flare_para_yel_DM16",
|
||||
"gm_1Rnd_265mm_flare_single_wht_DM15",
|
||||
"gm_1Rnd_265mm_flare_single_red_DM13",
|
||||
"gm_1Rnd_265mm_flare_single_grn_DM11",
|
||||
"gm_1Rnd_265mm_flare_single_yel_DM10",
|
||||
"gm_1Rnd_265mm_flare_multi_wht_DM25",
|
||||
"gm_1Rnd_265mm_flare_multi_red_DM23",
|
||||
"gm_1Rnd_265mm_flare_multi_grn_DM21",
|
||||
"gm_1Rnd_265mm_flare_multi_yel_DM20",
|
||||
"gm_1Rnd_265mm_smoke_single_yel_DM19",
|
||||
"gm_1Rnd_265mm_smoke_single_org_DM22",
|
||||
"gm_1Rnd_265mm_smoke_single_vlt_DM24",
|
||||
"gm_1Rnd_265mm_flare_multi_nbc_DM47",
|
||||
|
||||
// PzF44-2
|
||||
"gm_1rnd_44x537mm_heat_dm32_pzf44_2",
|
||||
// PzF44-2
|
||||
"gm_1rnd_44x537mm_heat_dm32_pzf44_2",
|
||||
|
||||
// PzF84
|
||||
"gm_1rnd_84x245mm_heat_t_dm12_carlgustaf",
|
||||
"gm_1rnd_84x245mm_heat_t_dm12a1_carlgustaf",
|
||||
"gm_1rnd_84x245mm_heat_t_dm22_carlgustaf",
|
||||
"gm_1rnd_84x245mm_heat_t_dm32_carlgustaf",
|
||||
"gm_1rnd_84x245mm_illum_dm16_carlgustaf",
|
||||
// PzF84
|
||||
"gm_1rnd_84x245mm_heat_t_dm12_carlgustaf",
|
||||
"gm_1rnd_84x245mm_heat_t_dm12a1_carlgustaf",
|
||||
"gm_1rnd_84x245mm_heat_t_dm22_carlgustaf",
|
||||
"gm_1rnd_84x245mm_heat_t_dm32_carlgustaf",
|
||||
"gm_1rnd_84x245mm_illum_dm16_carlgustaf",
|
||||
|
||||
// Grenades
|
||||
"gm_handgrenade_frag_dm51",
|
||||
"gm_handgrenade_frag_dm51a1",
|
||||
"gm_handgrenade_conc_dm51",
|
||||
"gm_handgrenade_conc_dm51a1",
|
||||
"gm_smokeshell_grn_dm21",
|
||||
"gm_smokeshell_red_dm23",
|
||||
"gm_smokeshell_yel_dm26",
|
||||
"gm_smokeshell_org_dm32",
|
||||
"gm_smokeshell_wht_dm25",
|
||||
// Grenades
|
||||
"gm_handgrenade_frag_dm51",
|
||||
"gm_handgrenade_frag_dm51a1",
|
||||
"gm_handgrenade_conc_dm51",
|
||||
"gm_handgrenade_conc_dm51a1",
|
||||
"gm_smokeshell_grn_dm21",
|
||||
"gm_smokeshell_red_dm23",
|
||||
"gm_smokeshell_yel_dm26",
|
||||
"gm_smokeshell_org_dm32",
|
||||
"gm_smokeshell_wht_dm25",
|
||||
|
||||
// Explosives
|
||||
"gm_explosive_petn_charge",
|
||||
"gm_mine_at_dm21"
|
||||
// Explosives
|
||||
"gm_explosive_petn_charge",
|
||||
"gm_mine_at_dm21"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_items = [
|
||||
// Uniforms
|
||||
"gm_ge_army_uniform_crew_80_oli",
|
||||
"gm_ge_army_uniform_soldier_80_oli",
|
||||
"gm_ge_army_uniform_soldier_80_ols",
|
||||
"gm_ge_army_uniform_soldier_parka_80_oli",
|
||||
"gm_ge_army_uniform_soldier_parka_80_ols",
|
||||
"gm_ge_bgs_uniform_soldier_80_smp",
|
||||
// Uniforms
|
||||
"gm_ge_army_uniform_crew_80_oli",
|
||||
"gm_ge_army_uniform_soldier_80_oli",
|
||||
"gm_ge_army_uniform_soldier_80_ols",
|
||||
"gm_ge_army_uniform_soldier_parka_80_oli",
|
||||
"gm_ge_army_uniform_soldier_parka_80_ols",
|
||||
"gm_ge_bgs_uniform_soldier_80_smp",
|
||||
|
||||
// Vests
|
||||
"gm_ge_army_vest_80_bag",
|
||||
"gm_ge_army_vest_80_belt",
|
||||
"gm_ge_army_vest_80_crew",
|
||||
"gm_ge_army_vest_80_demolition",
|
||||
"gm_ge_army_vest_80_leader",
|
||||
"gm_ge_army_vest_80_machinegunner",
|
||||
"gm_ge_army_vest_80_medic",
|
||||
"gm_ge_army_vest_80_officer",
|
||||
"gm_ge_army_vest_80_rifleman",
|
||||
"gm_ge_bgs_vest_80_rifleman",
|
||||
// Vests
|
||||
"gm_ge_army_vest_80_bag",
|
||||
"gm_ge_army_vest_80_belt",
|
||||
"gm_ge_army_vest_80_crew",
|
||||
"gm_ge_army_vest_80_demolition",
|
||||
"gm_ge_army_vest_80_leader",
|
||||
"gm_ge_army_vest_80_machinegunner",
|
||||
"gm_ge_army_vest_80_medic",
|
||||
"gm_ge_army_vest_80_officer",
|
||||
"gm_ge_army_vest_80_rifleman",
|
||||
"gm_ge_bgs_vest_80_rifleman",
|
||||
|
||||
// Headgear
|
||||
"gm_ge_bgs_headgear_m35_53_blk",
|
||||
"gm_ge_bgs_headgear_m35_53_net_blk",
|
||||
"gm_ge_headgear_beret_bdx",
|
||||
"gm_ge_headgear_beret_red",
|
||||
"gm_ge_headgear_beret_grn",
|
||||
"gm_ge_headgear_beret_mrb",
|
||||
"gm_ge_headgear_beret_un",
|
||||
"gm_ge_headgear_crewhat_80_blk",
|
||||
"gm_ge_headgear_hat_80_gry",
|
||||
"gm_ge_headgear_hat_80_m62_oli",
|
||||
"gm_ge_headgear_hat_80_oli",
|
||||
"gm_ge_headgear_headset_crew_oli",
|
||||
"gm_ge_headgear_m62",
|
||||
"gm_ge_headgear_m62_cover_blu",
|
||||
"gm_ge_headgear_m62_net",
|
||||
// Headgear
|
||||
"gm_ge_bgs_headgear_m35_53_blk",
|
||||
"gm_ge_bgs_headgear_m35_53_net_blk",
|
||||
"gm_ge_headgear_beret_bdx",
|
||||
"gm_ge_headgear_beret_red",
|
||||
"gm_ge_headgear_beret_grn",
|
||||
"gm_ge_headgear_beret_mrb",
|
||||
"gm_ge_headgear_beret_un",
|
||||
"gm_ge_headgear_crewhat_80_blk",
|
||||
"gm_ge_headgear_hat_80_gry",
|
||||
"gm_ge_headgear_hat_80_m62_oli",
|
||||
"gm_ge_headgear_hat_80_oli",
|
||||
"gm_ge_headgear_headset_crew_oli",
|
||||
"gm_ge_headgear_m62",
|
||||
"gm_ge_headgear_m62_cover_blu",
|
||||
"gm_ge_headgear_m62_net",
|
||||
|
||||
// Facewear
|
||||
"gm_ge_facewear_m65",
|
||||
// Facewear
|
||||
"gm_ge_facewear_m65",
|
||||
|
||||
// Attachments
|
||||
"gm_feroz24_blk",
|
||||
"gm_feroz2x17_pzf44_2_blk",
|
||||
"gm_feroz2x17_pzf84_blk",
|
||||
// Attachments
|
||||
"gm_feroz24_blk",
|
||||
"gm_feroz2x17_pzf44_2_blk",
|
||||
"gm_feroz2x17_pzf84_blk",
|
||||
|
||||
// Items
|
||||
"gm_ge_army_burnBandage",
|
||||
"gm_ge_army_conat2",
|
||||
"gm_ge_army_gauzeBandage",
|
||||
"gm_ge_army_gauzeCompress",
|
||||
"gm_ge_army_medkit_80",
|
||||
"gm_repairkit_01",
|
||||
"gm_ferod16_oli", // Binocular
|
||||
"gm_watch_kosei_80",
|
||||
"ItemMap",
|
||||
"ItemWatch",
|
||||
"ItemRadio"
|
||||
// Items
|
||||
"gm_ge_army_burnBandage",
|
||||
"gm_ge_army_conat2",
|
||||
"gm_ge_army_gauzeBandage",
|
||||
"gm_ge_army_gauzeCompress",
|
||||
"gm_ge_army_medkit_80",
|
||||
"gm_repairkit_01",
|
||||
"gm_ferod16_oli", // Binocular
|
||||
"gm_watch_kosei_80",
|
||||
"ItemMap",
|
||||
"ItemWatch",
|
||||
"ItemRadio"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_backpacks = [
|
||||
"gm_ge_army_backpack_80_oli",
|
||||
"gm_ge_backpack_satchel_80_blk",
|
||||
"gm_ge_backpack_satchel_80_san"
|
||||
"gm_ge_army_backpack_80_oli",
|
||||
"gm_ge_backpack_satchel_80_blk",
|
||||
"gm_ge_backpack_satchel_80_san"
|
||||
];
|
||||
|
|
|
@ -1,184 +1,191 @@
|
|||
// Swedish Forces Pack Arsenal Preset
|
||||
/*
|
||||
Swedish Forces Pack Arsenal Preset
|
||||
|
||||
// Mods needed:
|
||||
// SFP
|
||||
Author: Dahlgren - https://github.com/Dahlgren
|
||||
|
||||
Mods needed:
|
||||
- Swedish Forces Pack
|
||||
|
||||
Mods optional:
|
||||
- None
|
||||
*/
|
||||
|
||||
GRLIB_arsenal_weapons = [
|
||||
// Ak 4
|
||||
"sfp_ak4b",
|
||||
"sfp_ak4c",
|
||||
"sfp_ak4d",
|
||||
// Ak 4
|
||||
"sfp_ak4b",
|
||||
"sfp_ak4c",
|
||||
"sfp_ak4d",
|
||||
|
||||
// Ak 5
|
||||
"sfp_ak5",
|
||||
"sfp_ak5_m203",
|
||||
"sfp_ak5b",
|
||||
"sfp_ak5c",
|
||||
"sfp_ak5c_alt",
|
||||
"sfp_ak5c_alt_plastic",
|
||||
"sfp_ak5c_plastic",
|
||||
"sfp_ak5c_m203",
|
||||
"sfp_ak5c_m203_plastic",
|
||||
"sfp_ak5dmk2",
|
||||
"sfp_ak5dmk2_plastic",
|
||||
// Ak 5
|
||||
"sfp_ak5",
|
||||
"sfp_ak5_m203",
|
||||
"sfp_ak5b",
|
||||
"sfp_ak5c",
|
||||
"sfp_ak5c_alt",
|
||||
"sfp_ak5c_alt_plastic",
|
||||
"sfp_ak5c_plastic",
|
||||
"sfp_ak5c_m203",
|
||||
"sfp_ak5c_m203_plastic",
|
||||
"sfp_ak5dmk2",
|
||||
"sfp_ak5dmk2_plastic",
|
||||
|
||||
// G36
|
||||
"sfp_g36c",
|
||||
// G36
|
||||
"sfp_g36c",
|
||||
|
||||
// Machine Guns
|
||||
"sfp_ksp58B2",
|
||||
"sfp_ksp58c",
|
||||
"sfp_ksp90b",
|
||||
"sfp_ksp90c",
|
||||
// Machine Guns
|
||||
"sfp_ksp58B2",
|
||||
"sfp_ksp58c",
|
||||
"sfp_ksp90b",
|
||||
"sfp_ksp90c",
|
||||
|
||||
// Sniper rifles
|
||||
"sfp_ag90",
|
||||
"sfp_ag90_base",
|
||||
"sfp_psg90",
|
||||
"sfp_psg90_base",
|
||||
// Sniper rifles
|
||||
"sfp_ag90",
|
||||
"sfp_ag90_base",
|
||||
"sfp_psg90",
|
||||
"sfp_psg90_base",
|
||||
|
||||
// AT
|
||||
"sfp_grg86",
|
||||
"sfp_pskott86",
|
||||
"sfp_rb57",
|
||||
// AT
|
||||
"sfp_grg86",
|
||||
"sfp_pskott86",
|
||||
"sfp_rb57",
|
||||
|
||||
// AA
|
||||
"sfp_rbs69",
|
||||
// AA
|
||||
"sfp_rbs69",
|
||||
|
||||
// Shotgun
|
||||
"sfp_remington870",
|
||||
// Shotgun
|
||||
"sfp_remington870",
|
||||
|
||||
// Pistols
|
||||
"sfp_p88",
|
||||
"sfp_p226"
|
||||
// Pistols
|
||||
"sfp_p88",
|
||||
"sfp_p226"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_magazines = [
|
||||
"1Rnd_HE_Grenade_shell",
|
||||
"ClaymoreDirectionalMine_Remote_Mag",
|
||||
"SatchelCharge_Remote_Mag",
|
||||
"sfp_9Rnd_762x51_psg90",
|
||||
"sfp_9Rnd_762x51_psg90_prick",
|
||||
"sfp_10Rnd_127x99_ag90",
|
||||
"sfp_15Rnd_9x19_Mag",
|
||||
"sfp_17Rnd_9x19_Mag",
|
||||
"sfp_20Rnd_762x51_ak4",
|
||||
"sfp_30Rnd_556x45_Stanag",
|
||||
"sfp_30Rnd_556x45_Stanag_plastic",
|
||||
"sfp_30Rnd_556x45_Stanag_tracer",
|
||||
"sfp_30Rnd_556x45_Stanag_tracer_plastic",
|
||||
"sfp_50Rnd_762x51_ksp58",
|
||||
"sfp_100Rnd_762x51_ksp58",
|
||||
"sfp_200Rnd_556x45_ksp90",
|
||||
"sfp_grg_he_mag",
|
||||
"sfp_grg_heat_62_mag",
|
||||
"sfp_grg_heat_66_mag",
|
||||
"sfp_grg_heat_mag",
|
||||
"sfp_grg_illum_mag",
|
||||
"sfp_grg_smoke_mag",
|
||||
"sfp_handgrenade_shgr56",
|
||||
"sfp_handgrenade_shgr2000",
|
||||
"sfp_handgrenade_shgr07",
|
||||
"sfp_pskott86_mag",
|
||||
"sfp_rb57_mag",
|
||||
"sfp_sprdeg46_mag",
|
||||
"sfp_strvm5_mag",
|
||||
"sfp_rbs69_mag",
|
||||
"sfp_30Rnd_650x25mag",
|
||||
"sfp_36Rnd_9mm_kpistm45",
|
||||
"sfp_12Gauge_8rd_Pellets",
|
||||
"sfp_12Gauge_8rd_Slug",
|
||||
"SmokeShell"
|
||||
"1Rnd_HE_Grenade_shell",
|
||||
"ClaymoreDirectionalMine_Remote_Mag",
|
||||
"SatchelCharge_Remote_Mag",
|
||||
"sfp_9Rnd_762x51_psg90",
|
||||
"sfp_9Rnd_762x51_psg90_prick",
|
||||
"sfp_10Rnd_127x99_ag90",
|
||||
"sfp_15Rnd_9x19_Mag",
|
||||
"sfp_17Rnd_9x19_Mag",
|
||||
"sfp_20Rnd_762x51_ak4",
|
||||
"sfp_30Rnd_556x45_Stanag",
|
||||
"sfp_30Rnd_556x45_Stanag_plastic",
|
||||
"sfp_30Rnd_556x45_Stanag_tracer",
|
||||
"sfp_30Rnd_556x45_Stanag_tracer_plastic",
|
||||
"sfp_50Rnd_762x51_ksp58",
|
||||
"sfp_100Rnd_762x51_ksp58",
|
||||
"sfp_200Rnd_556x45_ksp90",
|
||||
"sfp_grg_he_mag",
|
||||
"sfp_grg_heat_62_mag",
|
||||
"sfp_grg_heat_66_mag",
|
||||
"sfp_grg_heat_mag",
|
||||
"sfp_grg_illum_mag",
|
||||
"sfp_grg_smoke_mag",
|
||||
"sfp_handgrenade_shgr56",
|
||||
"sfp_handgrenade_shgr2000",
|
||||
"sfp_handgrenade_shgr07",
|
||||
"sfp_pskott86_mag",
|
||||
"sfp_rb57_mag",
|
||||
"sfp_sprdeg46_mag",
|
||||
"sfp_strvm5_mag",
|
||||
"sfp_rbs69_mag",
|
||||
"sfp_30Rnd_650x25mag",
|
||||
"sfp_36Rnd_9mm_kpistm45",
|
||||
"sfp_12Gauge_8rd_Pellets",
|
||||
"sfp_12Gauge_8rd_Slug",
|
||||
"SmokeShell"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_items = [
|
||||
"B_UavTerminal",
|
||||
"Binocular",
|
||||
"ItemCompass",
|
||||
"ItemGPS",
|
||||
"ItemMap",
|
||||
"ItemRadio",
|
||||
"ItemWatch",
|
||||
"Laserdesignator",
|
||||
"FirstAidKit",
|
||||
"Medikit",
|
||||
"MineDetector",
|
||||
"NVGoggles",
|
||||
"NVGoggles_INDEP",
|
||||
"NVGoggles_OPFOR",
|
||||
"Rangefinder",
|
||||
"ToolKit",
|
||||
"B_UavTerminal",
|
||||
"Binocular",
|
||||
"ItemCompass",
|
||||
"ItemGPS",
|
||||
"ItemMap",
|
||||
"ItemRadio",
|
||||
"ItemWatch",
|
||||
"Laserdesignator",
|
||||
"FirstAidKit",
|
||||
"Medikit",
|
||||
"MineDetector",
|
||||
"NVGoggles",
|
||||
"NVGoggles_INDEP",
|
||||
"NVGoggles_OPFOR",
|
||||
"Rangefinder",
|
||||
"ToolKit",
|
||||
|
||||
// Uniforms - Woodland
|
||||
"sfp_m90w_uniform",
|
||||
"sfp_m90w_uniform_dirty",
|
||||
"sfp_m90w_uniform_tshirt",
|
||||
"sfp_ghillie_uniform",
|
||||
// Uniforms - Woodland
|
||||
"sfp_m90w_uniform",
|
||||
"sfp_m90w_uniform_dirty",
|
||||
"sfp_m90w_uniform_tshirt",
|
||||
"sfp_ghillie_uniform",
|
||||
|
||||
// Uniforms - Desert
|
||||
"sfp_m90d_uniform",
|
||||
"sfp_m90d_uniform_dirty",
|
||||
"sfp_m90d_uniform_tshirt",
|
||||
"sfp_ghillie_desert_uniform",
|
||||
// Uniforms - Desert
|
||||
"sfp_m90d_uniform",
|
||||
"sfp_m90d_uniform_dirty",
|
||||
"sfp_m90d_uniform_tshirt",
|
||||
"sfp_ghillie_desert_uniform",
|
||||
|
||||
// Attachments
|
||||
"sfp_dbal2",
|
||||
"sfp_tlr2",
|
||||
"sfp_optic_3x_aimpoint",
|
||||
"sfp_optic_aimpoint",
|
||||
"sfp_optic_aimpoint_t1",
|
||||
"sfp_optic_aimpoint_twist",
|
||||
"sfp_optic_kikarsikte90b_10x",
|
||||
"sfp_optic_susat_4x",
|
||||
// Attachments
|
||||
"sfp_dbal2",
|
||||
"sfp_tlr2",
|
||||
"sfp_optic_3x_aimpoint",
|
||||
"sfp_optic_aimpoint",
|
||||
"sfp_optic_aimpoint_t1",
|
||||
"sfp_optic_aimpoint_twist",
|
||||
"sfp_optic_kikarsikte90b_10x",
|
||||
"sfp_optic_susat_4x",
|
||||
|
||||
// Vests
|
||||
"sfp_stridsvast08",
|
||||
"sfp_kroppsskydd12",
|
||||
"sfp_kroppsskydd12_crew",
|
||||
"sfp_kroppsskydd12_tl",
|
||||
"sfp_kroppsskydd12_at",
|
||||
"sfp_kroppsskydd12_medic",
|
||||
"sfp_kroppsskydd12_holster",
|
||||
// Vests
|
||||
"sfp_stridsvast08",
|
||||
"sfp_kroppsskydd12",
|
||||
"sfp_kroppsskydd12_crew",
|
||||
"sfp_kroppsskydd12_tl",
|
||||
"sfp_kroppsskydd12_at",
|
||||
"sfp_kroppsskydd12_medic",
|
||||
"sfp_kroppsskydd12_holster",
|
||||
|
||||
// Headgear
|
||||
"H_HelmetCrew_I",
|
||||
"sfp_m87_flying_suit",
|
||||
"sfp_flighthelmet116",
|
||||
"sfp_headset",
|
||||
"sfp_peltor",
|
||||
// Headgear
|
||||
"H_HelmetCrew_I",
|
||||
"sfp_m87_flying_suit",
|
||||
"sfp_flighthelmet116",
|
||||
"sfp_headset",
|
||||
"sfp_peltor",
|
||||
|
||||
// Headgear - Woodland
|
||||
"sfp_m90w_cap",
|
||||
"sfp_m90w_cap_peltor",
|
||||
"sfp_m90w_helmet",
|
||||
"sfp_m90w_helmet_headset",
|
||||
"sfp_m90w_helmet_headset_nvg",
|
||||
"sfp_m90w_helmet_peltor",
|
||||
"sfp_m90w_helmet_nvg",
|
||||
"sfp_m90w_helmet_peltor_nvg",
|
||||
// Headgear - Woodland
|
||||
"sfp_m90w_cap",
|
||||
"sfp_m90w_cap_peltor",
|
||||
"sfp_m90w_helmet",
|
||||
"sfp_m90w_helmet_headset",
|
||||
"sfp_m90w_helmet_headset_nvg",
|
||||
"sfp_m90w_helmet_peltor",
|
||||
"sfp_m90w_helmet_nvg",
|
||||
"sfp_m90w_helmet_peltor_nvg",
|
||||
|
||||
// Headgear - Desert
|
||||
"sfp_m90d_cap",
|
||||
"sfp_m90d_cap_peltor",
|
||||
"sfp_m90d_helmet",
|
||||
"sfp_m90d_helmet_headset",
|
||||
"sfp_m90d_helmet_headset_nvg",
|
||||
"sfp_m90d_helmet_peltor",
|
||||
"sfp_m90d_helmet_nvg",
|
||||
"sfp_m90d_helmet_peltor_nvg",
|
||||
// Headgear - Desert
|
||||
"sfp_m90d_cap",
|
||||
"sfp_m90d_cap_peltor",
|
||||
"sfp_m90d_helmet",
|
||||
"sfp_m90d_helmet_headset",
|
||||
"sfp_m90d_helmet_headset_nvg",
|
||||
"sfp_m90d_helmet_peltor",
|
||||
"sfp_m90d_helmet_nvg",
|
||||
"sfp_m90d_helmet_peltor_nvg",
|
||||
|
||||
// Glasses
|
||||
"G_Aviator"
|
||||
// Glasses
|
||||
"G_Aviator"
|
||||
];
|
||||
|
||||
GRLIB_arsenal_backpacks = [
|
||||
"sfp_backpack_grg_loader",
|
||||
"sfp_backpack_lk35",
|
||||
"sfp_backpack_sjvv9",
|
||||
"sfp_backpack_stridssack08",
|
||||
"sfp_backpack_stridssack2000",
|
||||
"sfp_backpack_grg_loader",
|
||||
"sfp_backpack_lk35",
|
||||
"sfp_backpack_sjvv9",
|
||||
"sfp_backpack_stridssack08",
|
||||
"sfp_backpack_stridssack2000",
|
||||
|
||||
// TFAR Radios
|
||||
"sfp_ra180",
|
||||
"sfp_stridssack2000_ra_ksk12"
|
||||
// TFAR Radios
|
||||
"sfp_ra180",
|
||||
"sfp_stridssack2000_ra_ksk12"
|
||||
];
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,6 +7,7 @@
|
|||
KP_liberation_medical_vehicles = [
|
||||
"B_T_Truck_01_medical_F",
|
||||
"B_Truck_01_medical_F",
|
||||
"C_Van_02_medevac_F",
|
||||
"CUP_B_BMP2_AMB_CDF",
|
||||
"CUP_B_HMMWV_Ambulance_USA",
|
||||
"CUP_B_HMMWV_Ambulance_USMC",
|
||||
|
@ -18,6 +19,8 @@ KP_liberation_medical_vehicles = [
|
|||
"gm_gc_army_ural375d_medic",
|
||||
"gm_ge_army_u1300l_medic_win_rc",
|
||||
"gm_ge_army_u1300l_medic",
|
||||
"I_E_Truck_02_Medical_F",
|
||||
"I_E_Van_02_medevac_F",
|
||||
"O_T_Truck_03_medical_ghex_F",
|
||||
"O_Truck_03_medical_F",
|
||||
"RHS_UH60M_MEV_d",
|
||||
|
@ -88,7 +91,8 @@ If you want to change a preset, it's recommended to set all four presets to 0 an
|
|||
23 = CUP Army of the Czech Republic (Desert)
|
||||
24 = CUP Army of the Czech Republic (Woodland)
|
||||
25 = SFP (Woodland)
|
||||
26 = SFP (Desert) */
|
||||
26 = SFP (Desert)
|
||||
27 = LDF (Contact DLC) */
|
||||
KP_liberation_preset_blufor = 0;
|
||||
|
||||
/* OPFOR preset:
|
||||
|
@ -220,66 +224,96 @@ KP_liberation_resistance_at_chance = 20; // Chanc
|
|||
KP_liberation_resistance_sector_chance = 35; // Chance that a guerilla squad will join an ongoing sector attack.
|
||||
KP_liberation_resistance_ambush_chance = 25; // Chance that some guerilla units will spawn in blufor sectors for an ambush, if reputation is low.
|
||||
|
||||
// Array of worldName values.
|
||||
// When playing on this map, it'll create a clearance (remove terrain objects) in a 15m radius around the battlegroup/reinforcements spawnpoint.
|
||||
KP_liberation_battlegroup_clearance = [
|
||||
"song_bin_tanh"
|
||||
];
|
||||
|
||||
/* - Default arsenal blacklist method.
|
||||
Useless if you're using anything other than "kp_liberation_arsenal = 0;" above. A whitelisted arsenal is always more performance friendly then a blacklisted arsenal.
|
||||
REMEMBER: All static turret and UAV bags should be defined here, to stop players from exploiting free resources via the virtual arsenal. */
|
||||
blacklisted_from_arsenal = [
|
||||
"I_HMG_01_weapon_F",
|
||||
"B_HMG_01_weapon_F",
|
||||
"O_HMG_01_weapon_F",
|
||||
"I_HMG_01_A_weapon_F",
|
||||
"B_HMG_01_A_weapon_F",
|
||||
"O_HMG_01_A_weapon_F",
|
||||
"I_HMG_01_high_weapon_F",
|
||||
"B_HMG_01_high_weapon_F",
|
||||
"O_HMG_01_high_weapon_F",
|
||||
"I_GMG_01_weapon_F",
|
||||
"B_GMG_01_weapon_F",
|
||||
"O_GMG_01_weapon_F",
|
||||
"I_GMG_01_A_weapon_F",
|
||||
"B_GMG_01_A_weapon_F",
|
||||
"O_GMG_01_A_weapon_F",
|
||||
"I_GMG_01_high_weapon_F",
|
||||
"B_GMG_01_high_weapon_F",
|
||||
"O_GMG_01_high_weapon_F",
|
||||
"I_Mortar_01_support_F",
|
||||
"B_Mortar_01_support_F",
|
||||
"O_Mortar_01_support_F",
|
||||
"I_Mortar_01_weapon_F",
|
||||
"B_Mortar_01_weapon_F",
|
||||
"O_Mortar_01_weapon_F",
|
||||
"I_HMG_01_support_F",
|
||||
"B_HMG_01_support_F",
|
||||
"O_HMG_01_support_F",
|
||||
"I_HMG_01_support_high_F",
|
||||
"B_HMG_01_support_high_F",
|
||||
"O_HMG_01_support_high_F",
|
||||
"I_AA_01_weapon_F",
|
||||
"B_AA_01_weapon_F",
|
||||
"O_AA_01_weapon_F",
|
||||
"I_AT_01_weapon_F",
|
||||
"B_AT_01_weapon_F",
|
||||
"O_AT_01_weapon_F",
|
||||
"I_UAV_01_backpack_F",
|
||||
"B_UAV_01_backpack_F",
|
||||
"O_UAV_01_backpack_F",
|
||||
"I_UAV_06_backpack_F",
|
||||
"B_UAV_06_backpack_F",
|
||||
"O_UAV_06_backpack_F",
|
||||
"I_UAV_06_medical_backpack_F",
|
||||
"B_UAV_06_medical_backpack_F",
|
||||
"O_UAV_06_medical_backpack_F",
|
||||
"C_UAV_06_backpack_F",
|
||||
"C_UAV_06_medical_backpack_F",
|
||||
"C_IDAP_UAV_01_backpack_F",
|
||||
"C_IDAP_UAV_06_backpack_F",
|
||||
"C_IDAP_UAV_06_medical_backpack_F",
|
||||
"C_IDAP_UAV_06_antimine_backpack_F",
|
||||
"B_GMG_01_A_weapon_F",
|
||||
"B_GMG_01_high_weapon_F",
|
||||
"B_GMG_01_weapon_F",
|
||||
"B_HMG_01_A_weapon_F",
|
||||
"B_HMG_01_high_weapon_F",
|
||||
"B_HMG_01_support_F",
|
||||
"B_HMG_01_support_high_F",
|
||||
"B_HMG_01_weapon_F",
|
||||
"B_Mortar_01_support_F",
|
||||
"B_Mortar_01_weapon_F",
|
||||
"B_Respawn_Sleeping_bag_blue_F",
|
||||
"B_Respawn_Sleeping_bag_brown_F",
|
||||
"B_Respawn_TentDome_F",
|
||||
"B_Respawn_Sleeping_bag_F",
|
||||
"B_Respawn_TentA_F",
|
||||
"B_Respawn_TentDome_F",
|
||||
"B_UAV_01_backpack_F",
|
||||
"B_UAV_06_backpack_F",
|
||||
"B_UAV_06_medical_backpack_F",
|
||||
"B_UGV_02_Demining_backpack_F",
|
||||
"B_UGV_02_Science_backpack_F",
|
||||
"C_IDAP_UAV_01_backpack_F",
|
||||
"C_IDAP_UAV_06_antimine_backpack_F",
|
||||
"C_IDAP_UAV_06_backpack_F",
|
||||
"C_IDAP_UAV_06_medical_backpack_F",
|
||||
"C_IDAP_UGV_02_Demining_backpack_F",
|
||||
"C_UAV_06_backpack_F",
|
||||
"C_UAV_06_medical_backpack_F",
|
||||
"I_AA_01_weapon_F",
|
||||
"I_AT_01_weapon_F",
|
||||
"I_E_AA_01_weapon_F",
|
||||
"I_E_AT_01_weapon_F",
|
||||
"I_E_GMG_01_A_Weapon_F",
|
||||
"I_E_GMG_01_high_Weapon_F",
|
||||
"I_E_GMG_01_Weapon_F",
|
||||
"I_E_HMG_01_A_Weapon_F",
|
||||
"I_E_HMG_01_high_Weapon_F",
|
||||
"I_E_HMG_01_support_F",
|
||||
"I_E_HMG_01_support_high_F",
|
||||
"I_E_HMG_01_Weapon_F",
|
||||
"I_E_Mortar_01_support_F",
|
||||
"I_E_Mortar_01_Weapon_F",
|
||||
"I_E_UAV_01_backpack_F",
|
||||
"I_E_UAV_06_backpack_F",
|
||||
"I_E_UAV_06_medical_backpack_F",
|
||||
"I_E_UGV_02_Demining_backpack_F",
|
||||
"I_E_UGV_02_Science_backpack_F",
|
||||
"I_GMG_01_A_weapon_F",
|
||||
"I_GMG_01_high_weapon_F",
|
||||
"I_GMG_01_weapon_F",
|
||||
"I_HMG_01_A_weapon_F",
|
||||
"I_HMG_01_high_weapon_F",
|
||||
"I_HMG_01_support_F",
|
||||
"I_HMG_01_support_high_F",
|
||||
"I_HMG_01_weapon_F",
|
||||
"I_Mortar_01_support_F",
|
||||
"I_Mortar_01_weapon_F",
|
||||
"I_UAV_01_backpack_F",
|
||||
"I_UAV_06_backpack_F",
|
||||
"I_UAV_06_medical_backpack_F",
|
||||
"I_UGV_02_Demining_backpack_F",
|
||||
"I_UGV_02_Science_backpack_F",
|
||||
"O_AA_01_weapon_F",
|
||||
"O_AT_01_weapon_F",
|
||||
"O_GMG_01_A_weapon_F",
|
||||
"O_GMG_01_high_weapon_F",
|
||||
"O_GMG_01_weapon_F",
|
||||
"O_HMG_01_A_weapon_F",
|
||||
"O_HMG_01_high_weapon_F",
|
||||
"O_HMG_01_support_F",
|
||||
"O_HMG_01_support_high_F",
|
||||
"O_HMG_01_weapon_F",
|
||||
"O_Mortar_01_support_F",
|
||||
"O_Mortar_01_weapon_F",
|
||||
"O_UAV_01_backpack_F",
|
||||
"O_UAV_06_backpack_F",
|
||||
"O_UAV_06_medical_backpack_F",
|
||||
"O_UGV_02_Demining_backpack_F",
|
||||
"O_UGV_02_Science_backpack_F",
|
||||
"optic_Nightstalker",
|
||||
"optic_tws_mg",
|
||||
"optic_tws",
|
||||
|
@ -314,7 +348,19 @@ blacklisted_from_arsenal = [
|
|||
"UK3CB_BAF_L16_Tripod",
|
||||
"UK3CB_BAF_L16",
|
||||
"UK3CB_BAF_M6",
|
||||
"UK3CB_BAF_Tripod"
|
||||
"UK3CB_BAF_Tripod",
|
||||
"uns_M1_81mm_mortar_US_Bag",
|
||||
"uns_M1919_low_US_Bag",
|
||||
"uns_M2_60mm_mortar_US_Bag",
|
||||
"uns_m2_high_US_Bag",
|
||||
"uns_M2_low_US_Bag",
|
||||
"uns_M30_107mm_mortar_US_Bag",
|
||||
"uns_M60_high_US_Bag",
|
||||
"uns_M60_low_US_Bag",
|
||||
"uns_MK18_low_US_Bag",
|
||||
"uns_STABO_US_Bag",
|
||||
"uns_Tripod_Bag",
|
||||
"Uns_US_searchlight_Bag"
|
||||
];
|
||||
|
||||
// Items which should be added as allowed Items, when they get blacklisted, even if they are not in the blacklisted_from_arsenal array
|
||||
|
@ -432,18 +478,27 @@ Format = ["classname", distance behind vehicle to unload crate, attachTo positio
|
|||
box_transport_config = [
|
||||
["B_Heli_Transport_03_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]],
|
||||
["B_Heli_Transport_03_unarmed_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]],
|
||||
["B_T_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_T_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_T_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_T_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_T_VTOL_01_infantry_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]],
|
||||
["B_T_VTOL_01_vehicle_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]],
|
||||
["B_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["B_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
|
||||
["BW_AW101_Trans_Heer_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]],
|
||||
["BW_LKW7T_Trans_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]],
|
||||
["C_IDAP_Van_02_transport_F", -5, [0,-1.75,0]],
|
||||
["C_IDAP_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["C_Offroad_01_F", -6.5, [0,-1.7,0.4]],
|
||||
["C_Truck_02_covered_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]],
|
||||
["C_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]],
|
||||
["C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]],
|
||||
["C_Van_02_service_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["C_Van_02_transport_F", -5, [0,-1.75,0]],
|
||||
["C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["CUP_B_CH47F_GB", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]],
|
||||
["CUP_B_CH47F_USA", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]],
|
||||
["CUP_B_CH53E_USMC", -8, [0,7.566,-3], [0,5.749,-3], [0,3.847,-3], [0,2,-3], [0,0.338,-3]],
|
||||
|
@ -492,8 +547,17 @@ box_transport_config = [
|
|||
["gm_ge_army_u1300l_container", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]],
|
||||
["greuh_eh101_gr", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]],
|
||||
["I_C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]],
|
||||
["I_C_Van_02_transport_F", -5, [0,-1.75,0]],
|
||||
["I_C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["I_E_Truck_02_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]],
|
||||
["I_E_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]],
|
||||
["I_E_Van_02_transport_F", -5, [0,-1.75,0]],
|
||||
["I_E_Van_02_transport_MP_F", -5, [0,-1.75,0]],
|
||||
["I_E_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["I_G_Offroad_01_F", -6.5, [0,-1.7,0.4]],
|
||||
["I_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]],
|
||||
["I_G_Van_02_transport_F", -5, [0,-1.75,0]],
|
||||
["I_G_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]],
|
||||
["I_Heli_Transport_02_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]],
|
||||
["LOP_ISTS_OPF_Truck", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]],
|
||||
["LOP_SLA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]],
|
||||
|
@ -564,7 +628,7 @@ box_transport_config = [
|
|||
["UK3CB_BAF_Merlin_HC4_CSAR_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]],
|
||||
["uns_M35A2_Open", -5, [0,-0.6,0.1], [0,-2.3,0.1]],
|
||||
["uns_M35A2", -5, [0,-0.6,0.1], [0,-2.3,0.1]],
|
||||
["uns_m37b1", -5, [0,-0.2,0.45]],
|
||||
["uns_m37b1", -5, [0,-1.2,0.15]],
|
||||
["uns_nvatruck_mg", -5, [0,-1.05,0.8], [0,-2.75,0.8]],
|
||||
["uns_nvatruck_open", -5, [0,-1.05,0.8], [0,-2.75,0.8]],
|
||||
["uns_nvatruck", -5, [0,-1.05,0.8], [0,-2.75,0.8]]
|
||||
|
@ -592,6 +656,7 @@ ai_resupply_sources = [
|
|||
"gm_gc_army_ural4320_reammo",
|
||||
"gm_ge_army_kat1_451_reammo_win",
|
||||
"gm_ge_army_kat1_451_reammo",
|
||||
"I_E_Truck_02_Ammo_F",
|
||||
"Land_Pod_Heli_Transport_04_ammo_F",
|
||||
"O_Heli_Transport_04_ammo_F",
|
||||
"O_T_Truck_03_ammo_ghex_F",
|
||||
|
@ -627,6 +692,7 @@ vehicle_repair_sources = [
|
|||
"gm_gc_army_ural4320_repair",
|
||||
"gm_ge_army_u1300l_repair_win",
|
||||
"gm_ge_army_u1300l_repair",
|
||||
"I_E_Truck_02_Box_F",
|
||||
"Land_Pod_Heli_Transport_04_repair_F",
|
||||
"O_Heli_Transport_04_repair_F",
|
||||
"O_T_Truck_03_repair_ghex_F",
|
||||
|
@ -665,6 +731,7 @@ vehicle_rearm_sources = [
|
|||
"gm_gc_army_ural4320_reammo",
|
||||
"gm_ge_army_kat1_451_reammo_win",
|
||||
"gm_ge_army_kat1_451_reammo",
|
||||
"I_E_Truck_02_Ammo_F",
|
||||
"Land_Pod_Heli_Transport_04_ammo_F",
|
||||
"O_Heli_Transport_04_ammo_F",
|
||||
"O_T_Truck_03_ammo_ghex_F",
|
||||
|
@ -703,6 +770,7 @@ vehicle_refuel_sources = [
|
|||
"gm_gc_army_ural375d_refuel",
|
||||
"gm_ge_army_kat1_451_refuel_win",
|
||||
"gm_ge_army_kat1_451_refuel",
|
||||
"I_E_Truck_02_fuel_F",
|
||||
"Land_Pod_Heli_Transport_04_fuel_F",
|
||||
"O_Heli_Transport_04_fuel_F",
|
||||
"O_T_Truck_03_fuel_ghex_F",
|
||||
|
|
|
@ -24,7 +24,7 @@ huron_typename = "B_Heli_Transport_03_unarmed_F"; // This
|
|||
crewman_classname = "B_T_crew_F"; // This defines the crew for vehicles.
|
||||
pilot_classname = "B_T_Helipilot_F"; // This defines the pilot for helicopters.
|
||||
KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base.
|
||||
KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_boat_classname = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_truck_classname = "B_T_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system.
|
||||
KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources.
|
||||
KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources.
|
||||
|
|
|
@ -0,0 +1,350 @@
|
|||
/*
|
||||
Needed Mods:
|
||||
- Contact DLC
|
||||
|
||||
Optional Mods:
|
||||
- None
|
||||
*/
|
||||
|
||||
/*
|
||||
--- Support classnames ---
|
||||
Each of these should be unique.
|
||||
The same classnames for different purposes may cause various unpredictable issues with player actions.
|
||||
Or not, just don't try!
|
||||
*/
|
||||
FOB_typename = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building.
|
||||
FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container.
|
||||
FOB_truck_typename = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle.
|
||||
Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates.
|
||||
Respawn_truck_typename = "I_E_Truck_02_Medical_F"; // This is the mobile respawn (and medical) truck.
|
||||
huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter.
|
||||
crewman_classname = "I_E_Crew_F"; // This defines the crew for vehicles.
|
||||
pilot_classname = "I_E_Helipilot_F"; // This defines the pilot for helicopters.
|
||||
KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base.
|
||||
KP_liberation_boat_classname = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom.
|
||||
KP_liberation_truck_classname = "I_E_Truck_02_transport_F"; // These are the trucks which are used in the logistic convoy system.
|
||||
KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources.
|
||||
KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources.
|
||||
KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality.
|
||||
KP_liberation_air_vehicle_building = "I_E_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality.
|
||||
KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap.
|
||||
KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap.
|
||||
KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources.
|
||||
KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates.
|
||||
KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates.
|
||||
|
||||
/*
|
||||
--- Friendly classnames ---
|
||||
Each array below represents one of the 7 pages within the build menu.
|
||||
Format: ["vehicle_classname",supplies,ammunition,fuel],
|
||||
Example: ["B_APC_Tracked_01_AA_F",300,150,150],
|
||||
The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build.
|
||||
IMPORTANT: The last element inside each array must have no comma at the end!
|
||||
*/
|
||||
infantry_units = [
|
||||
["I_E_Soldier_lite_F",15,0,0], // Rifleman (Light)
|
||||
["I_E_Soldier_F",20,0,0], // Rifleman
|
||||
["I_E_Soldier_LAT2_F",30,0,0], // Rifleman (AT)
|
||||
["I_E_Soldier_GL_F",25,0,0], // Grenadier
|
||||
["I_E_Soldier_AR_F",25,0,0], // Autorifleman
|
||||
["I_E_soldier_M_F",30,0,0], // Marksman
|
||||
["I_E_Soldier_AT_F",50,10,0], // AT Specialist
|
||||
["I_E_Soldier_AA_F",50,10,0], // AA Specialist
|
||||
["I_E_Medic_F",30,0,0], // Combat Life Saver
|
||||
["I_E_Engineer_F",30,0,0], // Engineer
|
||||
["I_E_Soldier_Exp_F",30,0,0], // Explosives Specialist
|
||||
["B_T_Recon_F",20,0,0], // Recon Scout
|
||||
["B_T_Recon_LAT_F",30,0,0], // Recon Scout (AT)
|
||||
["B_T_Recon_M_F",30,0,0], // Recon Marksman
|
||||
["B_T_Recon_Medic_F",30,0,0], // Recon Paramedic
|
||||
["B_T_Recon_exp_F",30,0,0], // Recon Demolition Expert
|
||||
["B_T_Sniper_F",70,5,0], // Sniper
|
||||
["B_ghillie_lsh_F",70,5,0], // Sniper (Green)
|
||||
["B_T_Spotter_F",20,0,0], // Spotter
|
||||
["I_E_Crew_F",10,0,0], // Crewman
|
||||
["B_T_Soldier_PG_F",20,0,0], // Para Trooper
|
||||
["I_E_Helicrew_F",10,0,0], // Helicopter Crew
|
||||
["I_E_Helipilot_F",10,0,0], // Helicopter Pilot
|
||||
["B_T_Pilot_F",10,0,0] // Pilot
|
||||
];
|
||||
|
||||
light_vehicles = [
|
||||
["I_E_Quadbike_01_F",50,0,25], // Quad Bike
|
||||
["I_E_Offroad_01_F",60,0,35], // Offroad
|
||||
["I_E_Offroad_01_covered_F",60,0,35], // Offroad (Covered)
|
||||
["I_E_Offroad_01_comms_F",60,0,35], // Offroad (Comms)
|
||||
["I_E_Van_02_vehicle_F",70,0,45], // Transporter
|
||||
["I_E_Van_02_transport_MP_F",70,0,45], // Transporter (MP)
|
||||
["I_E_Van_02_transport_F",70,0,45], // Transporter (Transporter)
|
||||
["B_T_LSV_01_unarmed_F",75,0,50], // Prowler
|
||||
["B_T_LSV_01_armed_F",75,40,50], // Prowler (HMG)
|
||||
["B_T_LSV_01_AT_F",75,60,50], // Prowler (AT)
|
||||
["I_E_Truck_02_transport_F",125,0,75], // Zamak Transport
|
||||
["I_E_Truck_02_F",125,0,75], // Zamak Transport (Covered)
|
||||
["B_UGV_01_F",150,0,50], // UGV Stomper
|
||||
["B_UGV_01_rcws_F",150,40,50], // UGV Stomper (RCWS)
|
||||
["B_T_Boat_Transport_01_F",100,0,25], // Assault Boat
|
||||
["B_T_Boat_Armed_01_minigun_F",200,80,75] // Speedboat Minigun
|
||||
];
|
||||
|
||||
heavy_vehicles = [
|
||||
["B_T_APC_Wheeled_01_cannon_F",200,75,125], // AMV-7 Marshall
|
||||
["I_E_APC_tracked_03_cannon_F",300,150,150], // FV-720 Odyniec
|
||||
["B_T_APC_Tracked_01_AA_F",300,250,175], // IFV-6a Cheetah
|
||||
["B_T_MBT_01_cannon_F",400,300,200], // M2A1 Slammer
|
||||
["B_T_MBT_01_TUSK_F",500,350,225], // M2A4 Slammer UP
|
||||
["B_T_AFV_Wheeled_01_cannon_F",500,500,250], // Rhino MGS
|
||||
["B_T_AFV_Wheeled_01_up_cannon_F",550,550,250], // Rhino MGS UP
|
||||
["I_E_Truck_02_MRL_F",600,1250,300] // Zamak MRL
|
||||
];
|
||||
|
||||
air_vehicles = [
|
||||
["I_E_UAV_01_F",75,0,25], // AR-2 Darter
|
||||
["I_E_UAV_06_F",80,0,30], // AL-6 Pelican
|
||||
["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird
|
||||
["I_E_Heli_light_03_unarmed_F",225,0,125], // WY-55 Czapla
|
||||
["I_E_Heli_light_03_dynamicLoadout_F",225,200,125], // WY-55 Czapla (Armed)
|
||||
["B_Heli_Transport_03_F",300,80,175], // CH-67 Huron (Armed)
|
||||
["B_Heli_Attack_01_dynamicLoadout_F",500,400,200], // AH-99 Blackfoot
|
||||
["B_UAV_02_dynamicLoadout_F",400,300,200], // MQ-4A Greyhawk
|
||||
["B_T_UAV_03_dynamicLoadout_F",450,500,250], // MQ-12 Falcon
|
||||
["B_UAV_05_F",500,500,200], // UCAV Sentinel
|
||||
["B_Plane_CAS_01_dynamicLoadout_F",1000,800,400], // A-164 Wipeout (CAS)
|
||||
["B_Plane_Fighter_01_F",1500,1750,450], // F/A-181 Black Wasp II
|
||||
["B_Plane_Fighter_01_Stealth_F",1500,1750,450], // F/A-181 Black Wasp II (Stealth)
|
||||
["B_T_VTOL_01_armed_F",750,1500,500], // V-44 X Blackfish (Armed)
|
||||
["B_T_VTOL_01_infantry_F",750,0,500], // V-44 X Blackfish (Infantry)
|
||||
["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle)
|
||||
];
|
||||
|
||||
static_vehicles = [
|
||||
["B_W_Static_Designator_01_F",25,0,0], // Remote Designator
|
||||
["I_E_HMG_01_F",25,40,0], // Mk30A HMG .50
|
||||
["I_E_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised)
|
||||
["I_E_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous)
|
||||
["I_E_GMG_01_F",35,60,0], // Mk32A GMG 20mm
|
||||
["I_E_GMG_01_high_F",35,60,0], // Mk32 GMG 20mm (Raised)
|
||||
["I_E_GMG_01_A_F",45,60,0], // Mk32 GMG 20mm (Autonomous)
|
||||
["I_E_Static_AT_F",50,100,0], // Static Titan Launcher (AT)
|
||||
["I_E_Static_AA_F",50,100,0], // Static Titan Launcher (AA)
|
||||
["I_E_Mortar_01_F",80,150,0], // Mk6 Mortar
|
||||
["I_E_SAM_System_03_F",250,500,0] // MIM-145 Defender
|
||||
];
|
||||
|
||||
buildings = [
|
||||
["Land_Cargo_House_V4_F",0,0,0],
|
||||
["Land_Cargo_Patrol_V4_F",0,0,0],
|
||||
["Land_Cargo_Tower_V4_F",0,0,0],
|
||||
["Flag_NATO_F",0,0,0],
|
||||
["Flag_US_F",0,0,0],
|
||||
["Flag_EAF_F",0,0,0],
|
||||
["Flag_Enoch_F",0,0,0],
|
||||
["Flag_UK_F",0,0,0],
|
||||
["Flag_White_F",0,0,0],
|
||||
["Land_Medevac_house_V1_F",0,0,0],
|
||||
["Land_Medevac_HQ_V1_F",0,0,0],
|
||||
["Flag_RedCrystal_F",0,0,0],
|
||||
["CamoNet_ghex_F",0,0,0],
|
||||
["CamoNet_ghex_open_F",0,0,0],
|
||||
["CamoNet_ghex_big_F",0,0,0],
|
||||
["Land_PortableLight_single_F",0,0,0],
|
||||
["Land_PortableLight_double_F",0,0,0],
|
||||
["Land_LampSolar_F",0,0,0],
|
||||
["Land_LampHalogen_F",0,0,0],
|
||||
["Land_LampStreet_small_F",0,0,0],
|
||||
["Land_LampAirport_F",0,0,0],
|
||||
["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap!
|
||||
["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap!
|
||||
["PortableHelipadLight_01_blue_F",0,0,0],
|
||||
["PortableHelipadLight_01_green_F",0,0,0],
|
||||
["PortableHelipadLight_01_red_F",0,0,0],
|
||||
["Land_CampingChair_V1_F",0,0,0],
|
||||
["Land_CampingChair_V2_F",0,0,0],
|
||||
["Land_CampingTable_F",0,0,0],
|
||||
["MapBoard_altis_F",0,0,0],
|
||||
["MapBoard_stratis_F",0,0,0],
|
||||
["MapBoard_seismic_F",0,0,0],
|
||||
["Land_Pallet_MilBoxes_F",0,0,0],
|
||||
["Land_PaperBox_open_empty_F",0,0,0],
|
||||
["Land_PaperBox_open_full_F",0,0,0],
|
||||
["Land_PaperBox_closed_F",0,0,0],
|
||||
["Land_DieselGroundPowerUnit_01_F",0,0,0],
|
||||
["Land_ToolTrolley_02_F",0,0,0],
|
||||
["Land_WeldingTrolley_01_F",0,0,0],
|
||||
["Land_Workbench_01_F",0,0,0],
|
||||
["Land_GasTank_01_blue_F",0,0,0],
|
||||
["Land_GasTank_01_khaki_F",0,0,0],
|
||||
["Land_GasTank_01_yellow_F",0,0,0],
|
||||
["Land_GasTank_02_F",0,0,0],
|
||||
["Land_BarrelWater_F",0,0,0],
|
||||
["Land_BarrelWater_grey_F",0,0,0],
|
||||
["Land_WaterBarrel_F",0,0,0],
|
||||
["Land_WaterTank_F",0,0,0],
|
||||
["Land_BagFence_01_round_green_F",0,0,0],
|
||||
["Land_BagFence_01_short_green_F",0,0,0],
|
||||
["Land_BagFence_01_long_green_F",0,0,0],
|
||||
["Land_BagFence_01_corner_green_F",0,0,0],
|
||||
["Land_BagFence_01_end_green_F",0,0,0],
|
||||
["Land_BagBunker_01_small_green_F",0,0,0],
|
||||
["Land_BagBunker_01_large_green_F",0,0,0],
|
||||
["Land_HBarrier_01_tower_green_F",0,0,0],
|
||||
["Land_HBarrier_01_line_1_green_F",0,0,0],
|
||||
["Land_HBarrier_01_line_3_green_F",0,0,0],
|
||||
["Land_HBarrier_01_line_5_green_F",0,0,0],
|
||||
["Land_HBarrier_01_big_4_green_F",0,0,0],
|
||||
["Land_HBarrier_01_wall_4_green_F",0,0,0],
|
||||
["Land_HBarrier_01_wall_6_green_F",0,0,0],
|
||||
["Land_HBarrier_01_wall_corner_green_F",0,0,0],
|
||||
["Land_HBarrier_01_wall_corridor_green_F",0,0,0],
|
||||
["Land_HBarrier_01_big_tower_green_F",0,0,0],
|
||||
["Land_CncBarrierMedium_F",0,0,0],
|
||||
["Land_CncBarrierMedium4_F",0,0,0],
|
||||
["Land_Concrete_SmallWall_4m_F",0,0,0],
|
||||
["Land_Concrete_SmallWall_8m_F",0,0,0],
|
||||
["Land_CncShelter_F",0,0,0],
|
||||
["Land_CncWall1_F",0,0,0],
|
||||
["Land_CncWall4_F",0,0,0],
|
||||
["Land_Sign_WarningMilitaryArea_F",0,0,0],
|
||||
["Land_Sign_WarningMilAreaSmall_F",0,0,0],
|
||||
["Land_Sign_WarningMilitaryVehicles_F",0,0,0],
|
||||
["Land_Razorwire_F",0,0,0],
|
||||
["Land_ClutterCutter_large_F",0,0,0]
|
||||
];
|
||||
|
||||
support_vehicles = [
|
||||
[Respawn_truck_typename,200,0,100],
|
||||
[FOB_box_typename,300,500,0],
|
||||
[FOB_truck_typename,300,500,75],
|
||||
[KP_liberation_small_storage_building,0,0,0],
|
||||
[KP_liberation_large_storage_building,0,0,0],
|
||||
[KP_liberation_recycle_building,200,100,0],
|
||||
[KP_liberation_air_vehicle_building,1000,0,0],
|
||||
[KP_liberation_heli_slot_building,250,0,0],
|
||||
[KP_liberation_plane_slot_building,500,0,0],
|
||||
[Arsenal_typename,25,0,0],
|
||||
["ACE_medicalSupplyCrate_advanced",10,0,0],
|
||||
["Box_East_Support_F",10,0,0],
|
||||
["Box_CSAT_Equip_F",10,0,0],
|
||||
["Box_East_Grenades_F",10,0,0],
|
||||
["Box_East_WpsSpecial_F",10,0,0],
|
||||
["Box_East_Ammo_F",10,0,0],
|
||||
["Box_East_Wps_F",10,0,0],
|
||||
["Box_CSAT_Uniforms_F",10,0,0],
|
||||
["Box_East_AmmoOrd_F",10,0,0],
|
||||
["ACE_Wheel",10,0,0],
|
||||
["ACE_Track",10,0,0],
|
||||
["Land_CanisterFuel_F",0,0,2],
|
||||
["I_E_Van_02_medevac_F",150,0,80], // Transporter (Ambulance)
|
||||
["I_E_Truck_02_Box_F",325,0,75], // Zamak Repair
|
||||
["I_E_Truck_02_fuel_F",125,0,275], // Zamak Fuel
|
||||
["I_E_Truck_02_Ammo_F",125,200,75], // Zamak Ammo
|
||||
["B_Slingload_01_Repair_F",275,0,0], // Huron Repair
|
||||
["B_Slingload_01_Fuel_F",75,0,200], // Huron Fuel
|
||||
["B_Slingload_01_Ammo_F",75,200,0] // Huron Ammo
|
||||
];
|
||||
|
||||
/*
|
||||
--- Squads ---
|
||||
Pre-made squads for the commander build menu.
|
||||
These shouldn't exceed 10 members.
|
||||
*/
|
||||
|
||||
// Light infantry squad.
|
||||
blufor_squad_inf_light = [
|
||||
"I_E_Soldier_TL_F",
|
||||
"I_E_Soldier_F",
|
||||
"I_E_Soldier_F",
|
||||
"I_E_Soldier_LAT2_F",
|
||||
"I_E_Soldier_GL_F",
|
||||
"I_E_Soldier_AR_F",
|
||||
"I_E_Soldier_AR_F",
|
||||
"I_E_soldier_M_F",
|
||||
"I_E_Medic_F",
|
||||
"I_E_Engineer_F"
|
||||
];
|
||||
|
||||
// Heavy infantry squad.
|
||||
blufor_squad_inf = [
|
||||
"I_E_Soldier_TL_F",
|
||||
"I_E_Soldier_LAT2_F",
|
||||
"I_E_Soldier_LAT2_F",
|
||||
"I_E_Soldier_GL_F",
|
||||
"I_E_Soldier_AR_F",
|
||||
"I_E_Soldier_AR_F",
|
||||
"I_E_Soldier_AR_F",
|
||||
"I_E_soldier_M_F",
|
||||
"I_E_Medic_F",
|
||||
"I_E_Engineer_F"
|
||||
];
|
||||
|
||||
// AT specialists squad.
|
||||
blufor_squad_at = [
|
||||
"I_E_Soldier_TL_F",
|
||||
"I_E_Soldier_F",
|
||||
"I_E_Soldier_F",
|
||||
"I_E_Soldier_AT_F",
|
||||
"I_E_Soldier_AT_F",
|
||||
"I_E_Soldier_AT_F",
|
||||
"I_E_Medic_F",
|
||||
"I_E_Soldier_F"
|
||||
];
|
||||
|
||||
// AA specialists squad.
|
||||
blufor_squad_aa = [
|
||||
"I_E_Soldier_TL_F",
|
||||
"I_E_Soldier_F",
|
||||
"I_E_Soldier_F",
|
||||
"I_E_Soldier_AA_F",
|
||||
"I_E_Soldier_AA_F",
|
||||
"I_E_Soldier_AA_F",
|
||||
"I_E_Medic_F",
|
||||
"I_E_Soldier_F"
|
||||
];
|
||||
|
||||
// Force recon squad.
|
||||
blufor_squad_recon = [
|
||||
"B_T_Recon_TL_F",
|
||||
"B_T_Recon_F",
|
||||
"B_T_Recon_F",
|
||||
"B_T_Recon_LAT_F",
|
||||
"B_T_Recon_M_F",
|
||||
"B_T_Recon_M_F",
|
||||
"B_T_Sniper_F",
|
||||
"B_T_Spotter_F",
|
||||
"B_T_Recon_Medic_F",
|
||||
"B_T_Recon_Exp_F"
|
||||
];
|
||||
|
||||
// Paratroopers squad (The units of this squad will automatically get parachutes on build)
|
||||
blufor_squad_para = [
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F",
|
||||
"B_T_Soldier_PG_F"
|
||||
];
|
||||
|
||||
/*
|
||||
--- Elite vehicles ---
|
||||
Classnames below have to be unlocked by capturing military bases.
|
||||
Which base locks a vehicle is randomized on the first start of the campaign.
|
||||
*/
|
||||
elite_vehicles = [
|
||||
"B_T_MBT_01_TUSK_F", // M2A4 Slammer UP
|
||||
"B_T_AFV_Wheeled_01_cannon_F", // Rhino MGS
|
||||
"B_T_AFV_Wheeled_01_up_cannon_F", // Rhino MGS UP
|
||||
"I_E_Truck_02_MRL_F", // Zamak MRL
|
||||
"B_Heli_Attack_01_dynamicLoadout_F", // AH-99 Blackfoot
|
||||
"B_UAV_02_dynamicLoadout_F", // MQ-4A Greyhawk
|
||||
"B_T_UAV_03_dynamicLoadout_F", // MQ-12 Falcon
|
||||
"B_UAV_05_F", // UCAV Sentinel
|
||||
"B_Plane_CAS_01_dynamicLoadout_F", // A-164 Wipeout (CAS)
|
||||
"B_Plane_Fighter_01_F", // F/A-181 Black Wasp II
|
||||
"B_Plane_Fighter_01_Stealth_F", // F/A-181 Black Wasp II (Stealth)
|
||||
"B_T_VTOL_01_armed_F" // V-44 X Blackfish (Armed)
|
||||
];
|
|
@ -13,7 +13,7 @@
|
|||
Or not, just don't try!
|
||||
*/
|
||||
FOB_typename = "LAND_sb_bunker_main"; // This is the main FOB HQ building.
|
||||
FOB_box_typename = "Land_scntr"; // This is the FOB as a container.
|
||||
FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container.
|
||||
FOB_truck_typename = "uns_M35A2_fuel"; // This is the FOB as a vehicle.
|
||||
Arsenal_typename = "uns_resupply_crate_US"; // This is the virtual arsenal as portable supply crates.
|
||||
Respawn_truck_typename = "uns_M577_amb"; // This is the mobile respawn (and medical) truck.
|
||||
|
@ -235,6 +235,7 @@ buildings = [
|
|||
["LAND_uns_showers",0,0,0],
|
||||
["LAND_uns_tent2",0,0,0],
|
||||
["LAND_uns_tent3",0,0,0],
|
||||
["LAND_uns_tentbarracks",0,0,0],
|
||||
["LAND_uns_weapon_pit",0,0,0],
|
||||
["LAND_uns_westbunker1",0,0,0],
|
||||
["LAND_uns_westbunker2",0,0,0],
|
||||
|
|
|
@ -25,6 +25,7 @@ switch (KP_liberation_preset_blufor) do {
|
|||
case 24: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Woodland.sqf";};
|
||||
case 25: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_wdl.sqf";};
|
||||
case 26: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_des.sqf";};
|
||||
case 27: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\enoch.sqf";};
|
||||
default {[] call compileFinal preprocessFileLineNumbers "presets\blufor\custom.sqf";};
|
||||
};
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"CUP_O_RU_Engineer" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"CUP_O_UAZ_MG_RU" // UAZ (DShKM)
|
||||
];
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"CUP_O_RU_Engineer_EMR" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"CUP_O_UAZ_MG_RU" // UAZ (DShKM)
|
||||
];
|
||||
|
|
|
@ -53,7 +53,7 @@ militia_squad = [
|
|||
"CUP_O_INS_Woodlander1" // Woodman
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"CUP_O_Datsun_PK_Random" // Datsun 620 Pickup (PK) Woodland
|
||||
];
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"CUP_O_sla_Engineer_militia" // Militia Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"CUP_O_UAZ_MG_SLA" // UAZ (DShKM)
|
||||
];
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"CUP_O_TK_INS_Mechanic" // Militia Mechanic
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"CUP_O_LR_MG_TKM", // Land Rover 110 (M2)
|
||||
"CUP_O_LR_MG_TKM", // Land Rover 110 (M2)
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"LOP_SLA_Infantry_Engineer"
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"LOP_SLA_UAZ_SPG",
|
||||
"LOP_SLA_UAZ_DshKM",
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"I_engineer_F" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"B_LSV_01_armed_F", // Polaris DAGOR (XM312)
|
||||
"B_LSV_01_armed_F", // Polaris DAGOR (XM312)
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"O_engineer_U_F" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"O_T_LSV_02_armed_F" // Qilin (armed)
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"O_engineer_U_F" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"O_LSV_02_armed_F" // Qilin (armed)
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"gm_gc_army_engineer_mpiaks74n_80_str" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"gm_gc_army_brdm2um" // SPW40-P2UM
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"gm_gc_army_engineer_mpiaks74n_80_win" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"gm_gc_army_brdm2um_win" // SPW40-P2UM
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"gm_ge_army_engineer_g3a4_80_ols" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"gm_ge_army_u1300l_cargo" // Truck 2t Transport
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"gm_ge_army_engineer_g3a4_parka_80_win" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"gm_ge_army_u1300l_cargo" // Truck 2t Transport
|
||||
];
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"LOP_AM_OPF_Infantry_Engineer" // Engineer (Bomber)
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"LOP_AM_OPF_UAZ_DshKM" // UAZ-3151 (DShKM)
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ militia_squad = [
|
|||
"B_engineer_F" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"B_LSV_01_armed_F", // Polaris DAGOR (XM312)
|
||||
"B_LSV_01_armed_F", // Polaris DAGOR (XM312)
|
||||
|
|
|
@ -58,7 +58,7 @@ militia_vehicles = [
|
|||
"rhs_tigr_sts_msv" // GAZ-233014 (Armed)
|
||||
];
|
||||
|
||||
// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels).
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
opfor_vehicles = [
|
||||
"rhs_tigr_sts_msv", // GAZ-233014 (Armed)
|
||||
"rhs_tigr_sts_msv", // GAZ-233014 (Armed)
|
||||
|
|
|
@ -56,7 +56,7 @@ militia_squad = [
|
|||
"LOP_TKA_Infantry_Engineer" // Engineer
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [
|
||||
"LOP_TKA_UAZ_DshKM" // UAZ-3151 (DShKM)
|
||||
];
|
||||
|
|
|
@ -33,8 +33,8 @@ opfor_transport_truck = "uns_nvatruck"; // Ural
|
|||
opfor_ammobox_transport = "uns_nvatruck_open"; // Ural Truck (Open) -> Has to be able to transport resource crates!
|
||||
opfor_fuel_truck = "uns_nvatruck_refuel"; // Ural Truck (refuel)
|
||||
opfor_ammo_truck = "uns_nvatruck_reammo"; // Ural Truck (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_fuel_container = "ABox_N_4"; // Ammo Box (Light/4x)
|
||||
opfor_ammo_container = "ABox_N_4"; // Ammo Box (Light/4x)
|
||||
opfor_flag = "uns_FlagCarrierNVA"; // Flag
|
||||
|
||||
/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance.
|
||||
|
@ -55,10 +55,8 @@ militia_squad = [
|
|||
"uns_men_VC_local_SAP" // Sapper (M3A1)
|
||||
];
|
||||
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders.
|
||||
militia_vehicles = [
|
||||
"uns_nvatruck_mg" // Ural Truck (MG)
|
||||
];
|
||||
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
|
||||
militia_vehicles = [];
|
||||
|
||||
// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels).
|
||||
opfor_vehicles = [
|
||||
|
|
|
@ -0,0 +1,219 @@
|
|||
/*
|
||||
Needed Mods:
|
||||
- The Unsung Vietnam War Mod
|
||||
|
||||
Optional Mods:
|
||||
- None
|
||||
*/
|
||||
|
||||
/* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation
|
||||
Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */
|
||||
KP_liberation_guerilla_units = [
|
||||
"uns_men_ARVNci_HMG",
|
||||
"uns_men_ARVNci_S2",
|
||||
"uns_men_ARVNci_SL",
|
||||
"uns_men_CIDG_COM",
|
||||
"uns_men_CIDG_ENG",
|
||||
"uns_men_CIDG_MED",
|
||||
"uns_men_CIDG_MRK2",
|
||||
"uns_men_CIDG_S1"
|
||||
];
|
||||
|
||||
// Armed vehicles
|
||||
KP_liberation_guerilla_vehicles = [];
|
||||
|
||||
/* Guerilla Equipment
|
||||
There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */
|
||||
|
||||
/* Weapons - You've to add the weapons as array like
|
||||
["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"]
|
||||
You can leave optic and tripod empty with "" */
|
||||
KP_liberation_guerilla_weapons_1 = [
|
||||
["uns_ak47","uns_ak47mag",4,"",""],
|
||||
["uns_PPS52","uns_k50mag",4,"",""],
|
||||
["uns_owen","uns_owenmag",4,"",""],
|
||||
["uns_mas36","uns_mas36mag",4,"",""],
|
||||
["uns_RPD","uns_rpdmag",1,"",""],
|
||||
["uns_m1carbine","uns_m1carbinemag",4,"",""]
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_weapons_2 = [
|
||||
["uns_m2carbine","uns_m2carbinemag",4,"",""],
|
||||
["uns_akm","uns_ak47mag",4,"",""],
|
||||
["uns_DP28_base","uns_47Rnd_DP28",4,"",""],
|
||||
["uns_type50","uns_k50mag",4,"",""],
|
||||
["uns_m16","uns_20Rnd_556x45_Stanag",4,"",""],
|
||||
["uns_mas36","uns_mas36mag",4,"",""]
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_weapons_3 = [
|
||||
["uns_akm_drum","uns_75Rnd_akdr",4,"",""],
|
||||
["uns_sa58p","uns_sa58mag",4,"",""],
|
||||
["uns_PK","uns_100Rnd_762x54_PK",1,"",""],
|
||||
["uns_m1garand","uns_m1garandmag",4,"",""],
|
||||
["uns_M63a_AR_base","uns_30Rnd_556x45_Stanag",4,"",""],
|
||||
["uns_Sterling","uns_mk4mag",4,"",""],
|
||||
["uns_m2carbine_gl","uns_m2carbinemag",4,"",""],
|
||||
["uns_m3a1","uns_m3a1mag",4,"",""],
|
||||
["uns_SVD_CAMO_base","uns_svdmag",4,"",""]
|
||||
];
|
||||
|
||||
// Uniforms
|
||||
KP_liberation_guerilla_uniforms_1 = [
|
||||
"U_C_Man_casual_4_F",
|
||||
"U_C_Man_casual_5_F",
|
||||
"U_C_Man_casual_6_F",
|
||||
"U_I_C_Soldier_Bandit_5_F",
|
||||
"UNS_CIV_B",
|
||||
"UNS_CIV_U",
|
||||
"UNS_VC_B",
|
||||
"UNS_VC_K",
|
||||
"UNS_VC_S",
|
||||
"UNS_VC_U"
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_uniforms_2 = [
|
||||
"U_BG_Guerilla2_1",
|
||||
"U_BG_Guerilla2_3",
|
||||
"U_BG_Guerilla3_1",
|
||||
"U_C_HunterBody_grn",
|
||||
"U_C_Mechanic_01_F",
|
||||
"U_I_C_Soldier_Bandit_1_F",
|
||||
"U_I_C_Soldier_Bandit_3_F",
|
||||
"U_I_C_Soldier_Bandit_4_F",
|
||||
"U_I_C_Soldier_Bandit_5_F",
|
||||
"U_I_C_Soldier_Para_5_F"
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_uniforms_3 = [
|
||||
"U_BG_Guerilla1_1",
|
||||
"U_BG_Guerilla1_2_F",
|
||||
"U_BG_leader",
|
||||
"U_I_C_Soldier_Camo_F",
|
||||
"U_I_C_Soldier_Para_1_F",
|
||||
"U_I_C_Soldier_Para_2_F",
|
||||
"U_I_C_Soldier_Para_3_F",
|
||||
"U_I_C_Soldier_Para_4_F",
|
||||
"UNS_DCCR_BBS",
|
||||
"UNS_DCCR_GTS"
|
||||
];
|
||||
|
||||
// Vests
|
||||
KP_liberation_guerilla_vests_1 = [
|
||||
"UNS_VC_B1",
|
||||
"UNS_VC_S2",
|
||||
"V_BandollierB_blk",
|
||||
"V_BandollierB_cbr",
|
||||
"V_BandollierB_ghex_F",
|
||||
"V_BandollierB_khk",
|
||||
"V_BandollierB_oli",
|
||||
"V_BandollierB_rgr",
|
||||
"V_LegStrapBag_black_F",
|
||||
"V_LegStrapBag_coyote_F",
|
||||
"V_LegStrapBag_olive_F",
|
||||
"V_Pocketed_black_F",
|
||||
"V_Pocketed_coyote_F",
|
||||
"V_Pocketed_olive_F"
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_vests_2 = [
|
||||
"UNS_ANZAC_VEST_C",
|
||||
"UNS_ANZAC_VEST",
|
||||
"UNS_M1956_M14",
|
||||
"UNS_NVA_A1",
|
||||
"UNS_NVA_MG",
|
||||
"uns_vc_chestrig",
|
||||
"UNS_VC_SP",
|
||||
"V_Chestrig_blk",
|
||||
"V_Chestrig_khk",
|
||||
"V_Chestrig_oli",
|
||||
"V_Chestrig_rgr",
|
||||
"V_HarnessO_brn",
|
||||
"V_HarnessO_ghex_F",
|
||||
"V_HarnessO_gry",
|
||||
"V_HarnessOGL_brn",
|
||||
"V_HarnessOGL_ghex_F",
|
||||
"V_HarnessOGL_gry"
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_vests_3 = [
|
||||
"UNS_M1956_M1",
|
||||
"UNS_M1956_M2",
|
||||
"UNS_M1956_M3",
|
||||
"UNS_M1956_S3",
|
||||
"UNS_NVA_SP",
|
||||
"V_I_G_resistanceLeader_F",
|
||||
"V_TacChestrig_cbr_F",
|
||||
"V_TacChestrig_grn_F",
|
||||
"V_TacChestrig_oli_F",
|
||||
"V_TacVest_blk",
|
||||
"V_TacVest_brn",
|
||||
"V_TacVest_camo",
|
||||
"V_TacVest_khk",
|
||||
"V_TacVest_oli"
|
||||
];
|
||||
|
||||
// Headgear
|
||||
KP_liberation_guerilla_headgear_1 = [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"H_StrawHat_dark",
|
||||
"UNS_Boonie3_VC",
|
||||
"UNS_Conehat_VC"
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_headgear_2 = [
|
||||
"H_Bandanna_khk",
|
||||
"UNS_Boonie_VC",
|
||||
"UNS_Headband_BK",
|
||||
"UNS_Headband_ED",
|
||||
"UNS_Headband_OD",
|
||||
"UNS_Headband_OD2",
|
||||
"UNS_Headband_VC",
|
||||
"uns_sas_bandana_erdl",
|
||||
"uns_sas_booniehat_vc_tan",
|
||||
"uns_sas_booniehat_vc",
|
||||
"uns_sas_headband_green",
|
||||
"uns_vc_headband_blue"
|
||||
];
|
||||
|
||||
KP_liberation_guerilla_headgear_3 = [
|
||||
"UNS_Boonie_6",
|
||||
"UNS_Boonie_ERDL",
|
||||
"UNS_Boonie_ERDL3",
|
||||
"UNS_Boonie_OD",
|
||||
"UNS_Boonie_OD2",
|
||||
"UNS_Boonie_ODF",
|
||||
"UNS_Boonie_ODP",
|
||||
"UNS_Field_Cap",
|
||||
"UNS_M1_1",
|
||||
"UNS_M1_AFT",
|
||||
"UNS_PAVN_HG",
|
||||
"UNS_PAVN_HN",
|
||||
"uns_sas_booniehat_erdl2",
|
||||
"uns_sas_booniehat_green2"
|
||||
];
|
||||
|
||||
// Facegear. Applies for tier 2 and 3.
|
||||
KP_liberation_guerilla_facegear = [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"G_Bandanna_blk",
|
||||
"G_Bandanna_khk",
|
||||
"G_Bandanna_oli",
|
||||
"G_Bandanna_shades",
|
||||
"G_Bandanna_tan",
|
||||
"UNS_Peace",
|
||||
"UNS_Scarf_1stCav",
|
||||
"UNS_Scarf_ARVN",
|
||||
"UNS_Scarf_BK_W",
|
||||
"UNS_Scarf_BK",
|
||||
"UNS_Scarf_Blue",
|
||||
"UNS_Scarf_GR",
|
||||
"UNS_Scarf_OD",
|
||||
"UNS_Scarf_PL",
|
||||
"UNS_Scarf_Red"
|
||||
];
|
|
@ -16,6 +16,7 @@ private _idact_sectorstorage = -1;
|
|||
private _idact_supplyfacility = -1;
|
||||
private _idact_ammofacility = -1;
|
||||
private _idact_fuelfacility = -1;
|
||||
private _idact_clearance = -1;
|
||||
private _distfob = (GRLIB_fob_range * 0.8);
|
||||
private _distarsenal = 5;
|
||||
private _distbuildfob = 10;
|
||||
|
@ -34,254 +35,269 @@ waitUntil {one_eco_done};
|
|||
|
||||
while {true} do {
|
||||
|
||||
private _nearfob = [] call F_getNearestFob;
|
||||
private _fobdistance = 9999;
|
||||
private _nearest_sector = [GRLIB_fob_range] call F_getNearestSector;
|
||||
private _prod_sector = [];
|
||||
{
|
||||
if ((_x select 1) == _nearest_sector) exitWith {_prod_sector = _x};
|
||||
} forEach KP_liberation_production;
|
||||
private _nearfob = [] call F_getNearestFob;
|
||||
private _fobdistance = 9999;
|
||||
private _nearest_sector = [GRLIB_fob_range] call F_getNearestSector;
|
||||
private _prod_sector = [];
|
||||
{
|
||||
if ((_x select 1) == _nearest_sector) exitWith {_prod_sector = _x};
|
||||
} forEach KP_liberation_production;
|
||||
|
||||
if (count _nearfob == 3) then {
|
||||
_fobdistance = player distance _nearfob;
|
||||
};
|
||||
if (count _nearfob == 3) then {
|
||||
_fobdistance = player distance _nearfob;
|
||||
};
|
||||
|
||||
if (KP_liberation_mobilearsenal) then {
|
||||
if (KP_liberation_mobilearsenal) then {
|
||||
KP_liberation_neararsenal = ((getpos player) nearobjects [Arsenal_typename, _distarsenal]) select {getObjectType _x >= 8};
|
||||
} else {
|
||||
KP_liberation_neararsenal = [];
|
||||
};
|
||||
|
||||
_nearfobbox = ((getpos player) nearEntities [[FOB_box_typename, FOB_truck_typename], _distbuildfob]);
|
||||
_nearfobbox = ((getpos player) nearEntities [[FOB_box_typename, FOB_truck_typename], _distbuildfob]);
|
||||
|
||||
if (KP_liberation_mobilerespawn) then {
|
||||
if (KP_liberation_mobilerespawn) then {
|
||||
KP_liberation_nearspawn = ((getpos player) nearEntities [[Respawn_truck_typename, huron_typename], _distspawn]);
|
||||
} else {
|
||||
KP_liberation_nearspawn = [];
|
||||
};
|
||||
|
||||
if (GRLIB_removefobboxes) then {
|
||||
GRLIB_removefobboxes = false;
|
||||
if (count _nearfobbox > 0) then {
|
||||
deletevehicle (_nearfobbox select 0);
|
||||
};
|
||||
};
|
||||
if (GRLIB_removefobboxes) then {
|
||||
GRLIB_removefobboxes = false;
|
||||
if (count _nearfobbox > 0) then {
|
||||
deletevehicle (_nearfobbox select 0);
|
||||
};
|
||||
};
|
||||
|
||||
if ( (player distance startbase) < 200 && alive player && vehicle player == player ) then {
|
||||
if (_idact_tutorial == -1) then {
|
||||
_idact_tutorial = player addAction ["<t color='#80FF80'>" + localize "STR_TUTO_ACTION" + "</t>","howtoplay = 1","",-740,false,true,"",""];
|
||||
};
|
||||
} else {
|
||||
if (_idact_tutorial != -1) then {
|
||||
player removeAction _idact_tutorial;
|
||||
_idact_tutorial = -1;
|
||||
};
|
||||
};
|
||||
if ( (player distance startbase) < 200 && alive player && vehicle player == player ) then {
|
||||
if (_idact_tutorial == -1) then {
|
||||
_idact_tutorial = player addAction ["<t color='#80FF80'>" + localize "STR_TUTO_ACTION" + "</t>","howtoplay = 1","",-740,false,true,"",""];
|
||||
};
|
||||
} else {
|
||||
if (_idact_tutorial != -1) then {
|
||||
player removeAction _idact_tutorial;
|
||||
_idact_tutorial = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((_fobdistance < _distredeploy || (player distance startbase) < 200) && alive player && vehicle player == player && GRLIB_halo_param > 0) then {
|
||||
if (_idact_halo == -1) then {
|
||||
_idact_halo = player addAction ["<t color='#80FF80'>" + localize "STR_HALO_ACTION" + "</t> <img size='2' image='res\ui_redeploy.paa'/>","scripts\client\spawn\do_halo.sqf","",-749,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_halo != -1) then {
|
||||
player removeAction _idact_halo;
|
||||
_idact_halo = -1;
|
||||
};
|
||||
};
|
||||
if ((_fobdistance < _distredeploy || (player distance startbase) < 200) && alive player && vehicle player == player && GRLIB_halo_param > 0) then {
|
||||
if (_idact_halo == -1) then {
|
||||
_idact_halo = player addAction ["<t color='#80FF80'>" + localize "STR_HALO_ACTION" + "</t> <img size='2' image='res\ui_redeploy.paa'/>","scripts\client\spawn\do_halo.sqf","",-749,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_halo != -1) then {
|
||||
player removeAction _idact_halo;
|
||||
_idact_halo = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((_fobdistance < _distredeploy || count KP_liberation_nearspawn != 0 || (player distance startbase) < 200) && alive player && vehicle player == player) then {
|
||||
if (_idact_redeploy == -1) then {
|
||||
_idact_redeploy = player addAction ["<t color='#80FF80'>" + localize "STR_DEPLOY_ACTION" + "</t> <img size='2' image='res\ui_redeploy.paa'/>","scripts\client\actions\redeploy.sqf","",-750,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_redeploy != -1) then {
|
||||
player removeAction _idact_redeploy;
|
||||
_idact_redeploy = -1;
|
||||
};
|
||||
};
|
||||
if ((_fobdistance < _distredeploy || count KP_liberation_nearspawn != 0 || (player distance startbase) < 200) && alive player && vehicle player == player) then {
|
||||
if (_idact_redeploy == -1) then {
|
||||
_idact_redeploy = player addAction ["<t color='#80FF80'>" + localize "STR_DEPLOY_ACTION" + "</t> <img size='2' image='res\ui_redeploy.paa'/>","scripts\client\actions\redeploy.sqf","",-750,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_redeploy != -1) then {
|
||||
player removeAction _idact_redeploy;
|
||||
_idact_redeploy = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((leader group player == player) && (count units group player > 1) && alive player && vehicle player == player) then {
|
||||
if (_idact_squad == -1) then {
|
||||
_idact_squad = player addAction ["<t color='#80FF80'>" + localize "STR_SQUAD_MANAGEMENT_ACTION" + "</t> <img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>","scripts\client\ui\squad_management.sqf","",-760,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_squad != -1) then {
|
||||
player removeAction _idact_squad;
|
||||
_idact_squad = -1;
|
||||
};
|
||||
};
|
||||
if ((leader group player == player) && (count units group player > 1) && alive player && vehicle player == player) then {
|
||||
if (_idact_squad == -1) then {
|
||||
_idact_squad = player addAction ["<t color='#80FF80'>" + localize "STR_SQUAD_MANAGEMENT_ACTION" + "</t> <img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>","scripts\client\ui\squad_management.sqf","",-760,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_squad != -1) then {
|
||||
player removeAction _idact_squad;
|
||||
_idact_squad = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((_fobdistance < _distredeploy || count KP_liberation_neararsenal != 0 || count KP_liberation_nearspawn != 0 || (player distance startbase) < 200) && alive player && vehicle player == player) then {
|
||||
if (_idact_arsenal == -1) then {
|
||||
_idact_arsenal = player addAction ["<t color='#FFFF00'>" + localize "STR_ARSENAL_ACTION" + "</t> <img size='2' image='res\ui_arsenal.paa'/>","scripts\client\actions\open_arsenal.sqf","",-980,true,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_arsenal != -1) then {
|
||||
player removeAction _idact_arsenal;
|
||||
_idact_arsenal = -1;
|
||||
};
|
||||
};
|
||||
if ((_fobdistance < _distredeploy || count KP_liberation_neararsenal != 0 || count KP_liberation_nearspawn != 0 || (player distance startbase) < 200) && alive player && vehicle player == player) then {
|
||||
if (_idact_arsenal == -1) then {
|
||||
_idact_arsenal = player addAction ["<t color='#FFFF00'>" + localize "STR_ARSENAL_ACTION" + "</t> <img size='2' image='res\ui_arsenal.paa'/>","scripts\client\actions\open_arsenal.sqf","",-980,true,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_arsenal != -1) then {
|
||||
player removeAction _idact_arsenal;
|
||||
_idact_arsenal = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && (([ player, 3] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin))) then {
|
||||
if (_idact_build == -1) then {
|
||||
_idact_build = player addAction ["<t color='#FFFF00'>" + localize "STR_BUILD_ACTION" + "</t> <img size='2' image='res\ui_build.paa'/>","scripts\client\build\open_build_menu.sqf","",-985,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_build != -1) then {
|
||||
player removeAction _idact_build;
|
||||
_idact_build = -1;
|
||||
};
|
||||
};
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && (([ player, 3] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin))) then {
|
||||
if (_idact_build == -1) then {
|
||||
_idact_build = player addAction ["<t color='#FFFF00'>" + localize "STR_BUILD_ACTION" + "</t> <img size='2' image='res\ui_build.paa'/>","scripts\client\build\open_build_menu.sqf","",-985,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_build != -1) then {
|
||||
player removeAction _idact_build;
|
||||
_idact_build = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((count _nearfobbox != 0) && (alive player) && (vehicle player == player) && !(surfaceIsWater getpos player) && ((player distance startbase) > 1000) && (([player, 3] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin)) && !FOB_build_in_progress) then {
|
||||
if (_idact_buildfob == -1) then {
|
||||
_idact_buildfob = player addAction ["<t color='#FFFF00'>" + localize "STR_FOB_ACTION" + "</t> <img size='2' image='res\ui_deployfob.paa'/>","scripts\client\build\do_build_fob.sqf","",-990,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_buildfob != -1) then {
|
||||
player removeAction _idact_buildfob;
|
||||
_idact_buildfob = -1;
|
||||
};
|
||||
};
|
||||
if ((count _nearfobbox != 0) && (alive player) && (vehicle player == player) && !(surfaceIsWater getpos player) && ((player distance startbase) > 1000) && (([player, 3] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin)) && !FOB_build_in_progress) then {
|
||||
if (_idact_buildfob == -1) then {
|
||||
_idact_buildfob = player addAction ["<t color='#FFFF00'>" + localize "STR_FOB_ACTION" + "</t> <img size='2' image='res\ui_deployfob.paa'/>","scripts\client\build\do_build_fob.sqf","",-990,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_buildfob != -1) then {
|
||||
player removeAction _idact_buildfob;
|
||||
_idact_buildfob = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if (_fobdistance < _distredeploy && alive player && vehicle player == player && (player == ([] call F_getCommander) || [] call F_isAdmin)) then {
|
||||
if (_idact_repackage == -1) then {
|
||||
_idact_repackage = player addAction ["<t color='#FFFF00'>" + localize "STR_FOB_REPACKAGE" + "</t> <img size='2' image='res\ui_deployfob.paa'/>","scripts\client\actions\do_repackage_fob.sqf","",-991,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_repackage != -1) then {
|
||||
player removeAction _idact_repackage;
|
||||
_idact_repackage = -1;
|
||||
};
|
||||
};
|
||||
if (_fobdistance < _distredeploy && alive player && vehicle player == player && (player == ([] call F_getCommander) || [] call F_isAdmin)) then {
|
||||
if (_idact_repackage == -1) then {
|
||||
_idact_repackage = player addAction ["<t color='#FFFF00'>" + localize "STR_FOB_REPACKAGE" + "</t> <img size='2' image='res\ui_deployfob.paa'/>","scripts\client\actions\do_repackage_fob.sqf","",-991,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_repackage != -1) then {
|
||||
player removeAction _idact_repackage;
|
||||
_idact_repackage = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((count GRLIB_all_fobs > 0) && (GRLIB_endgame == 0) && (_fobdistance < _distredeploy || (player distance startbase) < 200) && alive player && vehicle player == player && (([player, 5] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin))) then {
|
||||
if (_idact_secondary == -1) then {
|
||||
_idact_secondary = player addAction ["<t color='#FFFF00'>" + localize "STR_SECONDARY_OBJECTIVES" + "</t>","scripts\client\ui\secondary_ui.sqf","",-992,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_secondary != -1) then {
|
||||
player removeAction _idact_secondary;
|
||||
_idact_secondary = -1;
|
||||
};
|
||||
};
|
||||
if ((count GRLIB_all_fobs > 0) && (GRLIB_endgame == 0) && (_fobdistance < _distredeploy || (player distance startbase) < 200) && alive player && vehicle player == player && (([player, 5] call F_fetchPermission) || (player == ([] call F_getCommander) || [] call F_isAdmin))) then {
|
||||
if (_idact_secondary == -1) then {
|
||||
_idact_secondary = player addAction ["<t color='#FFFF00'>" + localize "STR_SECONDARY_OBJECTIVES" + "</t>","scripts\client\ui\secondary_ui.sqf","",-992,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_secondary != -1) then {
|
||||
player removeAction _idact_secondary;
|
||||
_idact_secondary = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if ((count _prod_sector) == 12) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 0)) then {
|
||||
if (_idact_sectorstorage == -1) then {
|
||||
_idact_sectorstorage = player addAction ["<t color='#FFFF00'>" + localize "STR_SECSTORAGEBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",[KP_liberation_small_storage_building, _prod_sector],-993,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_sectorstorage != -1) then {
|
||||
player removeAction _idact_sectorstorage;
|
||||
_idact_sectorstorage = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 4)) then {
|
||||
if (_idact_supplyfacility == -1) then {
|
||||
_idact_supplyfacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECSUPPLYBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["supply", _prod_sector],-994,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_supplyfacility != -1) then {
|
||||
player removeAction _idact_supplyfacility;
|
||||
_idact_supplyfacility = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 5)) then {
|
||||
if (_idact_ammofacility == -1) then {
|
||||
_idact_ammofacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECAMMOBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["ammo", _prod_sector],-995,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_ammofacility != -1) then {
|
||||
player removeAction _idact_ammofacility;
|
||||
_idact_ammofacility = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 6)) then {
|
||||
if (_idact_fuelfacility == -1) then {
|
||||
_idact_fuelfacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECFUELBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["fuel", _prod_sector],-996,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_fuelfacility != -1) then {
|
||||
player removeAction _idact_fuelfacility;
|
||||
_idact_fuelfacility = -1;
|
||||
};
|
||||
};
|
||||
} else {
|
||||
if (_idact_sectorstorage != -1) then {
|
||||
player removeAction _idact_sectorstorage;
|
||||
_idact_sectorstorage = -1;
|
||||
};
|
||||
if (_idact_supplyfacility != -1) then {
|
||||
player removeAction _idact_supplyfacility;
|
||||
_idact_supplyfacility = -1;
|
||||
};
|
||||
if (_idact_ammofacility != -1) then {
|
||||
player removeAction _idact_ammofacility;
|
||||
_idact_ammofacility = -1;
|
||||
};
|
||||
if (_idact_fuelfacility != -1) then {
|
||||
player removeAction _idact_fuelfacility;
|
||||
_idact_fuelfacility = -1;
|
||||
};
|
||||
};
|
||||
if ((count _prod_sector) == 12) then {
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 0)) then {
|
||||
if (_idact_sectorstorage == -1) then {
|
||||
_idact_sectorstorage = player addAction ["<t color='#FFFF00'>" + localize "STR_SECSTORAGEBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",[KP_liberation_small_storage_building, _prod_sector],-993,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_sectorstorage != -1) then {
|
||||
player removeAction _idact_sectorstorage;
|
||||
_idact_sectorstorage = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 4)) then {
|
||||
if (_idact_supplyfacility == -1) then {
|
||||
_idact_supplyfacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECSUPPLYBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["supply", _prod_sector],-994,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_supplyfacility != -1) then {
|
||||
player removeAction _idact_supplyfacility;
|
||||
_idact_supplyfacility = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 5)) then {
|
||||
if (_idact_ammofacility == -1) then {
|
||||
_idact_ammofacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECAMMOBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["ammo", _prod_sector],-995,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_ammofacility != -1) then {
|
||||
player removeAction _idact_ammofacility;
|
||||
_idact_ammofacility = -1;
|
||||
};
|
||||
};
|
||||
if (alive player && vehicle player == player && ([player, 3] call F_fetchPermission) && ((count (_prod_sector select 3)) == 3) && !(_prod_sector select 6)) then {
|
||||
if (_idact_fuelfacility == -1) then {
|
||||
_idact_fuelfacility = player addAction ["<t color='#FFFF00'>" + localize "STR_SECFUELBUILD_ACTION" + "</t>","scripts\client\build\do_sector_build.sqf",["fuel", _prod_sector],-996,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_fuelfacility != -1) then {
|
||||
player removeAction _idact_fuelfacility;
|
||||
_idact_fuelfacility = -1;
|
||||
};
|
||||
};
|
||||
} else {
|
||||
if (_idact_sectorstorage != -1) then {
|
||||
player removeAction _idact_sectorstorage;
|
||||
_idact_sectorstorage = -1;
|
||||
};
|
||||
if (_idact_supplyfacility != -1) then {
|
||||
player removeAction _idact_supplyfacility;
|
||||
_idact_supplyfacility = -1;
|
||||
};
|
||||
if (_idact_ammofacility != -1) then {
|
||||
player removeAction _idact_ammofacility;
|
||||
_idact_ammofacility = -1;
|
||||
};
|
||||
if (_idact_fuelfacility != -1) then {
|
||||
player removeAction _idact_fuelfacility;
|
||||
_idact_fuelfacility = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player) then {
|
||||
if (_idact_resources == -1) then {
|
||||
_idact_resources = player addAction ["<t color='#FFFF00'>" + localize "STR_RESOURCE_GLOBAL_ACTION" + "</t>",{KP_liberation_resources_global = !KP_liberation_resources_global},"",-997,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_resources != -1) then {
|
||||
player removeAction _idact_resources;
|
||||
_idact_resources = -1;
|
||||
};
|
||||
};
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player) then {
|
||||
if (_idact_resources == -1) then {
|
||||
_idact_resources = player addAction ["<t color='#FFFF00'>" + localize "STR_RESOURCE_GLOBAL_ACTION" + "</t>",{KP_liberation_resources_global = !KP_liberation_resources_global},"",-997,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_resources != -1) then {
|
||||
player removeAction _idact_resources;
|
||||
_idact_resources = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if (((_fobdistance < _distfob) || ((count _prod_sector) == 12)) && (player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && ((count KP_liberation_production) > 0)) then {
|
||||
if (_idact_production == -1) then {
|
||||
_idact_production = player addAction ["<t color='#FF8000'>" + localize "STR_PRODUCTION_ACTION" + "</t>","scripts\client\commander\open_production.sqf","",-998,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_production != -1) then {
|
||||
player removeAction _idact_production;
|
||||
_idact_production = -1;
|
||||
};
|
||||
};
|
||||
if (((_fobdistance < _distfob) || ((count _prod_sector) == 12)) && (player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && ((count KP_liberation_production) > 0)) then {
|
||||
if (_idact_production == -1) then {
|
||||
_idact_production = player addAction ["<t color='#FF8000'>" + localize "STR_PRODUCTION_ACTION" + "</t>","scripts\client\commander\open_production.sqf","",-998,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_production != -1) then {
|
||||
player removeAction _idact_production;
|
||||
_idact_production = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if (KP_liberation_ailogistics) then {
|
||||
if ((_fobdistance < _distfob) && (player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && (((count GRLIB_all_fobs) + (count KP_liberation_production)) > 1)) then {
|
||||
if (_idact_logistic == -1) then {
|
||||
_idact_logistic = player addAction ["<t color='#FF8000'>" + localize "STR_LOGISTIC_ACTION" + "</t>","scripts\client\commander\open_logistic.sqf","",-999,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_logistic != -1) then {
|
||||
player removeAction _idact_logistic;
|
||||
_idact_logistic = -1;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (KP_liberation_ailogistics) then {
|
||||
if ((_fobdistance < _distfob) && (player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && (((count GRLIB_all_fobs) + (count KP_liberation_production)) > 1)) then {
|
||||
if (_idact_logistic == -1) then {
|
||||
_idact_logistic = player addAction ["<t color='#FF8000'>" + localize "STR_LOGISTIC_ACTION" + "</t>","scripts\client\commander\open_logistic.sqf","",-999,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_logistic != -1) then {
|
||||
player removeAction _idact_logistic;
|
||||
_idact_logistic = -1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
if ((player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && GRLIB_permissions_param) then {
|
||||
if (_idact_commander == -1) then {
|
||||
_idact_commander = player addAction ["<t color='#FF8000'>" + localize "STR_COMMANDER_ACTION" + "</t> <img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>","scripts\client\commander\open_permissions.sqf","",-1001,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_commander != -1) then {
|
||||
player removeAction _idact_commander;
|
||||
_idact_commander = -1;
|
||||
};
|
||||
};
|
||||
if ((player == ([] call F_getCommander) || [] call F_isAdmin) && alive player && vehicle player == player && GRLIB_permissions_param) then {
|
||||
if (_idact_commander == -1) then {
|
||||
_idact_commander = player addAction ["<t color='#FF8000'>" + localize "STR_COMMANDER_ACTION" + "</t> <img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>","scripts\client\commander\open_permissions.sqf","",-1001,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
if (_idact_commander != -1) then {
|
||||
player removeAction _idact_commander;
|
||||
_idact_commander = -1;
|
||||
};
|
||||
};
|
||||
|
||||
if (!isNil("commandant")) then {
|
||||
if ((player == commandant) && (isNull(getAssignedCuratorLogic commandant))) then {
|
||||
if ( _idact_zeus == -1 ) then {
|
||||
_idact_zeus = player addAction ["<t color='#FF0000'>" + localize "STR_REASSIGN_ZEUS" + "</t>",{[] remoteExec ["zeus_remote_call",2];},"",-1002,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
player removeAction _idact_zeus;
|
||||
_idact_zeus = -1;
|
||||
};
|
||||
};
|
||||
if (!isNil("commandant")) then {
|
||||
if ((player == commandant) && (isNull(getAssignedCuratorLogic commandant))) then {
|
||||
if ( _idact_zeus == -1 ) then {
|
||||
_idact_zeus = player addAction ["<t color='#FF0000'>" + localize "STR_REASSIGN_ZEUS" + "</t>",{[] remoteExec ["zeus_remote_call",2];},"",-1002,false,true,"","build_confirmed == 0"];
|
||||
};
|
||||
} else {
|
||||
player removeAction _idact_zeus;
|
||||
_idact_zeus = -1;
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
if (_fobdistance < _distfob && alive player && vehicle player == player && (player == ([] call F_getCommander) || [] call F_isAdmin)) then {
|
||||
if (_idact_clearance == -1) then {
|
||||
_idact_clearance = player addAction [
|
||||
"<t color='#FFFF00'>" + localize "STR_CLEARANCE_ACTION" + "</t>",
|
||||
{[_this select 3 select 0, _this select 3 select 1, true] remoteExecCall ["F_createClearance", 2];},
|
||||
[_nearFob, GRLIB_fob_range * 0.9], -1003, false, true, "", "build_confirmed == 0"
|
||||
];
|
||||
};
|
||||
} else {
|
||||
if (_idact_clearance != -1) then {
|
||||
player removeAction _idact_clearance;
|
||||
_idact_clearance = -1;
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
|
|
|
@ -15,10 +15,12 @@ if ( dorepackage > 0 ) then {
|
|||
|
||||
_fob = [] call F_getNearestFob;
|
||||
|
||||
if ( count _fob > 0 ) then {
|
||||
GRLIB_all_fobs = GRLIB_all_fobs - [ _fob ];
|
||||
publicVariable "GRLIB_all_fobs";
|
||||
};
|
||||
if (count _fob > 0) then {
|
||||
GRLIB_all_fobs = GRLIB_all_fobs - [_fob];
|
||||
KP_liberation_clearances deleteAt (KP_liberation_clearances findIf {(_x select 0) isEqualTo _fob});
|
||||
publicVariable "GRLIB_all_fobs";
|
||||
publicVariable "KP_liberation_clearances";
|
||||
};
|
||||
|
||||
{deleteVehicle _x} foreach (((getpos player) nearobjects [ FOB_typename, 250 ]) select {getObjectType _x >= 8});
|
||||
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
[] call compileFinal preprocessFileLineNumbers "scripts\client\misc\init_markers.sqf";
|
||||
switch (KP_liberation_arsenal) do {
|
||||
case 1: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\custom.sqf";};
|
||||
case 2: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\killahpotatoes.sqf";};
|
||||
case 3: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf.sqf";};
|
||||
case 4: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf_ace.sqf";};
|
||||
case 5: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf_ace_acre.sqf";};
|
||||
case 6: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\3cbBAF.sqf";};
|
||||
case 7: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_west.sqf";};
|
||||
case 8: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_east.sqf";};
|
||||
case 9: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\csat.sqf";};
|
||||
case 1: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\custom.sqf";};
|
||||
case 2: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\killahpotatoes.sqf";};
|
||||
case 3: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf.sqf";};
|
||||
case 4: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf_ace.sqf";};
|
||||
case 5: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf_ace_acre.sqf";};
|
||||
case 6: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\3cbBAF.sqf";};
|
||||
case 7: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_west.sqf";};
|
||||
case 8: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_east.sqf";};
|
||||
case 9: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\csat.sqf";};
|
||||
case 10: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\unsung.sqf";};
|
||||
case 11: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\sfp.sqf";};
|
||||
default {GRLIB_arsenal_weapons = [];GRLIB_arsenal_magazines = [];GRLIB_arsenal_items = [];GRLIB_arsenal_backpacks = [];};
|
||||
default {GRLIB_arsenal_weapons = [];GRLIB_arsenal_magazines = [];GRLIB_arsenal_items = [];GRLIB_arsenal_backpacks = [];};
|
||||
};
|
||||
|
||||
if (typeOf player == "VirtualSpectator_F") exitWith {
|
||||
|
|
|
@ -1,15 +1,81 @@
|
|||
{ diag_log format [ "[ ""%1"", [%2, %3, %4], %5 ],",
|
||||
typeof _x,
|
||||
[ (getpos _x select 0) - (getpos player select 0), 2 ] call BIS_fnc_cutDecimals,
|
||||
[ (getpos _x select 1) - (getpos player select 1), 2 ] call BIS_fnc_cutDecimals,
|
||||
[ (getposatl _x select 2), 2 ] call BIS_fnc_cutDecimals,
|
||||
[ getdir _x , 2 ] call BIS_fnc_cutDecimals ]
|
||||
} foreach ( (nearestObjects [player, [ "Man" ], 50]) - ((nearestObjects [player, [ "Animal" ], 50]) + [player]));
|
||||
/*
|
||||
--- USAGE ---
|
||||
|
||||
{ diag_log format [ "[ ""%1"", [%2, %3, %4], %5 ],",
|
||||
typeof _x,
|
||||
[ (getpos _x select 0) - (getpos player select 0), 2 ] call BIS_fnc_cutDecimals,
|
||||
[ (getpos _x select 1) - (getpos player select 1), 2 ] call BIS_fnc_cutDecimals,
|
||||
[ (getposatl _x select 2), 2 ] call BIS_fnc_cutDecimals,
|
||||
[ getdir _x , 2 ] call BIS_fnc_cutDecimals ]
|
||||
} foreach ( (nearestObjects [player, [ "All" ], 50]) - ((nearestObjects [player, [ "Man","Animal" ], 50]) + [player]));
|
||||
Place this file in the Eden mission folder where you want to build your FOB templates.
|
||||
After building your FOB in Eden, place down a center object in the middle of your FOB.
|
||||
I recommend a small cluttercutter object (Land_ClutterCutter_small_F) for this.
|
||||
|
||||
In the init field of the center object add:
|
||||
_ = [this] execVM "export_template.sqf";
|
||||
|
||||
Then preview the mission in eden to execute the script.
|
||||
|
||||
The fetched information can be found in your client rpt (between the START and END line) for copy/paste.
|
||||
Ref for finding your RPT file: https://community.bistudio.com/wiki/Crash_Files#Arma_3
|
||||
|
||||
--- RECOMMENDATIONS ---
|
||||
|
||||
!IMPORTANT! Don't (!) exceed an area with a radius of 35m for the FOB. !IMPORTANT!
|
||||
|
||||
You could create a trigger with that radius and use it as "build area helper".
|
||||
After exporting the template, you should replace possible placed vehicles or crates etc. with the Liberation variables.
|
||||
Have a look at the other templates to get an idea of it.
|
||||
*/
|
||||
|
||||
params [
|
||||
["_center", player, [objNull]]
|
||||
];
|
||||
|
||||
diag_log text "";
|
||||
diag_log text "";
|
||||
diag_log text "[KP LIBERATION] [FOB EXPORT] ---------- START ----------";
|
||||
|
||||
// Fetch all objects
|
||||
diag_log text "";
|
||||
diag_log text "_objects_to_build = [";
|
||||
{
|
||||
diag_log text format [
|
||||
" [""%1"", [%2, %3, %4], %5],",
|
||||
typeof _x,
|
||||
((getpos _x select 0) - (getpos _center select 0)) toFixed 2,
|
||||
((getpos _x select 1) - (getpos _center select 1)) toFixed 2,
|
||||
(getposatl _x select 2) toFixed 2,
|
||||
(getdir _x) toFixed 2
|
||||
];
|
||||
} forEach ((nearestObjects [_center, ["All"], 40]) - ((nearestObjects [_center, ["Man","Animal"], 40]) + [_center]));
|
||||
diag_log text "];";
|
||||
|
||||
diag_log text "";
|
||||
diag_log text "_objectives_to_build = [";
|
||||
diag_log text " // Move all things which should be destroyed to accomplish the mission from the above to this array";
|
||||
diag_log text "];";
|
||||
|
||||
// Fetch all infantry/guards
|
||||
diag_log text "";
|
||||
diag_log text "_defenders_to_build = [";
|
||||
{
|
||||
diag_log text format [
|
||||
" [""%1"", [%2, %3, %4], %5],",
|
||||
typeof _x,
|
||||
((getpos _x select 0) - (getpos _center select 0)) toFixed 2,
|
||||
((getpos _x select 1) - (getpos _center select 1)) toFixed 2,
|
||||
(getposatl _x select 2) toFixed 2,
|
||||
(getdir _x) toFixed 2
|
||||
];
|
||||
} forEach ((nearestObjects [_center, ["Man"], 40]) - ((nearestObjects [_center, [ "Animal" ], 40]) + [_center]));
|
||||
diag_log text "];";
|
||||
|
||||
diag_log text "";
|
||||
diag_log text "_base_corners = [";
|
||||
diag_log text " [40, 40, 0],";
|
||||
diag_log text " [40, -40, 0],";
|
||||
diag_log text " [-40, -40, 0],";
|
||||
diag_log text " [-40, 40, 0],";
|
||||
diag_log text "];";
|
||||
|
||||
diag_log text "";
|
||||
diag_log text "[KP LIBERATION] [FOB EXPORT] ---------- END ----------";
|
||||
diag_log text "";
|
||||
diag_log text "";
|
||||
|
||||
true
|
||||
|
|
|
@ -31,6 +31,10 @@ if ( _spawn_marker != "" ) then {
|
|||
|
||||
[_spawn_marker] remoteExec ["remote_call_battlegroup"];
|
||||
|
||||
if (worldName in KP_liberation_battlegroup_clearance) then {
|
||||
[markerpos _spawn_marker, 15] call F_createClearance;
|
||||
};
|
||||
|
||||
{
|
||||
_nextgrp = createGroup [GRLIB_side_enemy, true];
|
||||
_vehicle = [markerpos _spawn_marker, _x] call F_libSpawnVehicle;
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
KP_liberation_cr_ign_buildings = [
|
||||
"Land_Bunker_02_double_F",
|
||||
"Land_Bunker_02_left_F",
|
||||
"Land_Bunker_02_light_double_F",
|
||||
"Land_Bunker_02_light_left_F",
|
||||
"Land_Bunker_02_light_right_F",
|
||||
"Land_Bunker_02_right_F",
|
||||
"Land_Calvary_03_F",
|
||||
"Land_CastleRuins_01_wall_10m_F",
|
||||
"Land_CastleRuins_01_wall_d_L_F",
|
||||
"Land_CastleRuins_01_wall_d_R_F",
|
||||
"Land_ChickenCoop_01_F",
|
||||
"Land_cmp_Shed_dam_F",
|
||||
"Land_Communication_F",
|
||||
"Land_ConcreteWell_02_F",
|
||||
"Land_Cross_01_small_F",
|
||||
"Land_DeerStand_01_F",
|
||||
"Land_DPP_01_waterCooler_F",
|
||||
"Land_DryToilet_01_F",
|
||||
"Land_FeedRack_01_F",
|
||||
"Land_FeedStorage_01_F",
|
||||
"Land_FuelStation_03_pump_F",
|
||||
"Land_Grave_08_F",
|
||||
"Land_Grave_09_F",
|
||||
"Land_Grave_10_F",
|
||||
"Land_Grave_11_F",
|
||||
"Land_GraveFence_01_F",
|
||||
"Land_GraveFence_02_F",
|
||||
"Land_GraveFence_03_F",
|
||||
"Land_GraveFence_04_F",
|
||||
"Land_Greenhouse_01_damaged_F",
|
||||
"Land_GuardTower_02_F",
|
||||
"Land_HighVoltageEnd_F",
|
||||
"Land_HighVoltageTower_large_F",
|
||||
"Land_Hutch_01_F",
|
||||
"Land_IndPipe3_big_ground1_F",
|
||||
"Land_IndPipe3_big_ground2_F",
|
||||
"Land_IndPipe3_bigL_L_F",
|
||||
"Land_IndPipe3_bigL_R_F",
|
||||
"Land_LampDecor_F",
|
||||
"Land_LampHalogen_F",
|
||||
"Land_LampHarbour_F",
|
||||
"Land_LampIndustrial_01_F",
|
||||
"Land_LampIndustrial_01_off_F",
|
||||
"Land_LampIndustrial_02_F",
|
||||
"Land_LampIndustrial_02_off_F",
|
||||
"Land_LampShabby_F",
|
||||
"Land_LampStreet_02_amplion_F",
|
||||
"Land_LampStreet_02_amplion_off_F",
|
||||
"Land_LampStreet_02_double_F",
|
||||
"Land_LampStreet_02_double_off_F",
|
||||
"Land_LampStreet_02_F",
|
||||
"Land_LampStreet_02_off_F",
|
||||
"Land_LampStreet_02_triple_off_F",
|
||||
"Land_Power_Pole_Wood1_Amp",
|
||||
"Land_Power_Pole_Wood1_Lamp_Amp",
|
||||
"Land_Power_Pole_Wood1_Lamp",
|
||||
"Land_Power_Pole_Wood1",
|
||||
"Land_Power_Pole_Wood3",
|
||||
"Land_PowerLine_01_wire_50m_F",
|
||||
"Land_PowerLine_01_wire_50m_main_F",
|
||||
"Land_PowerLine_02_pole_junction_A_F",
|
||||
"Land_powerline_02_pole_junction_nest_a_f",
|
||||
"Land_PowerLine_02_pole_small_A_F",
|
||||
"Land_PowerLine_02_pole_small_end_A_F",
|
||||
"Land_PowerLine_02_pole_small_F",
|
||||
"Land_powerline_02_pole_small_hook_end_f",
|
||||
"Land_PowerLine_02_pole_small_hook_F",
|
||||
"Land_powerline_02_pole_small_hook_junction_f",
|
||||
"Land_PowerLine_03_pole_end_F",
|
||||
"Land_PowerLine_03_pole_F",
|
||||
"Land_PowerLine_03_pole_junction_F",
|
||||
"Land_PowerWireBig_direct_F",
|
||||
"Land_PowerWireBig_end_F",
|
||||
"Land_Radar_01_airshaft_F",
|
||||
"Land_Rail_ConcreteRamp_F",
|
||||
"Land_Rail_Crossing_Barrier_F",
|
||||
"Land_Sawmill_01_illuminati_tower_F",
|
||||
"Land_Shed_06_F",
|
||||
"Land_Shed_10_F",
|
||||
"Land_StoneWell_01_F",
|
||||
"Land_TelephoneLine_01_wire_50m_main_F",
|
||||
"Land_TTowerSmall_2_F"
|
||||
];
|
|
@ -0,0 +1,103 @@
|
|||
KP_liberation_cr_ign_buildings = [
|
||||
"Land_AfDum_mesto2",
|
||||
"Land_AfDum_mesto2L",
|
||||
"Land_AfDum_mesto3",
|
||||
"Land_bouda_plech",
|
||||
"Land_Brana02nodoor",
|
||||
"Land_Dulni_bs",
|
||||
"Land_Dum_zboreny",
|
||||
"Land_Dum_zboreny_total",
|
||||
"Land_Helfenburk_budova2",
|
||||
"Land_Helfenburk_cimburi",
|
||||
"Land_Helfenburk_zed",
|
||||
"Land_Hlaska",
|
||||
"Land_Hut03",
|
||||
"Land_KBud",
|
||||
"Land_Kontejner",
|
||||
"Land_Kontejner_papir",
|
||||
"Land_Kontejner_plasty",
|
||||
"Land_Kontejner_sklo",
|
||||
"Land_Kostel_trosky",
|
||||
"Land_ladder",
|
||||
"Land_ladder_half",
|
||||
"Land_Lampa_ind",
|
||||
"Land_Lampa_ind_b",
|
||||
"Land_Lampa_ind_zebr",
|
||||
"Land_Lampa_sidl",
|
||||
"Land_Lampa_sidl_2",
|
||||
"Land_Lampa_sidl_3",
|
||||
"Land_Lampa_vysoka",
|
||||
"Land_Leseni2x",
|
||||
"Land_Leseni4x",
|
||||
"Land_Majak_podesta",
|
||||
"Land_Molo_beton",
|
||||
"Land_Molo_drevo_bs",
|
||||
"Land_Molo_drevo_end",
|
||||
"Land_Molo_krychle",
|
||||
"Land_Molo_krychle2",
|
||||
"Land_Nabrezi",
|
||||
"Land_Nabrezi_najezd",
|
||||
"Land_Nasypka",
|
||||
"Land_Plot_green_branka",
|
||||
"Land_Plot_green_vrata",
|
||||
"Land_Plot_istan1_rovny_gate",
|
||||
"Land_Plot_rust_branka",
|
||||
"Land_Plot_rust_vrata",
|
||||
"Land_Plot_zboreny",
|
||||
"Land_Plot_zed_drevo1_branka",
|
||||
"Land_Podesta_1_cornl",
|
||||
"Land_Podesta_1_cornp",
|
||||
"Land_Podesta_1_cube",
|
||||
"Land_Podesta_1_cube_long",
|
||||
"Land_Podesta_1_mid",
|
||||
"Land_Podesta_1_mid_cornl",
|
||||
"Land_Podesta_1_mid_cornp",
|
||||
"Land_Podesta_1_stairs",
|
||||
"Land_Podesta_1_stairs2",
|
||||
"Land_Podesta_1_stairs3",
|
||||
"Land_Podesta_1_stairs4",
|
||||
"Land_Podesta_10",
|
||||
"Land_Podesta_5",
|
||||
"Land_Podesta_s10",
|
||||
"Land_Podesta_s5",
|
||||
"Land_Posed",
|
||||
"Land_Psi_bouda",
|
||||
"Land_Pumpa",
|
||||
"Land_seno_balik",
|
||||
"Land_sloup_vn",
|
||||
"Land_sloup_vn_drat",
|
||||
"Land_sloup_vn_dratZ",
|
||||
"land_statek_brana_open",
|
||||
"Land_Stoplight01",
|
||||
"Land_Stoplight02",
|
||||
"Land_Trafostanica_mala",
|
||||
"Land_Trafostanica_velka",
|
||||
"Land_Trafostanica_velka_draty",
|
||||
"Land_Vez",
|
||||
"Land_Vysilac_FM",
|
||||
"Land_Vysilac_FM2",
|
||||
"Land_water_tank",
|
||||
"Land_Zastavka_jih",
|
||||
"Land_Zastavka_sever",
|
||||
"Land_Zavora",
|
||||
"Land_Zavora_2_a1",
|
||||
"Land_Fuel_tank_big",
|
||||
"Land_Ind_Shed_01_end",
|
||||
"Land_Ind_Shed_01_main",
|
||||
"land_nav_pier_c_t15",
|
||||
"Land_popelnice",
|
||||
"land_nav_pier_F_23",
|
||||
"land_nav_pier_m_end",
|
||||
"Land_nav_pier_m_2",
|
||||
"Land_A_statue01",
|
||||
"Land_Misc_GContainer_Big",
|
||||
"Land_fuel_tank_small",
|
||||
"Land_Misc_Cargo1B",
|
||||
"Land_Misc_Cargo1D",
|
||||
"Land_Misc_Cargo1C",
|
||||
"land_nav_pier_F_17",
|
||||
"Land_Ind_TankSmall2",
|
||||
"Land_LifeguardTower_01_F",
|
||||
"Land_Pier_F",
|
||||
"Land_Zed_dira_civil"
|
||||
];
|
|
@ -0,0 +1,11 @@
|
|||
KP_liberation_cr_ign_buildings = [
|
||||
"Land_Communication_F",
|
||||
"LAND_fort2",
|
||||
"Land_fortified_nest_big_ep1",
|
||||
"Land_LampShabby_F",
|
||||
"Land_misc_well_c_ep1",
|
||||
"Land_statek_brana_open",
|
||||
"Land_vez",
|
||||
"Land_Vysilac_FM",
|
||||
"Land_Water_Tank"
|
||||
];
|
|
@ -1,35 +1,38 @@
|
|||
if (KP_liberation_civrep_debug > 0) then {diag_log format ["[KP LIBERATION] [CIVREP] init_buildings.sqf initialising on: %1", debug_source];};
|
||||
|
||||
switch (worldName) do {
|
||||
case "Chernarus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"};
|
||||
case "Chernarus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"};
|
||||
case "Enoch": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\enoch.sqf"};
|
||||
case "gm_weferlingen_summer": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_summer.sqf"};
|
||||
case "gm_weferlingen_winter": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_winter.sqf"};
|
||||
case "lythium": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\lythium.sqf"};
|
||||
case "Malden": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\malden.sqf"};
|
||||
case "pja310": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\pja310.sqf"};
|
||||
case "Sara": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\sara.sqf"};
|
||||
case "Takistan": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\takistan.sqf"};
|
||||
case "Tanoa": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\tanoa.sqf"};
|
||||
case "WL_Rosche": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\wl_rosche.sqf"};
|
||||
case "xcam_taunus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\xcam_taunus.sqf"};
|
||||
default {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\altis.sqf"};
|
||||
case "lythium": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\lythium.sqf"};
|
||||
case "Malden": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\malden.sqf"};
|
||||
case "panthera3": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\panthera3.sqf"};
|
||||
case "pja310": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\pja310.sqf"};
|
||||
case "Sara": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\sara.sqf"};
|
||||
case "song_bin_tanh": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\song_bin_tanh.sqf"};
|
||||
case "Takistan": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\takistan.sqf"};
|
||||
case "Tanoa": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\tanoa.sqf"};
|
||||
case "WL_Rosche": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\wl_rosche.sqf"};
|
||||
case "xcam_taunus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\xcam_taunus.sqf"};
|
||||
default {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\altis.sqf"};
|
||||
};
|
||||
|
||||
KP_liberation_cr_sectorbuildings = [];
|
||||
|
||||
{
|
||||
KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings];
|
||||
KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings];
|
||||
} forEach sectors_capture;
|
||||
|
||||
{
|
||||
KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings];
|
||||
KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings];
|
||||
} forEach sectors_bigtown;
|
||||
|
||||
sleep 1;
|
||||
|
||||
if (KP_liberation_civrep_debug > 0) then {
|
||||
diag_log format ["[KP LIBERATION] [CIVREP] init_buildings.sqf finished on: %1 - Listing sectors with buildings amount...", debug_source];
|
||||
{
|
||||
diag_log format ["[KP LIBERATION] [CIVREP] %1: %2", markerText (_x select 0), (_x select 1)];
|
||||
} forEach KP_liberation_cr_sectorbuildings;
|
||||
diag_log format ["[KP LIBERATION] [CIVREP] init_buildings.sqf finished on: %1 - Listing sectors with buildings amount...", debug_source];
|
||||
{
|
||||
diag_log format ["[KP LIBERATION] [CIVREP] %1: %2", markerText (_x select 0), (_x select 1)];
|
||||
} forEach KP_liberation_cr_sectorbuildings;
|
||||
};
|
||||
|
|
|
@ -58,6 +58,8 @@ GRLIB_vehicle_to_military_base_links = [];
|
|||
infantry_weight = 33;
|
||||
// Civilian reputation value (-100 - +100)
|
||||
KP_liberation_civ_rep = 0;
|
||||
// Clearances
|
||||
KP_liberation_clearances = [];
|
||||
// Captured civilian vehicles
|
||||
KP_liberation_cr_vehicles = [];
|
||||
// Strength value of the resistance forces
|
||||
|
@ -70,6 +72,8 @@ KP_liberation_production = [];
|
|||
KP_liberation_production_markers = [];
|
||||
// Global Intel resource
|
||||
resources_intel = 0;
|
||||
// State if the save is fully loaded
|
||||
save_is_loaded = false;
|
||||
|
||||
// Trigger to start a saving process
|
||||
doSaveTrigger = false;
|
||||
|
@ -158,11 +162,12 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
GRLIB_permissions = greuh_liberation_savegame select 10;
|
||||
GRLIB_vehicle_to_military_base_links = greuh_liberation_savegame select 11;
|
||||
KP_liberation_civ_rep = greuh_liberation_savegame select 12;
|
||||
KP_liberation_guerilla_strength = greuh_liberation_savegame select 13;
|
||||
KP_liberation_logistics = greuh_liberation_savegame select 14;
|
||||
KP_liberation_production = greuh_liberation_savegame select 15;
|
||||
KP_liberation_production_markers = greuh_liberation_savegame select 16;
|
||||
resources_intel = greuh_liberation_savegame select 17;
|
||||
KP_liberation_clearances = greuh_liberation_savegame select 13;
|
||||
KP_liberation_guerilla_strength = greuh_liberation_savegame select 14;
|
||||
KP_liberation_logistics = greuh_liberation_savegame select 15;
|
||||
KP_liberation_production = greuh_liberation_savegame select 16;
|
||||
KP_liberation_production_markers = greuh_liberation_savegame select 17;
|
||||
resources_intel = greuh_liberation_savegame select 18;
|
||||
|
||||
stats_ammo_produced = _stats select 0;
|
||||
stats_ammo_spent = _stats select 1;
|
||||
|
@ -279,6 +284,11 @@ if (!isNil "greuh_liberation_savegame") then {
|
|||
setDate [2045, 6, 6, _dateTime, 0]; // Compatibility for older save data
|
||||
};
|
||||
|
||||
// Create clearances
|
||||
{
|
||||
[_x select 0, _x select 1] call F_createClearance;
|
||||
} forEach KP_liberation_clearances;
|
||||
|
||||
// Collection array for all objects which are loaded
|
||||
private _spawnedObjects = [];
|
||||
|
||||
|
@ -461,6 +471,7 @@ publicVariable "stats_civilian_vehicles_seized";
|
|||
publicVariable "stats_ieds_detonated";
|
||||
publicVariable "blufor_sectors";
|
||||
publicVariable "GRLIB_all_fobs";
|
||||
publicVariable "KP_liberation_clearances";
|
||||
|
||||
// Check for deleted military sectors or deleted classnames in the locked vehicles array
|
||||
GRLIB_vehicle_to_military_base_links = GRLIB_vehicle_to_military_base_links select {((_x select 0) in elite_vehicles) && ((_x select 1) in sectors_military)};
|
||||
|
@ -670,6 +681,7 @@ while {true} do {
|
|||
GRLIB_permissions,
|
||||
GRLIB_vehicle_to_military_base_links,
|
||||
KP_liberation_civ_rep,
|
||||
KP_liberation_clearances,
|
||||
KP_liberation_guerilla_strength,
|
||||
KP_liberation_logistics,
|
||||
KP_liberation_production,
|
||||
|
|
|
@ -68,6 +68,19 @@ execVM "scripts\server\resources\unit_cap.sqf";
|
|||
execVM "scripts\server\sector\lose_sectors.sqf";
|
||||
execVM "scripts\server\sector\manage_sectors.sqf";
|
||||
|
||||
// Select FOB templates
|
||||
switch (KP_liberation_preset_opfor) do {
|
||||
default {
|
||||
KPLIB_fob_templates = [
|
||||
"scripts\fob_templates\default\template1.sqf",
|
||||
"scripts\fob_templates\default\template2.sqf",
|
||||
"scripts\fob_templates\default\template3.sqf",
|
||||
"scripts\fob_templates\default\template4.sqf",
|
||||
"scripts\fob_templates\default\template5.sqf"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
// Civil Reputation
|
||||
execVM "scripts\server\civrep\init_module.sqf";
|
||||
|
||||
|
@ -81,12 +94,12 @@ execVM "scripts\server\asymmetric\init_module.sqf";
|
|||
execVM "scripts\server\offloading\group_diag.sqf";
|
||||
|
||||
{
|
||||
if ( (_x != player) && (_x distance (getmarkerpos GRLIB_respawn_marker) < 200 ) ) then {
|
||||
deleteVehicle _x;
|
||||
};
|
||||
if ((_x != player) && (_x distance (getmarkerpos GRLIB_respawn_marker) < 200 )) then {
|
||||
deleteVehicle _x;
|
||||
};
|
||||
} foreach allUnits;
|
||||
|
||||
// Server Restart Script from K4s0
|
||||
if (KP_liberation_restart > 0) then {
|
||||
execVM "scripts\server\game\server_restart.sqf";
|
||||
execVM "scripts\server\game\server_restart.sqf";
|
||||
};
|
||||
|
|
|
@ -11,10 +11,12 @@ sleep 5;
|
|||
waitUntil { sleep 0.3; !isNil "blufor_sectors" };
|
||||
waitUntil { sleep 0.3; count blufor_sectors > 3 };
|
||||
|
||||
{
|
||||
[_x, false] spawn manage_one_patrol;
|
||||
sleep 1;
|
||||
} foreach _combat_triggers;
|
||||
if (worldName != "song_bin_tanh") then {
|
||||
{
|
||||
[_x, false] spawn manage_one_patrol;
|
||||
sleep 1;
|
||||
} foreach _combat_triggers;
|
||||
};
|
||||
|
||||
{
|
||||
[_x, true] spawn manage_one_patrol;
|
||||
|
|
|
@ -8,6 +8,7 @@ publicVariable "GRLIB_all_fobs";
|
|||
|
||||
if ( _create_fob_building ) then {
|
||||
_fob_pos = [ (_new_fob select 0) + 15, (_new_fob select 1) + 2, 0 ];
|
||||
[_fob_pos, 20, true] call F_createClearance;
|
||||
_fob_building = FOB_typename createVehicle _fob_pos;
|
||||
_fob_building setpos _fob_pos;
|
||||
_fob_building setVectorUp [0,0,1];
|
||||
|
|
|
@ -1,15 +1,23 @@
|
|||
if ( !isServer ) exitWith {};
|
||||
if ( isNil "GRLIB_secondary_starting" ) then { GRLIB_secondary_starting = false; };
|
||||
if ( GRLIB_secondary_starting ) exitWith { diag_log "[KP LIBERATION] [ERROR] Multiple calls to start secondary mission : shouldn't be possible, isn't allowed"; };
|
||||
if ( isNil "used_positions" ) then { used_positions = []; };
|
||||
if (!isServer) exitWith {false};
|
||||
|
||||
params [
|
||||
["_mission_index", -1, [0]]
|
||||
];
|
||||
|
||||
if (_mission_index < 0) exitWith {false};
|
||||
|
||||
if (isNil "GRLIB_secondary_starting") then { GRLIB_secondary_starting = false;};
|
||||
if (GRLIB_secondary_starting) exitWith {diag_log "[KP LIBERATION] [ERROR] Multiple calls to start secondary mission : shouldn't be possible, isn't allowed";};
|
||||
if (isNil "used_positions") then {used_positions = [];};
|
||||
|
||||
GRLIB_secondary_starting = true; publicVariable "GRLIB_secondary_starting";
|
||||
params [ "_mission_index" ];
|
||||
|
||||
resources_intel = resources_intel - ( GRLIB_secondary_missions_costs select _mission_index );
|
||||
|
||||
if ( _mission_index == 0 ) then { [] call fob_hunting; };
|
||||
if ( _mission_index == 1 ) then { [] call convoy_hijack; };
|
||||
if ( _mission_index == 2 ) then { [] call search_and_rescue; };
|
||||
if (_mission_index == 0) then {[] spawn fob_hunting;};
|
||||
if (_mission_index == 1) then {[] spawn convoy_hijack;};
|
||||
if (_mission_index == 2) then {[] spawn search_and_rescue;};
|
||||
|
||||
GRLIB_secondary_starting = false; publicVariable "GRLIB_secondary_starting";
|
||||
|
||||
true
|
||||
|
|
|
@ -1,123 +1,131 @@
|
|||
|
||||
_defenders_amount = 15 * ( sqrt ( GRLIB_unitcap ) );
|
||||
if ( _defenders_amount > 15 ) then { _defenders_amount = 15 };
|
||||
_fob_templates = [
|
||||
"scripts\fob_templates\template5.sqf",
|
||||
"scripts\fob_templates\template4.sqf",
|
||||
"scripts\fob_templates\template3.sqf",
|
||||
"scripts\fob_templates\template2.sqf",
|
||||
"scripts\fob_templates\template1.sqf"
|
||||
];
|
||||
_defenders_amount = (15 * (sqrt (GRLIB_unitcap))) min 15;
|
||||
|
||||
_spawn_marker = [2000,999999,false] call F_findOpforSpawnPoint;
|
||||
if ( _spawn_marker == "" ) exitWith { diag_log "[KP LIBERATION] [ERROR] Could not find position for fob hunting mission"; };
|
||||
if (_spawn_marker == "") exitWith {diag_log "[KP LIBERATION] [ERROR] Could not find position for fob hunting mission";};
|
||||
|
||||
used_positions = used_positions + [ _spawn_marker ];
|
||||
used_positions pushBack _spawn_marker;
|
||||
_base_position = markerpos _spawn_marker;
|
||||
_base_objects = [];
|
||||
_base_objectives = [];
|
||||
_base_defenders = [];
|
||||
_template = ([] call (compile preprocessFileLineNumbers (selectRandom _fob_templates)));
|
||||
|
||||
_objects_to_build = _template select 0;
|
||||
_objectives_to_build = _template select 1;
|
||||
_defenders_to_build = _template select 2;
|
||||
_base_corners = _template select 3;
|
||||
([] call (compile preprocessFileLineNumbers (selectRandom KPLIB_fob_templates))) params [
|
||||
"_objects_to_build",
|
||||
"_objectives_to_build",
|
||||
"_defenders_to_build",
|
||||
"_base_corners"
|
||||
];
|
||||
|
||||
[_base_position, 50] call F_createClearance;
|
||||
|
||||
private _nextobject = objNull;
|
||||
|
||||
{
|
||||
_nextclass = _x select 0;
|
||||
_nextpos = _x select 1;
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)),((_base_position select 1) + (_nextpos select 1)),0];
|
||||
_nextdir = _x select 2;
|
||||
_x params [
|
||||
"_nextclass",
|
||||
"_nextpos",
|
||||
"_nextdir"
|
||||
];
|
||||
|
||||
_nextobject = _nextclass createVehicle _nextpos;
|
||||
_nextobject setVectorUp [0,0,1];
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject setpos _nextpos;
|
||||
_nextobject setVectorUp [0,0,1];
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject setpos _nextpos;
|
||||
_base_objects = _base_objects + [_nextobject];
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), 0];
|
||||
|
||||
} foreach _objects_to_build;
|
||||
_nextobject = _nextclass createVehicle _nextpos;
|
||||
_nextobject setVectorUp [0, 0, 1];
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject setpos _nextpos;
|
||||
_nextobject setVectorUp [0, 0, 1];
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject setpos _nextpos;
|
||||
|
||||
_base_objects pushBack _nextobject;
|
||||
} forEach _objects_to_build;
|
||||
|
||||
sleep 1;
|
||||
|
||||
{
|
||||
_nextclass = _x select 0;
|
||||
_nextpos = _x select 1;
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)),((_base_position select 1) + (_nextpos select 1)),0.5];
|
||||
_nextdir = _x select 2;
|
||||
_x params [
|
||||
"_nextclass",
|
||||
"_nextpos",
|
||||
"_nextdir"
|
||||
];
|
||||
|
||||
_nextobject = _nextclass createVehicle [(_nextpos select 0) + (random 500),(_nextpos select 1) + (random 500),0.5];
|
||||
_nextobject setVectorUp [0,0,1];
|
||||
_nextobject setpos _nextpos;
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject setVectorUp [0,0,1];
|
||||
_nextobject setpos _nextpos;
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject lock 2;
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), 0.5];
|
||||
|
||||
_base_objectives = _base_objectives + [_nextobject];
|
||||
} foreach _objectives_to_build;
|
||||
_nextobject = _nextclass createVehicle [(_nextpos select 0) + (random 500), (_nextpos select 1) + (random 500), 0.5];
|
||||
_nextobject setVectorUp [0, 0, 1];
|
||||
_nextobject setpos _nextpos;
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject setVectorUp [0, 0, 1];
|
||||
_nextobject setpos _nextpos;
|
||||
_nextobject setdir _nextdir;
|
||||
_nextobject lock 2;
|
||||
|
||||
_base_objectives pushBack _nextobject;
|
||||
} forEach _objectives_to_build;
|
||||
|
||||
sleep 1;
|
||||
|
||||
{ _x setDamage 0; } foreach (_base_objectives + _base_objects);
|
||||
{_x setDamage 0;} foreach (_base_objectives + _base_objects);
|
||||
|
||||
_grpdefenders = createGroup [GRLIB_side_enemy, true];
|
||||
_idxselected = [];
|
||||
while { count _idxselected < _defenders_amount } do {
|
||||
_idx = floor (random (count _defenders_to_build));
|
||||
if ( !(_idx in _idxselected) ) then {
|
||||
_idxselected pushback _idx;
|
||||
};
|
||||
|
||||
while {count _idxselected < _defenders_amount} do {
|
||||
_idx = floor (random (count _defenders_to_build));
|
||||
if (!(_idx in _idxselected)) then {
|
||||
_idxselected pushBack _idx;
|
||||
};
|
||||
};
|
||||
|
||||
{
|
||||
_nextentry = _defenders_to_build select _x;
|
||||
_nextclass = _nextentry select 0;
|
||||
_nextpos = _nextentry select 1;
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)),((_base_position select 1) + (_nextpos select 1)),(_nextpos select 2)];
|
||||
_nextdir = _nextentry select 2;
|
||||
_nextclass createUnit [_nextpos, _grpdefenders,"nextdefender = this; this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
nextdefender setpos _nextpos;
|
||||
nextdefender setdir _nextdir;
|
||||
[nextdefender] spawn building_defence_ai;
|
||||
} foreach _idxselected;
|
||||
(_defenders_to_build select _x) params [
|
||||
"_nextclass",
|
||||
"_nextpos",
|
||||
"_nextdir"
|
||||
];
|
||||
|
||||
_sentry = ceil ((3 + (floor (random 4))) * ( sqrt ( GRLIB_unitcap ) ) );
|
||||
_nextpos = [((_base_position select 0) + (_nextpos select 0)), ((_base_position select 1) + (_nextpos select 1)), (_nextpos select 2)];
|
||||
_nextclass createUnit [_nextpos, _grpdefenders, "nextdefender = this; this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
nextdefender setdir _nextdir;
|
||||
nextdefender setpos _nextpos;
|
||||
[nextdefender] spawn building_defence_ai;
|
||||
} forEach _idxselected;
|
||||
|
||||
private _sentryMax = ceil ((3 + (floor (random 4))) * (sqrt (GRLIB_unitcap)));
|
||||
|
||||
_grpsentry = createGroup [GRLIB_side_enemy, true];
|
||||
_base_sentry_pos = [(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1),0];
|
||||
for [ {_idx=0},{_idx < _sentry},{_idx=_idx+1} ] do {
|
||||
opfor_sentry createUnit [_base_sentry_pos, _grpsentry,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
for [{_idx=0}, {_idx < _sentryMax}, {_idx=_idx+1}] do {
|
||||
opfor_sentry createUnit [_base_sentry_pos, _grpsentry,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"];
|
||||
};
|
||||
|
||||
while {(count (waypoints _grpsentry)) != 0} do {deleteWaypoint ((waypoints _grpsentry) select 0);};
|
||||
private _waypoint = [];
|
||||
{
|
||||
_waypoint = _grpsentry addWaypoint [[((_base_position select 0) + (_x select 0)), ((_base_position select 1) + (_x select 1)),0], 0];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointSpeed "LIMITED";
|
||||
_waypoint setWaypointBehaviour "SAFE";
|
||||
_waypoint setWaypointCompletionRadius 5;
|
||||
} foreach _base_corners;
|
||||
_waypoint = _grpsentry addWaypoint [[((_base_position select 0) + (_x select 0)), ((_base_position select 1) + (_x select 1)),0], 0];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointSpeed "LIMITED";
|
||||
_waypoint setWaypointBehaviour "SAFE";
|
||||
_waypoint setWaypointCompletionRadius 5;
|
||||
} forEach _base_corners;
|
||||
|
||||
_waypoint = _grpsentry addWaypoint [[(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1),0], 0];
|
||||
_waypoint = _grpsentry addWaypoint [[(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1), 0], 0];
|
||||
_waypoint setWaypointType "CYCLE";
|
||||
|
||||
_objectives_alive = true;
|
||||
|
||||
secondary_objective_position = _base_position;
|
||||
secondary_objective_position_marker = [(((secondary_objective_position select 0) + 800) - random 1600),(((secondary_objective_position select 1) + 800) - random 1600),0];
|
||||
secondary_objective_position_marker = [(((secondary_objective_position select 0) + 800) - random 1600), (((secondary_objective_position select 1) + 800) - random 1600), 0];
|
||||
publicVariable "secondary_objective_position_marker";
|
||||
sleep 1;
|
||||
|
||||
GRLIB_secondary_in_progress = 0; publicVariable "GRLIB_secondary_in_progress";
|
||||
[2] remoteExec ["remote_call_intel"];
|
||||
|
||||
waitUntil {
|
||||
sleep 5;
|
||||
( { alive _x } count _base_objectives ) <= 1
|
||||
sleep 5;
|
||||
(_base_objectives select {alive _x}) isEqualTo []
|
||||
};
|
||||
|
||||
combat_readiness = round (combat_readiness * GRLIB_secondary_objective_impact);
|
||||
|
|
|
@ -16,4 +16,7 @@ _all_buildings_to_destroy = [];
|
|||
{
|
||||
_x setdamage 1;
|
||||
sleep (random 3);
|
||||
} foreach _all_buildings_to_destroy
|
||||
} foreach _all_buildings_to_destroy;
|
||||
|
||||
KP_liberation_clearances deleteAt (KP_liberation_clearances findIf {(_x select 0) isEqualTo _fobposdestroy});
|
||||
publicVariable "KP_liberation_clearances";
|
||||
|
|
|
@ -162,6 +162,8 @@ if ((!(_sector in blufor_sectors)) && (([getmarkerpos _sector, [_opforcount] cal
|
|||
_building_ai_max = 0;
|
||||
};
|
||||
|
||||
_vehtospawn = _vehtospawn select {_x isEqualType ""};
|
||||
|
||||
if (KP_liberation_sectorspawn_debug > 0) then {private _text = format ["[KP LIBERATION] [SECTORSPAWN] Sector %1 (%2) - manage_one_sector calculated -> _infsquad: %3 - _squad1: %4 - _squad2: %5 - _squad3: %6 - _squad4: %7 - _vehtospawn: %8 - _building_ai_max: %9", (markerText _sector), _sector, _infsquad, (count _squad1), (count _squad2), (count _squad3), (count _squad4), (count _vehtospawn), _building_ai_max];_text remoteExec ["diag_log",2];};
|
||||
|
||||
if (_building_ai_max > 0 && GRLIB_adaptive_opfor) then {
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
if (!isServer) exitWith {false};
|
||||
|
||||
params [
|
||||
["_centerPos", [0, 0, 0], [[]], [3]],
|
||||
["_radius", 0, [0]],
|
||||
["_save", false, [false]]
|
||||
];
|
||||
|
||||
if (save_is_loaded && {(KP_liberation_clearances findIf {(_x select 0) isEqualTo _centerPos}) != -1}) exitWith {false};
|
||||
|
||||
private _objects = nearestTerrainObjects [_centerPos, [], _radius, false, true];
|
||||
|
||||
{
|
||||
_x hideObjectGlobal true;
|
||||
_x enableSimulationGlobal false;
|
||||
_x allowDamage false;
|
||||
} forEach _objects;
|
||||
|
||||
if (_save) then {
|
||||
KP_liberation_clearances pushBackUnique [_centerPos, _radius];
|
||||
publicVariable "KP_liberation_clearances";
|
||||
};
|
||||
|
||||
true
|
|
@ -67,3 +67,4 @@ F_setLoadableViV = compileFinal preprocessFileLineNumbers "scripts\shared\functi
|
|||
F_getNearestViVTransport = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_getNearestViVTransport.sqf";
|
||||
F_addObjectInit = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_addObjectInit.sqf";
|
||||
F_isRadio = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_isRadio.sqf";
|
||||
F_createClearance = compileFinal preprocessFileLineNumbers "scripts\shared\functions\F_kp_createClearance.sqf";
|
||||
|
|
|
@ -2288,18 +2288,6 @@
|
|||
<Turkish>Bu FOB'yi yeniden paketlemek istediğinize emin misiniz?</Turkish>
|
||||
<Portuguese>Você tem certeza que quer mobilizar esta FOB?</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_FOB_REPACKAGE_HINT">
|
||||
<Original>FOB repackaged.</Original>
|
||||
<French>FOB repliée.</French>
|
||||
<German>FOB eingepackt.</German>
|
||||
<Spanish>FOB reempaquetada</Spanish>
|
||||
<Russian>FOB свёрнута</Russian>
|
||||
<Italian>FOB smontata.</Italian>
|
||||
<Chinesesimp>前哨已收起。</Chinesesimp>
|
||||
<Chinese>前線基地已收起。</Chinese>
|
||||
<Turkish>FOB yeniden paketlendi.</Turkish>
|
||||
<Portuguese>FOB mobilizada.</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_HALO_PARAM">
|
||||
<Original>HALO jump</Original>
|
||||
<French>Saut HALO</French>
|
||||
|
@ -6154,5 +6142,13 @@
|
|||
<Turkish>(ESC'ye basıp çıkabilirsiniz.)</Turkish>
|
||||
<Portuguese>(Aperte ESC para sair)</Portuguese>
|
||||
</Key>
|
||||
<Key ID="STR_CLEARANCE_ACTION">
|
||||
<Original>-- Clear FOB area</Original>
|
||||
<German>-- FOB Gebiet räumen</German>
|
||||
</Key>
|
||||
<Key ID="STR_FOB_REPACKAGE_HINT">
|
||||
<Original>FOB repackaged.\nPossibly created clearance will be reverted upon server restart.</Original>
|
||||
<German>FOB eingepackt.\nEventuelle Gebietsräumung wird zum Serverneustart rückgängig gemacht.</German>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
|
22
README.md
22
README.md
|
@ -162,10 +162,13 @@ class Missions
|
|||
## Changelog
|
||||
|
||||
### 0.96.5 (TBD due to Contacts Release)
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) blufor presets.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) opfor presets.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) resistance presets.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) civilian presets.
|
||||
* Added: Contact DLC LDF preset.
|
||||
* Added: Contact DLC transport configs.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) blufor preset.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) opfor preset.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) resistance preset. Thanks to [Bunnyhopps](https://github.com/Bunnyhopps147)
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) civilian preset.
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) arsenal preset. Thanks to [Bunnyhopps](https://github.com/Bunnyhopps147)
|
||||
* Added: [The Unsung Vietnam War Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=943001311) transport configs.
|
||||
* Added: [Swedish Forces Pack](https://steamcommunity.com/sharedfiles/filedetails/?id=826911897) arsenal preset. Thanks to [Dahlgren](https://github.com/Dahlgren)
|
||||
* Added: [Swedish Forces Pack](https://steamcommunity.com/sharedfiles/filedetails/?id=826911897) Desert blufor preset. Thanks to [Dahlgren](https://github.com/Dahlgren)
|
||||
|
@ -175,13 +178,21 @@ class Missions
|
|||
* Added: Several CUP resistance presets. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: Several CUP civilian presets. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: Several CUP transport configs. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: Statistic values for destroyed civilian buildings and vehicles
|
||||
* Added: Statistic values for destroyed civilian buildings and vehicles.
|
||||
* Added: Statistic values for total and friendly resistance kills.
|
||||
* Added: Statistic values for spent/produced resources.
|
||||
* Added: Statistics will be posted additionally in the server log after winning the campaign.
|
||||
* Added: Encore Anti Air static to sensible presets.
|
||||
* Added: Additional victory conditions, selectable in the mission parameters.
|
||||
* Added: BI garbage collection via description.ext file.
|
||||
* Added: Transport configs for the civil transporters (which came with Laws of War).
|
||||
* Added: Livonia basefile.
|
||||
* Added: Livonia building ignore list.
|
||||
* Added: [Panthera](https://steamcommunity.com/sharedfiles/filedetails/?id=708278910) basefile. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: [Panthera](https://steamcommunity.com/sharedfiles/filedetails/?id=708278910) building ignore list. Thanks to [Eogos](https://github.com/Eogos)
|
||||
* Added: Song Bin Tanh basefile.
|
||||
* Added: Song Bin Tanh building ignore list.
|
||||
* Added: "Create Clearance" Action at FOB for Commander or logged in Admin. Clears all terrain objects (no built objects) in FOB radius.
|
||||
* Removed: Vanilla player score saving.
|
||||
* Removed: Old garbage collection script, as there are now engine solutions available.
|
||||
* Tweaked: Changed default recycle building from carservice building to tanks repair depot building.
|
||||
|
@ -195,6 +206,7 @@ class Missions
|
|||
* Tweaked: Player lead squads are now also saved near FOBs. (but still needs to be reassigned via zeus after load, of course)
|
||||
* Tweaked: Weather is now only handled by the server.
|
||||
* Tweaked: Gear check after leaving the arsenal or load a loadout improved to not strip you completely. Thanks to [Zharf](https://github.com/zharf)
|
||||
* Tweaked: Build tool now also adds the correct map name to the mission name, like in the release files.
|
||||
* Fixed: Intel value could get corrupted if leaving the secondary dialog directly after starting a mission.
|
||||
* Fixed: "All is red" for first player after a server restart. (just a visual bug, doesn't affect gameplay)
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
"sourceFolder": "kp_liberation.Chernarus_Winter",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "Chernarus_Winter",
|
||||
"mapDisplay": "Chernarus Winter",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 6,
|
||||
|
@ -38,10 +39,25 @@
|
|||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Enoch",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "Enoch",
|
||||
"mapDisplay": "Livonia",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 27,
|
||||
"KP_liberation_preset_opfor": 1,
|
||||
"KP_liberation_preset_resistance": 0,
|
||||
"KP_liberation_preset_civilians": 0,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.gm_weferlingen_summer",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "gm_weferlingen_summer",
|
||||
"mapDisplay": "Weferlingen Summer",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 9,
|
||||
|
@ -55,6 +71,7 @@
|
|||
"sourceFolder": "kp_liberation.gm_weferlingen_winter",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "gm_weferlingen_winter",
|
||||
"mapDisplay": "Weferlingen Winter",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 10,
|
||||
|
@ -68,6 +85,7 @@
|
|||
"sourceFolder": "kp_liberation.lythium",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "lythium",
|
||||
"mapDisplay": "Lythium",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 7,
|
||||
|
@ -90,10 +108,25 @@
|
|||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.panthera3",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "panthera3",
|
||||
"mapDisplay": "Panthera",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 17,
|
||||
"KP_liberation_preset_opfor": 17,
|
||||
"KP_liberation_preset_resistance": 8,
|
||||
"KP_liberation_preset_civilians": 7,
|
||||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.pja310",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "pja310",
|
||||
"mapDisplay": "Al Rayak",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 6,
|
||||
|
@ -107,6 +140,7 @@
|
|||
"sourceFolder": "kp_liberation.Sara",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "Sara",
|
||||
"mapDisplay": "Sahrani",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 6,
|
||||
|
@ -116,6 +150,19 @@
|
|||
"KP_liberation_arsenal": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.song_bin_tanh",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "song_bin_tanh",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 15,
|
||||
"KP_liberation_preset_opfor": 12,
|
||||
"KP_liberation_preset_resistance": 6,
|
||||
"KP_liberation_preset_civilians": 5,
|
||||
"KP_liberation_arsenal": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"sourceFolder": "kp_liberation.Takistan",
|
||||
"missionName": "kp_liberation",
|
||||
|
@ -146,6 +193,7 @@
|
|||
"sourceFolder": "kp_liberation.xcam_taunus",
|
||||
"missionName": "kp_liberation",
|
||||
"map": "xcam_taunus",
|
||||
"mapDisplay": "Taunus",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 4,
|
||||
|
@ -159,6 +207,7 @@
|
|||
"sourceFolder": "kp_liberation.gm_weferlingen_summer",
|
||||
"missionName": "kp_liberation_east",
|
||||
"map": "gm_weferlingen_summer",
|
||||
"mapDisplay": "Weferlingen Summer",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 11,
|
||||
|
@ -172,6 +221,7 @@
|
|||
"sourceFolder": "kp_liberation.gm_weferlingen_winter",
|
||||
"missionName": "kp_liberation_east",
|
||||
"map": "gm_weferlingen_winter",
|
||||
"mapDisplay": "Weferlingen Winter",
|
||||
"configFile": "kp_liberation_config.sqf",
|
||||
"variables": {
|
||||
"KP_liberation_preset_blufor": 12,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import * as gulp from "gulp";
|
||||
import * as gulpReplace from "gulp-replace";
|
||||
import * as gulpPbo from "gulp-armapbo";
|
||||
import * as gulpModify from "gulp-modify-file";
|
||||
import * as gulpZip from "gulp-zip";
|
||||
import * as vinylPaths from "vinyl-paths";
|
||||
import * as del from "del";
|
||||
|
@ -13,7 +14,7 @@ import { Preset, FolderStructureInfo } from "./src";
|
|||
|
||||
const presets: Preset[] = require('./_presets.json');
|
||||
|
||||
/**
|
||||
/**
|
||||
* Mission folders configuration
|
||||
*/
|
||||
const paths: FolderStructureInfo = {
|
||||
|
@ -39,32 +40,49 @@ for (let preset of presets) {
|
|||
|
||||
gulp.task('mission_' + taskName, gulp.series(
|
||||
/** Copy mission framework to output dir */
|
||||
() => {
|
||||
function frameworkCopy () {
|
||||
return gulp.src(mission.getFrameworkPath().concat('/**/*'))
|
||||
.pipe(gulp.dest(mission.getOutputDir()));
|
||||
},
|
||||
|
||||
|
||||
/** Copy mission.sqm to output dir */
|
||||
() => {
|
||||
function missionSqmCopy () {
|
||||
return gulp.src(mission.getMissionSqmPath())
|
||||
.pipe(gulp.dest(mission.getOutputDir()));
|
||||
},
|
||||
|
||||
/** Replace variables values in configuration file */
|
||||
() => {
|
||||
function configReplace () {
|
||||
let src = gulp.src(mission.getMissionConfigFilePath());
|
||||
|
||||
|
||||
const variables = Object.getOwnPropertyNames(preset.variables);
|
||||
for (let variable of variables) {
|
||||
// https://regex101.com/r/YknC8r/1
|
||||
const regex = new RegExp(`(${variable} += +)(?:\\d+|".+")`, 'ig');
|
||||
const value = JSON.stringify(preset.variables[variable]);
|
||||
|
||||
|
||||
// replace variable value
|
||||
src = src.pipe(gulpReplace(regex, `$1${value}`));
|
||||
}
|
||||
|
||||
|
||||
return src.pipe(gulp.dest(mission.getOutputDir()));
|
||||
},
|
||||
|
||||
/** Replace values in stringtable */
|
||||
function stringTableReplace () {
|
||||
// I know, replacing XML with regex... :|
|
||||
// https://regex101.com/r/TSfish/2
|
||||
const versionRegex = /<Key ID="STR_MISSION_VERSION">\s*<Original>(?<version>.+)<\/Original>/;
|
||||
const nameRegex = /(<Key ID="STR_MISSION_TITLE">\s*<Original>)(?<name>.+)(<\/Original>)/;
|
||||
|
||||
return gulp.src(mission.getFrameworkPath().concat('/stringtable.xml'))
|
||||
.pipe(gulpModify((content: string) => {
|
||||
const version: string = content.match(versionRegex)['groups']['version'];
|
||||
|
||||
return content.replace(nameRegex, `$1CTI 34 KP Liberation ${preset.mapDisplay || preset.map} ${version}$3`);
|
||||
}))
|
||||
.pipe(gulp.dest(mission.getOutputDir(), { overwrite: true, }))
|
||||
;
|
||||
}
|
||||
));
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,19 +4,20 @@
|
|||
"node": ">=7"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/del": "^3.0.0",
|
||||
"@types/gulp": "^4.0.5",
|
||||
"@types/del": "^3.0.1",
|
||||
"@types/gulp": "^4.0.6",
|
||||
"@types/gulp-replace": "0.0.31",
|
||||
"@types/gulp-zip": "^4.0.0",
|
||||
"@types/vinyl-paths": "0.0.31",
|
||||
"del": "^3.0.0",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-armapbo": "^1.1.3",
|
||||
"gulp-modify-file": "^1.0.1",
|
||||
"gulp-replace": "^0.6.1",
|
||||
"gulp-zip": "^4.1.0",
|
||||
"gulp-zip": "^4.2.0",
|
||||
"smart-zip": "0.0.9",
|
||||
"ts-node": "^4.1.0",
|
||||
"typescript": "^2.7.1",
|
||||
"typescript": "^2.9.2",
|
||||
"vinyl-paths": "^2.1.0"
|
||||
},
|
||||
"scripts": {
|
||||
|
|
|
@ -1,29 +1,34 @@
|
|||
export interface Preset {
|
||||
/**
|
||||
/**
|
||||
* Path to folder with mission.sqm relative to "missionsFolder".
|
||||
* If mission.sqm is in root of "missionsFolder" should be empty string.
|
||||
*
|
||||
*
|
||||
* @see FolderStructureInfo.missionsFolder
|
||||
*/
|
||||
readonly sourceFolder: string;
|
||||
|
||||
/**
|
||||
* Path to file with mission configuration.
|
||||
/**
|
||||
* Path to file with mission configuration.
|
||||
* Replacement of variables will be applied here.
|
||||
*/
|
||||
readonly configFile: string;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Name of mission (part before mapname)
|
||||
*/
|
||||
readonly missionName: string;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Map name
|
||||
*/
|
||||
readonly map: string;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Display name for map
|
||||
*/
|
||||
readonly mapDisplay: string | undefined;
|
||||
|
||||
/**
|
||||
* key=>val of values to replace in config file
|
||||
* @see {VariablesReplacements}
|
||||
*/
|
||||
|
@ -36,21 +41,21 @@ export interface VariablesReplacements {
|
|||
}
|
||||
|
||||
export interface FolderStructureInfo {
|
||||
/**
|
||||
/**
|
||||
* Folder of folders with mission.sqm.
|
||||
* Value of "sourceFolder" from Preset will be appended to this path.
|
||||
*
|
||||
*
|
||||
* @see {Preset}
|
||||
*/
|
||||
readonly missionsFolder: string;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Path to folder with mission framework files.
|
||||
*/
|
||||
readonly frameworkFolder: string;
|
||||
|
||||
/**
|
||||
* Directory containing built missions
|
||||
|
||||
/**
|
||||
* Directory containing built missions
|
||||
*/
|
||||
readonly workDir: string;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue