10 Commits

Author SHA1 Message Date
2eb2992787 Finally, radios 2025-08-03 16:58:15 +03:00
ce19b7dc2a Added TXA and Suture 2025-08-02 21:12:28 +03:00
644fc14bbc another tbd fix 2025-07-13 19:27:50 +03:00
2db81d9c5e Wrong place 2025-07-12 22:53:33 +03:00
ae8f93182d Added boxes for tbd_mortars 2025-07-12 22:35:04 +03:00
26c8fc7653 Hotfixed the comma 2025-07-12 21:41:34 +03:00
c090b8f672 Militia squad changes rollback 2025-07-12 21:29:58 +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
f22c2831c7 Added mixed squads, fixed LATs and HATs, guerilla tweaks and a chemlight shield 2025-06-28 18:26:13 +03:00
7 changed files with 105 additions and 44 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",
@@ -880,6 +884,7 @@ GRLIB_arsenal_items = [
"kat_retractor", "kat_retractor",
"kat_scalpel", "kat_scalpel",
"kat_stethoscope", "kat_stethoscope",
"kat_TXA",
// Food // Food
"ACE_Canteen", "ACE_Canteen",
@@ -907,6 +912,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_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
@@ -934,9 +940,14 @@ GRLIB_arsenal_items = [
"ACE_salineIV", // Saline IV (1000 ml) "ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty) "ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint "ACE_splint", // Splint
"ACE_suture", // Suture
"ACE_surgicalKit", // Surgical Kit "ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT) "ACE_tourniquet", // Tourniquet (CAT)
"ACE_wirecutter" // Wirecutter "ACE_wirecutter" // Wirecutter
// ACRE Radios
"ACRE_SEM52SL",
"ACRE_SEM70"
]; ];
GRLIB_arsenal_backpacks = [ GRLIB_arsenal_backpacks = [

View File

@@ -71,9 +71,9 @@ for "_i" from 1 to _amount do {
// Add possible RPG launcher // Add possible RPG launcher
if ((_tier > 1) && ((random 100) <= KP_liberation_resistance_at_chance)) then { if ((_tier > 1) && ((random 100) <= KP_liberation_resistance_at_chance)) then {
_unit addBackpack "B_FieldPack_cbr"; _unit addBackpack "rhs_rpg_2";
for "_i" from 1 to 3 do {_unit addItemToBackpack "RPG7_F";}; for "_i" from 1 to 3 do {_unit addItemToBackpack "rhs_rpg7_PG7V_mag";};
_unit addWeapon "launch_RPG7_F"; _unit addWeapon "gm_rpg7_wud";
}; };
}; };

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
@@ -137,7 +137,7 @@ heavy_vehicles = [
["gm_gc_army_2p16",300,1000,300], // 2P16 "LUNA" ["gm_gc_army_2p16",300,1000,300], // 2P16 "LUNA"
["UK3CB_CW_SOV_O_LATE_MAZ_543_SCUD",400,1200,400], // MAZ-543 SCUD ["UK3CB_CW_SOV_O_LATE_MAZ_543_SCUD",400,1200,400], // MAZ-543 SCUD
["rhs_9k79",500,1300,300], // Tochka-U ["rhs_9k79",500,1300,300], // Tochka-U
["rhs_9k79_F",500,1350,300], // Tochka-U Cluster ["rhs_9k79_K",500,1350,300], // Tochka-U Cluster
["rhs_9k79_B",500,1500,300] // Tochka-U Nuke ["rhs_9k79_B",500,1500,300] // Tochka-U Nuke
]; ];
@@ -170,13 +170,29 @@ 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)
["tbd_mortars_152mm_box_he",0,0,0],
["tbd_mortars_152mm_box_dpicm",0,0,0],
["tbd_mortars_152mm_box_laser",0,0,0],
["tbd_mortars_100mm_box_he",0,0,0],
["tbd_mortars_100mm_box_heat",0,0,0],
["tbd_mortars_100mm_box_ap",0,0,0],
["tbd_mortars_100mm_box_atgm",0,0,0],
["tbd_2b9_vasilek_magazine",0,0,0],
["tbd_mortar_82mm_box_he",0,0,0],
["tbd_mortar_82mm_box_cumul",0,0,0],
["tbd_mortar_82mm_box_illum",0,0,0],
["tbd_mortar_82mm_box_smoke",0,0,0]
]; ];
buildings = [ buildings = [

View File

@@ -223,11 +223,19 @@ KPLIB_b_infantry_classes = KPLIB_b_infantry_classes
/* /*
Opfor squad compositions Opfor squad compositions
*/
OLD - needs to be reworked to either 80s or 90s
KPLIB_o_squadStd = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_marksman, opfor_grenadier, opfor_rpg]; KPLIB_o_squadStd = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_marksman, opfor_grenadier, opfor_rpg];
KPLIB_o_squadInf = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_heavygunner, opfor_marksman, opfor_sharpshooter, opfor_sniper]; KPLIB_o_squadInf = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_heavygunner, opfor_marksman, opfor_sharpshooter, opfor_sniper];
KPLIB_o_squadTank = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_at, opfor_at, opfor_at]; KPLIB_o_squadTank = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_at, opfor_at, opfor_at];
KPLIB_o_squadAir = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_aa, opfor_aa, opfor_aa]; KPLIB_o_squadAir = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_aa, opfor_aa, opfor_aa];
*/
//
// Mixed squads
KPLIB_o_squadStd = [opfor_squad_leader_late, opfor_medic_late, opfor_machinegunner_late, opfor_heavygunner, opfor_marksman, opfor_grenadier, opfor_rpg, opfor_rpg_assistant];
KPLIB_o_squadInf = [opfor_squad_leader_late, opfor_medic, opfor_machinegunner_late, opfor_heavygunner, opfor_marksman_late, opfor_rifleman, opfor_grenadier_heavy];
KPLIB_o_squadTank = [opfor_squad_leader, opfor_medic_late, opfor_machinegunner_late, opfor_rpg, opfor_rpg_assistant, opfor_at, opfor_at_assistant, opfor_rpg_late];
KPLIB_o_squadAir = [opfor_squad_leader_late, opfor_medic_late, opfor_machinegunner_late, opfor_rpg_late, opfor_rpg_assistant, opfor_aa_late, opfor_aa_late, opfor_aa];
/* /*
Liberation specific collections Liberation specific collections

View File

@@ -6,24 +6,46 @@
- LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116
*/ */
// Enemy infantry classes // Enemy infantry - 80s
opfor_officer = "gm_ge_army_officer_p1_90_flk"; // Officer opfor_officer = "gm_ge_army_officer_p1_80_oli"; // Officer
opfor_squad_leader = "gm_ge_army_squadleader_g36a1_p2a1_90_flk"; // Squad Leader opfor_squad_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Squad Leader
opfor_team_leader = "gm_ge_army_squadleader_g36a1_p2a1_90_flk"; // Team Leader opfor_team_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Team Leader
opfor_sentry = "gm_ge_army_rifleman_g36a1_90_flk"; // Rifleman (Lite) opfor_sentry = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman (Lite)
opfor_rifleman = "gm_ge_army_rifleman_g36a1_90_flk"; // Rifleman opfor_rifleman = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman
opfor_rpg = "gm_ge_army_antitank_g36a1_milan_90_flk"; // Rifleman (LAT) opfor_grenadier = "gm_ge_army_grenadier_g3a3_80_ols"; // Grenadier
opfor_grenadier = "gm_ge_army_grenadier_hk69a1_90_flk"; // Grenadier opfor_grenadier_heavy = "gm_ge_army_grenadier_hk69a1_80_ols"; // Heavy Grenadier
opfor_machinegunner = "gm_ge_army_machinegunner_mg3_90_flk"; // Autorifleman opfor_machinegunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Autorifleman
opfor_heavygunner = "gm_ge_army_machinegunner_mg3_90_flk"; // Heavy Gunner opfor_heavygunner = "gm_ge_army_machinegunner_assistant_g3a3_mg3_80_ols"; // Heavy Gunner
opfor_marksman = "gm_ge_army_marksman_g3a3_90_flk"; // Marksman opfor_marksman = "gm_ge_army_marksman_g3a3_80_ols"; // Marksman
opfor_sharpshooter = "gm_ge_army_marksman_g3a3_90_flk"; // Sharpshooter opfor_sharpshooter = "gm_ge_army_marksman_g3a3_80_ols"; // Sharpshooter
opfor_sniper = "gm_ge_army_marksman_g3a3_90_flk"; // Sniper opfor_sniper = "gm_ge_army_marksman_g3a3_80_ols"; // Sniper
opfor_at = "gm_ge_army_antitank_g36a1_pzf3_90_flk"; // AT Specialist opfor_rpg = "gm_ge_army_antitank_g3a3_pzf44_80_ols"; // Rifleman (LAT)
opfor_aa = "gm_ge_army_antiair_g36a1_fim43_90_flk"; // AA Specialist opfor_rpg_assistant = "gm_ge_army_antitank_assistant_g3a3_pzf44_80_ols"; // Rifleman (LAT Assistant)
opfor_medic = "gm_ge_army_medic_g36a1_90_flk"; // Combat Life Saver opfor_at = "gm_ge_army_antitank_g3a3_pzf84_80_ols"; // Rifleman (HAT)
opfor_engineer = "gm_ge_army_engineer_g36a1_90_flks"; // Engineer opfor_at_assistant = "gm_ge_army_antitank_assistant_g3a3_pzf84_80_ols"; // Rifleman (HAT Assistant)
opfor_paratrooper = "gm_ge_army_paratrooper_g36a1_90_flk"; // Paratrooper 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_engineer = "gm_ge_army_engineer_g3a4_80_ols"; // Engineer
opfor_paratrooper = "gm_ge_army_paratrooper_g3a4_80_ols"; // Paratrooper
// Enemy infantry - 90s
opfor_officer_late = "gm_ge_army_officer_p1_90_flk"; // Officer
opfor_squad_leader_late = "gm_ge_army_squadleader_g36a1_p2a1_90_flk"; // Squad Leader
opfor_team_leader_late = "gm_ge_army_squadleader_g36a1_p2a1_90_flk"; // Team Leader
opfor_sentry_late = "gm_ge_army_rifleman_g36a1_90_flk"; // Rifleman (Lite)
opfor_rifleman_late = "gm_ge_army_rifleman_g36a1_90_flk"; // Rifleman
opfor_rpg_late = "gm_ge_army_antitank_g36a1_pzf3_90_flk"; // Rifleman (LAT)
opfor_grenadier_late = "gm_ge_army_grenadier_hk69a1_90_flk"; // Grenadier
opfor_machinegunner_late = "gm_ge_army_machinegunner_mg3_90_flk"; // Autorifleman
opfor_heavygunner_late = "gm_ge_army_machinegunner_assistant_g36a1_mg3_90_flk"; // Heavy Gunner
opfor_marksman_late = "gm_ge_army_marksman_g3a3_90_flk"; // Marksman
opfor_sharpshooter_late = "gm_ge_army_marksman_g3a3_90_flk"; // Sharpshooter
opfor_sniper_late = "gm_ge_army_marksman_g3a3_90_flk"; // Sniper
opfor_at_late = "gm_ge_army_antitank_g36a1_pzf3_90_flk"; // AT Specialist
opfor_aa_late = "gm_ge_army_antiair_g36a1_fim43_90_flk"; // AA Specialist
opfor_medic_late = "gm_ge_army_medic_g36a1_90_flk"; // Combat Life Saver
opfor_engineer_late = "gm_ge_army_engineer_g36a1_90_flks"; // Engineer
opfor_paratrooper_late = "gm_ge_army_paratrooper_g36a1_90_flk"; // Paratrooper
// Enemy vehicles used by secondary objectives. // Enemy vehicles used by secondary objectives.
opfor_mrap = "gm_ge_army_iltis_cargo"; // Truck 0.5t opfor_mrap = "gm_ge_army_iltis_cargo"; // Truck 0.5t
@@ -43,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

@@ -169,6 +169,10 @@ KP_liberation_guerilla_headgear_3 = [
// Facegear. Applies for tier 2 and 3. // Facegear. Applies for tier 2 and 3.
KP_liberation_guerilla_facegear = [ KP_liberation_guerilla_facegear = [
"",
"",
"",
"",
"G_Bandanna_tan", "G_Bandanna_tan",
"G_Bandanna_khk", "G_Bandanna_khk",
"G_Bandanna_oli", "G_Bandanna_oli",

View File

@@ -36,7 +36,7 @@ if (isNull _chopper_type) then {
private _para_group = createGroup [GRLIB_side_enemy, true]; private _para_group = createGroup [GRLIB_side_enemy, true];
while {(count (units _para_group)) < 8} do { while {(count (units _para_group)) < 8} do {
[opfor_paratrooper, markerPos _spawnsector, _para_group] call KPLIB_fnc_createManagedUnit; [opfor_paratrooper_late, markerPos _spawnsector, _para_group] call KPLIB_fnc_createManagedUnit;
}; };
{removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle;} forEach (units _para_group); {removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle;} forEach (units _para_group);