Author SHA1 Message Date
InHooman 67336be62a Faction switcher part 1 WIP 2025-07-12 13:43:17 +03:00
InHooman 0611e97ff9 Militia squad changes, T-80 fixes, new Yugo ak, new arty additions 2025-06-29 20:00:35 +03:00
4 changed files with 105 additions and 40 deletions
@@ -14,6 +14,7 @@ GRLIB_arsenal_weapons = [
"rhs_weap_m76", "rhs_weap_m76",
"rhs_weap_savz58p", "rhs_weap_savz58p",
"rhs_weap_savz58v", "rhs_weap_savz58v",
"rhs_weap_m92",
"rhs_weap_savz61", "rhs_weap_savz61",
"rhs_weap_savz61_folded", "rhs_weap_savz61_folded",
"gm_akm_wud", "gm_akm_wud",
@@ -136,6 +137,7 @@ GRLIB_arsenal_weapons = [
"rhs_weap_rsp30_green", "rhs_weap_rsp30_green",
"rhs_weap_rsp30_red", "rhs_weap_rsp30_red",
"rhs_weap_tr8", "rhs_weap_tr8",
"rhs_weap_Izh18",
//Turrets //Turrets
"ace_compat_rhs_afrf3_2b14_carry", "ace_compat_rhs_afrf3_2b14_carry",
@@ -302,8 +304,8 @@ GRLIB_arsenal_magazines = [
"rhsgref_10Rnd_792x57_m67", "rhsgref_10Rnd_792x57_m67",
"rhs_30Rnd_762x39mm_Savz58", "rhs_30Rnd_762x39mm_Savz58",
"rhs_30Rnd_762x39mm_Savz58_tracer", "rhs_30Rnd_762x39mm_Savz58_tracer",
"rhs_10Rnd_765x17mm_vz61", "rhsgref_10rnd_765x17_vz61",
"rhs_20Rnd_765x17mm_vz61", "rhsgref_20rnd_765x17_vz61",
"UK3CB_RPD_100rnd_762x39_G", "UK3CB_RPD_100rnd_762x39_G",
"UK3CB_RPD_100rnd_762x39_R", "UK3CB_RPD_100rnd_762x39_R",
"UK3CB_RPD_100rnd_762x39_W", "UK3CB_RPD_100rnd_762x39_W",
@@ -390,6 +392,8 @@ GRLIB_arsenal_magazines = [
"gm_8Rnd_9x18mm_B_pst_pm_blk", "gm_8Rnd_9x18mm_B_pst_pm_blk",
"rhs_mag_762x25_8", "rhs_mag_762x25_8",
"rhs_mag_9k38_rocket", "rhs_mag_9k38_rocket",
"rhsgref_1Rnd_00Buck",
"rhsgref_1Rnd_Slug",
//Underbarrel Grenades //Underbarrel Grenades
"rhs_GDM40", "rhs_GDM40",
@@ -123,10 +123,10 @@ heavy_vehicles = [
["rhs_t72ba_tv",525,575,350], // T-72A (1984) ["rhs_t72ba_tv",525,575,350], // T-72A (1984)
["rhs_t72bb_tv",550,575,350], // T-72B (1985) ["rhs_t72bb_tv",550,575,350], // T-72B (1985)
["rhs_t72bc_tv",575,575,350], // T-72B (1989) ["rhs_t72bc_tv",575,575,350], // T-72B (1989)
["mkk_t80b_r",600,600,400], // T-80B ["rhs_t80b",600,600,400], // T-80B
["mkk_t80bv_r",625,600,400], // T-80BV ["rhs_t80bvk",625,600,400], // T-80BVK
["mkk_t80_u_r",650,600,400], // T-80U ["rhs_t80u",650,600,400], // T-80U
["mkk_t80_ue1_r",675,600,400], // T-80UE-1 ["rhs_t80uk",675,600,400], // T-80UK
["UK3CB_CW_SOV_O_LATE_Gaz66_ZU23",150,200,75], // GAZ-66 ["UK3CB_CW_SOV_O_LATE_Gaz66_ZU23",150,200,75], // GAZ-66
["UK3CB_CW_SOV_O_LATE_Ural_Zu23",150,200,100], // ZU-23 URAL ["UK3CB_CW_SOV_O_LATE_Ural_Zu23",150,200,100], // ZU-23 URAL
["UK3CB_CW_SOV_O_LATE_MTLB_ZU23",225,200,100], // MT-LB ZU-23 ["UK3CB_CW_SOV_O_LATE_MTLB_ZU23",225,200,100], // MT-LB ZU-23
@@ -170,13 +170,17 @@ air_vehicles = [
]; ];
static_vehicles = [ static_vehicles = [
["gm_gc_army_dshkm_aatripod",50,50,0], // DSHkM HMG
["gm_gc_army_fagot_launcher_tripod",50,100,0], // 9K111 Fagot ATGM
["rhs_SPG9M_MSV",50,75,0], // SPG-9 Recoilles rifle
["tbd_mt12",100,150,0], // MT-12 Anti-tank gun
["gm_gc_army_2b11",50,75,0], // 2B11 Mortar ["gm_gc_army_2b11",50,75,0], // 2B11 Mortar
["gm_gc_army_fagot_launcher_tripod",50,100,0], // Static FAGOT ["tbd_2b9_vasilek",125,150,0], // 2B9 Vasilek automatic mortar (Towable)
["gm_gc_army_dshkm_aatripod",50,50,0], // DSHkM ["tbd_d20_vanilla",100,200,0], // D-20 Howitzer (Towable)
["rhs_SPG9M_MSV",50,75,0], // SPG-9 ["rhs_D30_msv",100,250,0], // D-30 Howitzer (Towable)
["rhs_Igla_AA_pod_msv",50,150,0], // Static Igla ["rhs_Igla_AA_pod_msv",50,150,0], // Static Igla
["RHS_ZU23_MSV",100,150,0], // Static ZU-23 (Towable) ["RHS_ZU23_MSV",100,150,0] // ZU-23 (Towable)
["rhs_D30_msv",100,250,0] // Static D-30 (Towable) ["tbd_d20",100,200,25], // D-20 Howitzer (Towable, Advanced verison)
]; ];
buildings = [ buildings = [
@@ -65,15 +65,15 @@ Therefore, adding the same value twice or three times means they are more likely
/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders.
Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */
militia_squad = [ militia_squad = [
"gm_ge_army_rifleman_g36a1_90_flk", // Rifleman (Lite) "gm_ge_bgs_sf_squadleader_sig551_90_blk", // Squad Leader
"gm_ge_army_rifleman_g36a1_90_flk", // Rifleman (Lite) "gm_ge_bgs_sf_specialist_hk512_80_blk", // Specialist (HK 512)
"gm_ge_army_rifleman_g36a1_90_flk", // Rifleman "gm_ge_bgs_sf_rifleman_mp5a2_80_blk", // Rifleman
"gm_ge_army_rifleman_g36a1_90_flk", // Rifleman "gm_ge_bgs_sf_rifleman_mp5a2_90_blk", // Rifleman
"gm_ge_army_antitank_g36a1_pzf3_90_flk", // Rifleman (AT) "gm_ge_army_antitank_g36a1_pzf3_90_blk", // Rifleman (AT)
"gm_ge_army_machinegunner_mg3_90_flk", // Autorifleman "gm_ge_bgs_sf_machinegunner_g8_90_blk", // Autorifleman
"gm_ge_army_marksman_g3a3_90_flk", // Marksman "gm_ge_bgs_sf_marksman_psg1_90_blk", // Marksman
"gm_ge_army_medic_g36a1_90_flk", // Medic "gm_ge_army_medic_g36a1_90_blk", // Medic
"gm_ge_army_engineer_g36a1_90_flk" // Engineer "gm_ge_bgs_sf_grenadier_hk69a1_80_blk" // Grenadier
]; ];
// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita.
@@ -0,0 +1,57 @@
// Script to switch defender factions.
// Switches randomly between the factions from presets/opfor/gm_west.sqf
// Needs to be called every time a unit is spawned.
private _factionRoll = floor (random 100);
switch (true) do {
// Germany Late (15%)
case (_factionRoll < 15): {
KPLIB_o_squadStd = KPLIB_o_squadStd_DE_90;
KPLIB_o_squadInf = KPLIB_o_squadInf_DE_90;
KPLIB_o_squadTank = KPLIB_o_squadTank_DE_90;
KPLIB_o_squadAir = KPLIB_o_squadAir_DE_90;
};
// Germany Early (30%)
case (_factionRoll < 45): {
KPLIB_o_squadStd = KPLIB_o_squadStd_DE_80;
KPLIB_o_squadInf = KPLIB_o_squadInf_DE_80;
KPLIB_o_squadTank = KPLIB_o_squadTank_DE_80;
KPLIB_o_squadAir = KPLIB_o_squadAir_DE_80;
};
// Germany Boderguards (5%)
case (_factionRoll < 50): {
KPLIB_o_squadStd = KPLIB_o_squadStd_DEBG;
KPLIB_o_squadInf = KPLIB_o_squadInf_DEBG;
KPLIB_o_squadTank = KPLIB_o_squadTank_DEBG;
KPLIB_o_squadAir = KPLIB_o_squadAir_DEBG;
};
// Denmark (10%)
case (_factionRoll < 60): {
KPLIB_o_squadStd = KPLIB_o_squadStd_DK;
KPLIB_o_squadInf = KPLIB_o_squadInf_DK;
KPLIB_o_squadTank = KPLIB_o_squadTank_DK;
KPLIB_o_squadAir = KPLIB_o_squadAir_DK;
};
// US Army Late (20%)
case (_factionRoll < 80): {
KPLIB_o_squadStd = KPLIB_o_squadStd_USA_L;
KPLIB_o_squadInf = KPLIB_o_squadInf_USA_L;
KPLIB_o_squadTank = KPLIB_o_squadTank_USA_L;
KPLIB_o_squadAir = KPLIB_o_squadAir_USA_L;
};
// US Army Early (15%)
case (_factionRoll < 90): {
KPLIB_o_squadStd = KPLIB_o_squadStd_USA_E;
KPLIB_o_squadInf = KPLIB_o_squadInf_USA_E;
KPLIB_o_squadTank = KPLIB_o_squadTank_USA_E;
KPLIB_o_squadAir = KPLIB_o_squadAir_USA_E;
};
// USMC (10%)
case (_factionRoll < 100): {
KPLIB_o_squadStd = KPLIB_o_squadStd_USMC;
KPLIB_o_squadInf = KPLIB_o_squadInf_USMC;
KPLIB_o_squadTank = KPLIB_o_squadTank_USMC;
KPLIB_o_squadAir = KPLIB_o_squadAir_USMC;
};
};