1 Commits

Author SHA1 Message Date
67336be62a Faction switcher part 1 WIP 2025-07-12 13:43:17 +03:00
2 changed files with 77 additions and 20 deletions

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

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