3 Commits

Author SHA1 Message Date
67336be62a Faction switcher part 1 WIP 2025-07-12 13:43:17 +03:00
0611e97ff9 Militia squad changes, T-80 fixes, new Yugo ak, new arty additions 2025-06-29 20:00:35 +03:00
f34594ee7b "A fucking comma" - Redcode 2025-06-28 19:31:20 +03:00
4 changed files with 106 additions and 41 deletions

View File

@@ -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",
@@ -907,7 +911,7 @@ GRLIB_arsenal_items = [
"ACE_bloodIV", // Blood IV (1000 ml) "ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag "ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie "ACE_CableTie", // Cable Tie
"ACE_Chemlight_Shield" // Chemlight Shield "ACE_Chemlight_Shield", // Chemlight Shield
"ACE_DeadManSwitch", // Dead Man's Switch "ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit "ACE_DefusalKit", // Defusal Kit
"ACE_EarPlugs", // Earplugs "ACE_EarPlugs", // Earplugs

View File

@@ -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 = [

View File

@@ -7,26 +7,26 @@
*/ */
// Enemy infantry - 80s // Enemy infantry - 80s
opfor_officer = "gm_ge_army_officer_p1_80_oli"; // Officer opfor_officer = "gm_ge_army_officer_p1_80_oli"; // Officer
opfor_squad_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Squad Leader opfor_squad_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Squad Leader
opfor_team_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Team Leader opfor_team_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Team Leader
opfor_sentry = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman (Lite) opfor_sentry = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman (Lite)
opfor_rifleman = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman opfor_rifleman = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman
opfor_grenadier = "gm_ge_army_grenadier_g3a3_80_ols"; // Grenadier opfor_grenadier = "gm_ge_army_grenadier_g3a3_80_ols"; // Grenadier
opfor_grenadier_heavy = "gm_ge_army_grenadier_hk69a1_80_ols"; // Heavy Grenadier opfor_grenadier_heavy = "gm_ge_army_grenadier_hk69a1_80_ols"; // Heavy Grenadier
opfor_machinegunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Autorifleman opfor_machinegunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Autorifleman
opfor_heavygunner = "gm_ge_army_machinegunner_assistant_g3a3_mg3_80_ols"; // Heavy Gunner opfor_heavygunner = "gm_ge_army_machinegunner_assistant_g3a3_mg3_80_ols"; // Heavy Gunner
opfor_marksman = "gm_ge_army_marksman_g3a3_80_ols"; // Marksman opfor_marksman = "gm_ge_army_marksman_g3a3_80_ols"; // Marksman
opfor_sharpshooter = "gm_ge_army_marksman_g3a3_80_ols"; // Sharpshooter opfor_sharpshooter = "gm_ge_army_marksman_g3a3_80_ols"; // Sharpshooter
opfor_sniper = "gm_ge_army_marksman_g3a3_80_ols"; // Sniper opfor_sniper = "gm_ge_army_marksman_g3a3_80_ols"; // Sniper
opfor_rpg = "gm_ge_army_antitank_g3a3_pzf44_80_ols"; // Rifleman (LAT) opfor_rpg = "gm_ge_army_antitank_g3a3_pzf44_80_ols"; // Rifleman (LAT)
opfor_rpg_assistant = "gm_ge_army_antitank_assistant_g3a3_pzf44_80_ols"; // Rifleman (LAT Assistant) opfor_rpg_assistant = "gm_ge_army_antitank_assistant_g3a3_pzf44_80_ols"; // Rifleman (LAT Assistant)
opfor_at = "gm_ge_army_antitank_g3a3_pzf84_80_ols"; // Rifleman (HAT) opfor_at = "gm_ge_army_antitank_g3a3_pzf84_80_ols"; // Rifleman (HAT)
opfor_at_assistant = "gm_ge_army_antitank_assistant_g3a3_pzf84_80_ols"; // Rifleman (HAT Assistant) opfor_at_assistant = "gm_ge_army_antitank_assistant_g3a3_pzf84_80_ols"; // Rifleman (HAT Assistant)
opfor_aa = "gm_ge_army_antiair_g3a3_fim43_80_ols"; // AA Specialist opfor_aa = "gm_ge_army_antiair_g3a3_fim43_80_ols"; // AA Specialist
opfor_medic = "gm_ge_army_medic_g3a3_80_ols"; // Combat Life Saver opfor_medic = "gm_ge_army_medic_g3a3_80_ols"; // Combat Life Saver
opfor_engineer = "gm_ge_army_engineer_g3a4_80_ols"; // Engineer opfor_engineer = "gm_ge_army_engineer_g3a4_80_ols"; // Engineer
opfor_paratrooper = "gm_ge_army_paratrooper_g3a4_80_ols"; // Paratrooper opfor_paratrooper = "gm_ge_army_paratrooper_g3a4_80_ols"; // Paratrooper
// Enemy infantry - 90s // Enemy infantry - 90s
opfor_officer_late = "gm_ge_army_officer_p1_90_flk"; // Officer opfor_officer_late = "gm_ge_army_officer_p1_90_flk"; // Officer
@@ -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.

View File

@@ -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;
};
};