Compare commits
55 Commits
4.1.0
...
ea64f8e63c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea64f8e63c | ||
| c94f660682 | |||
|
|
7e93ebfbfd | ||
|
|
e0c8f3c952 | ||
|
|
d200f83375 | ||
| 51c5da44ce | |||
| 0f5569c5ba | |||
|
|
448fad1ee0 | ||
|
|
2210dc1a70 | ||
|
|
7e5e7e26af | ||
|
|
7c6130891a | ||
|
|
eee4ac1b83 | ||
| faf84a0bf2 | |||
| 68d793a519 | |||
| 2e67e0e932 | |||
| 04546e49f7 | |||
| 8cfebeef10 | |||
| 8c6c1f6a62 | |||
|
1fea46355a
|
|||
|
de91b61fcc
|
|||
| fedc6f1432 | |||
| b34928c0c3 | |||
| 2d9e5aabef | |||
| 87ebbae31c | |||
| 408228f07b | |||
| 736e90e305 | |||
| f17fff8363 | |||
| 64bc303893 | |||
| 80247a01d0 | |||
|
7c8cd6104b
|
|||
|
7322799b78
|
|||
| 8f89283ceb | |||
|
|
db7bdf1ecd | ||
|
|
0f8783ffa9 | ||
| af7600ac16 | |||
|
|
fac86f18f0 | ||
|
|
87b6f359c1 | ||
|
|
cbd8b5963e | ||
|
|
09ee014912 | ||
|
|
5b482b022f | ||
|
|
8afe420527 | ||
| ff98546907 | |||
| 5a1e6dd1a1 | |||
|
|
0524af05b9 | ||
|
|
023550743d | ||
|
|
ab28ed4e50 | ||
|
|
8794dc226d | ||
|
|
2bfaaacfc6 | ||
| 8a4f161df9 | |||
| cc5b8bbf45 | |||
|
eb4959a2ba
|
|||
|
643a7f212b
|
|||
|
|
32dda56f69 | ||
|
|
90f3caf1f9 | ||
|
|
e7af2f115e |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,3 +2,5 @@
|
|||||||
# Notepad++ backups #
|
# Notepad++ backups #
|
||||||
*.bak
|
*.bak
|
||||||
|
|
||||||
|
|
||||||
|
.vscode/
|
||||||
|
|||||||
52
CHANGELOG.md
52
CHANGELOG.md
@@ -4,6 +4,58 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project badly attempts [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project badly attempts [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [4.2.1] - 2024-06-23
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Allowed Equipment Definition typo
|
||||||
|
|
||||||
|
## [4.2.0] - 2024-06-20
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Custom remainsCollector script to replace and supplement the built in arma remainsCollector function
|
||||||
|
- New Resupply Boxes
|
||||||
|
- Ability to spawn spare tires and tracks at the arsenal and via Zeus module
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Split vehicle flags into colors and shapes for additional options
|
||||||
|
- Battalion Callsigns
|
||||||
|
- Allowed Equipment Definitions
|
||||||
|
- Resupply Box Contents
|
||||||
|
- Fixed incorrect ace carry variable setting
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- SMA mod references
|
||||||
|
- Extraneous server performance calculation broadcast to all clients
|
||||||
|
- Ability for pilots to check re-insertion queue
|
||||||
|
|
||||||
|
## [4.1.2] - 2024-04-25
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Fix internal versioning
|
||||||
|
- Swap resupply box 5.56 magazines due to mod conflict
|
||||||
|
- Group deletion handler now properly processes empty groups and logs errors
|
||||||
|
|
||||||
|
## [4.1.1] - 2024-04-19
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Function to remove lightning bolt from zeus
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Alpha Callsign
|
||||||
|
- Allowed Equipment Definitions
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Custom tire patch code
|
||||||
|
- Extraneous server performance calculation broadcast to all clients
|
||||||
|
|
||||||
## [4.1.0] - 2024-03-01
|
## [4.1.0] - 2024-03-01
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
8
custom_sounds.hpp
Normal file
8
custom_sounds.hpp
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
// EXAMPLE
|
||||||
|
// class uncon_alarm
|
||||||
|
// {
|
||||||
|
// name = "uncon_alarm";
|
||||||
|
// sound[] = {"AJ_CBRN_V2\sounds\AJ_warning_1.ogg", 0.9, 1, 5}; //directory, volume, pitch, range
|
||||||
|
// titles[]={};
|
||||||
|
// };
|
||||||
@@ -1,22 +1,74 @@
|
|||||||
// Lists approved fixed-wing and rotary vehicle types that mission makers can use in their missions.
|
// Lists approved fixed-wing and rotary vehicle types that mission makers can use in their missions.
|
||||||
|
|
||||||
class ApprovedAssets {
|
class ApprovedAssets {
|
||||||
// Fixed-wing aircraft
|
// APC
|
||||||
class USAF_A10 {callsign = "Ares";};
|
class rhsusf_stryker_m1126_m2_d {callsign = "Katana"; category = "APC";};
|
||||||
class RHSGREF_A29B_HIDF {callsign = "Odyssey";};
|
class rhsusf_stryker_m1126_mk19_d {callsign = "Katana"; category = "APC";};
|
||||||
class USAF_C130J {callsign = "Hercules";};
|
class rhsusf_stryker_m1127_m2_wd {callsign = "Katana"; category = "APC";};
|
||||||
// Rotary aircraft
|
class rhsusf_stryker_m1132_m2_wd {callsign = "Katana"; category = "APC";};
|
||||||
class RHS_MELB_MH6M {callsign = "Apollo";};
|
class rhsusf_stryker_m1134_wd {callsign = "Katana"; category = "APC";};
|
||||||
class RHS_MELB_AH6M {callsign = "Artemis";};
|
class B_APC_Wheeled_01_cannon_F {callsign = "Rapier"; category = "APC";};
|
||||||
class RHS_MELB_H6M {callsign = "Icarus";};
|
class B_APC_Tracked_01_CRV_F {callsign = "DuctTape"; category = "APC";};
|
||||||
class RHS_CH_47F {callsign = "Achilles";};
|
// Rotary
|
||||||
class ej_MH60MDAP4 {callsign = "Hades";};
|
class TF373_SOAR_MH47G_No_Rear_Guns {callsign = "Achilles"; category = "Rotary";};
|
||||||
class RHS_UH60M {callsign = "Griffin";};
|
class TF373_SOAR_MH47G_No_Rear_Guns_EasyActions {callsign = "Achilles"; category = "Rotary";};
|
||||||
class RHS_UH60M_MEV2 {callsign = "Dustoff";};
|
class TF373_SOAR_MH47G {callsign = "Achilles"; category = "Rotary";};
|
||||||
class B_T_VTOL_01_INFANTRY_F {callsign = "Pegasus";};
|
class TF373_SOAR_MH47G_EasyActions {callsign = "Achilles"; category = "Rotary";};
|
||||||
class B_T_VTOL_01_ARMED_F {callsign = "Spartan";};
|
class RHS_CH_47F_10 {callsign = "Achilles"; category = "Rotary";};
|
||||||
class RHS_AH64D {callsign = "Orion";};
|
class RHS_MELB_AH6M {callsign = "Artemis"; category = "Rotary";};
|
||||||
class RHS_AH1Z {callsign = "Athena";};
|
class RHS_MELB_MH6M {callsign = "Apollo"; category = "Rotary";};
|
||||||
class RHS_UH1Y {callsign = "Homer";};
|
class RHS_MELB_H6M {callsign = "Icarus"; category = "Rotary";};
|
||||||
class rhsusf_CH53E_USMC {callsign = "Atlas";};
|
class RHS_UH60M {callsign = "Griffin"; category = "Rotary";};
|
||||||
|
class RHS_UH60M2 {callsign = "Griffin"; category = "Rotary";};
|
||||||
|
class RHS_UH60M_MEV {callsign = "Dustoff"; category = "Rotary";};
|
||||||
|
class ej_MH60MDAP {callsign = "Hades"; category = "Rotary";};
|
||||||
|
class ej_MH60MDAP16H {callsign = "Hades"; category = "Rotary";};
|
||||||
|
class ej_MH60MDAP8H {callsign = "Hades"; category = "Rotary";};
|
||||||
|
class ej_MH60MDAP4 {callsign = "Hades"; category = "Rotary";};
|
||||||
|
class RHS_AH64DGrey {callsign = "Orion"; category = "Rotary";};
|
||||||
|
// Air
|
||||||
|
// Truck
|
||||||
|
class rhsusf_M1078A1R_SOV_M2_D_fmtv_socom {callsign = "DuctTape"; category = "Truck";};
|
||||||
|
class rhsusf_M1084A1R_SOV_M2_D_fmtv_socom {callsign = "DuctTape"; category = "Truck";};
|
||||||
|
class rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy {callsign = ""; category = "Truck";};
|
||||||
|
// Boats
|
||||||
|
class rhsusf_mkvsoc {callsign = "Poseidon"; category = "Boats";};
|
||||||
|
class B_Boat_Armed_01_minigun_F {callsign = "Neptune"; category = "Boats";};
|
||||||
|
// MRAP
|
||||||
|
class rhsusf_M1238A1_M2_socom_d {callsign = "Tanto"; category = "MRAP";};
|
||||||
|
class rhsusf_M1238A1_Mk19_socom_d {callsign = "Tanto"; category = "MRAP";};
|
||||||
|
class rhsusf_M1239_M2_socom_d {callsign = "DuctTape"; category = "MRAP";};
|
||||||
|
class rhsusf_M1239_MK19_socom_d {callsign = "DuctTape"; category = "MRAP";};
|
||||||
|
class rhsusf_m1245_m2crows_socom_d {callsign = "Dagger"; category = "MRAP";};
|
||||||
|
class rhsusf_m1245_mk19crows_socom_d {callsign = "Dagger"; category = "MRAP";};
|
||||||
|
class rhsusf_M1239_M2_Deploy_socom_d {callsign = "DuctTape"; category = "MRAP";};
|
||||||
|
// TiltRotor
|
||||||
|
class B_T_VTOL_01_infantry_F {callsign = "Pegasus"; category = "TiltRotor";};
|
||||||
|
class B_T_VTOL_01_armed_F {callsign = "Chimera"; category = "TiltRotor";};
|
||||||
|
// Water
|
||||||
|
// Ground Vehicle
|
||||||
|
// Cars
|
||||||
|
class rhsusf_m1165a1_gmv_m134d_m240_socom_d {callsign = "Dagger"; category = "Cars";};
|
||||||
|
class rhsusf_m1165a1_gmv_m2_m240_socom_d {callsign = "Dagger"; category = "Cars";};
|
||||||
|
class rhsusf_m1165a1_gmv_mk19_m240_socom_d {callsign = "Dagger"; category = "Cars";};
|
||||||
|
class rhsusf_mrzr4_d {callsign = ""; category = "Cars";};
|
||||||
|
class UK3CB_B_M1030_NATO {callsign = ""; category = "Cars";};
|
||||||
|
class B_T_LSV_01_AT_F {callsign = ""; category = "Cars";};
|
||||||
|
class B_T_LSV_01_armed_F {callsign = ""; category = "Cars";};
|
||||||
|
class C_Quadbike_01_F {callsign = ""; category = "Cars";};
|
||||||
|
// Fixed-Wing
|
||||||
|
class B_Plane_CAS_01_dynamicLoadout_F {callsign = "Ares"; category = "Fixed-Wing";};
|
||||||
|
class RHS_A10 {callsign = "Ares"; category = "Fixed-Wing";};
|
||||||
|
class USAF_AC130U {callsign = "Odin"; category = "Fixed-Wing";};
|
||||||
|
class USAF_C130J {callsign = "Hercules"; category = "Fixed-Wing";};
|
||||||
|
class B_Plane_Fighter_01_F {callsign = "Xerxes"; category = "Fixed-Wing";};
|
||||||
|
// Artillery
|
||||||
|
class rhsusf_M142_usarmy_WD {callsign = "Halberd"; category = "Artillery";};
|
||||||
|
class UK3CB_B_M270_MLRS_HE_DES {callsign = "Halberd"; category = "Artillery";};
|
||||||
|
class rhsusf_m109d_usarmy {callsign = "Glaive"; category = "Artillery";};
|
||||||
|
class RHS_M119_D {callsign = "Mailman"; category = "Artillery";};
|
||||||
|
class B_Mortar_01_F {callsign = "Hammer"; category = "Artillery";};
|
||||||
|
// Armor
|
||||||
|
class B_AFV_Wheeled_01_cannon_F {callsign = "Gladius"; category = "Armor";};
|
||||||
|
class B_AFV_Wheeled_01_up_cannon_F {callsign = "Gladius"; category = "Armor";};
|
||||||
};
|
};
|
||||||
@@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
|
|
||||||
// Define the callsigns for the Battalion
|
// Define the callsigns for the Battalion
|
||||||
#define COMMAND_CALLSIGN SPARTAN
|
#define COMMAND_CALLSIGN STORMSURGE
|
||||||
#define RRC_CALLSIGN TIGER
|
#define RRC_CALLSIGN TIGER
|
||||||
#define MEDIC_CALLSIGN LIFELINE
|
#define MEDIC_CALLSIGN LIFELINE
|
||||||
#define ALPHA_CALLSIGN BLACKJACK
|
#define ALPHA_CALLSIGN SAVAGE
|
||||||
#define ECHO_CALLSIGN FIREBRAND
|
#define ECHO_CALLSIGN NIGHTFALL
|
||||||
#define WPN_CALLSIGN BLACKFOOT
|
#define WPN_CALLSIGN BLACKFOOT
|
||||||
|
|
||||||
// Define the frequencies for the Battalion
|
// Define the frequencies for the Battalion
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class DisallowedEquipment {
|
|||||||
items[] = {
|
items[] = {
|
||||||
"17BN_ANPVS14", // NVG AN/PVS-14
|
"17BN_ANPVS14", // NVG AN/PVS-14
|
||||||
"ej_PVS15D", // NVG AN/PVS-15
|
"ej_PVS15D", // NVG AN/PVS-15
|
||||||
"ej_VPS15", // NVG AN/PVS-15
|
"ej_PVS15", // NVG AN/PVS-15
|
||||||
"LMG_Mk200_black_F", //Mk200 Series
|
"LMG_Mk200_black_F", //Mk200 Series
|
||||||
"LMG_Mk200_F", //Mk200 Series
|
"LMG_Mk200_F", //Mk200 Series
|
||||||
"rhs_weap_g36c", // G36 Series
|
"rhs_weap_g36c", // G36 Series
|
||||||
@@ -34,11 +34,6 @@ class DisallowedEquipment {
|
|||||||
"rhs_weap_m14_wd", // M14 Series
|
"rhs_weap_m14_wd", // M14 Series
|
||||||
"rhs_weap_m14_weap_m14ebrri", // M14 Series
|
"rhs_weap_m14_weap_m14ebrri", // M14 Series
|
||||||
"rhs_weap_m14", // M14 Series
|
"rhs_weap_m14", // M14 Series
|
||||||
"rhs_weap_m16a4_carryhandle_M203", // M16 Series
|
|
||||||
"rhs_weap_m16a4_carryhandle", // M16 Series
|
|
||||||
"rhs_weap_m16a4_imod_M203", // M16 Series
|
|
||||||
"rhs_weap_m16a4_imod", // M16 Series
|
|
||||||
"rhs_weap_m16a4", // M16 Series
|
|
||||||
"rhs_weap_m27iar_grip", // M27 Series
|
"rhs_weap_m27iar_grip", // M27 Series
|
||||||
"rhs_weap_m27iar", // M27 Series
|
"rhs_weap_m27iar", // M27 Series
|
||||||
"rhsusf_ANPVS_14", // NVG AN/PVS-14
|
"rhsusf_ANPVS_14", // NVG AN/PVS-14
|
||||||
@@ -100,12 +95,6 @@ class DisallowedEquipment {
|
|||||||
"UK3CB_M14DMR_Railed_BLK", // M14 Series
|
"UK3CB_M14DMR_Railed_BLK", // M14 Series
|
||||||
"UK3CB_M14DMR_Railed", // M14 Series
|
"UK3CB_M14DMR_Railed", // M14 Series
|
||||||
"UK3CB_M14DMR", // M14 Series
|
"UK3CB_M14DMR", // M14 Series
|
||||||
"UK3CB_M16_Carbine", // M16 Series
|
|
||||||
"UK3CB_M16A1_LSW", // M16 Series
|
|
||||||
"UK3CB_M16A1", // M16 Series
|
|
||||||
"UK3CB_M16A2_UGL", // M16 Series
|
|
||||||
"UK3CB_M16A2", // M16 Series
|
|
||||||
"UK3CB_M16A3", // M16 Series
|
|
||||||
"USP_PVS_14", // NVG AN/PVS-14
|
"USP_PVS_14", // NVG AN/PVS-14
|
||||||
"USP_PVS_15" // NVG AN/PVS-15
|
"USP_PVS_15" // NVG AN/PVS-15
|
||||||
};
|
};
|
||||||
@@ -132,10 +121,9 @@ class DisallowedEquipment {
|
|||||||
"optic_lrps_tna_F", //Nightforce Series Optic
|
"optic_lrps_tna_F", //Nightforce Series Optic
|
||||||
"optic_lrps", //Nightforce Series Optic
|
"optic_lrps", //Nightforce Series Optic
|
||||||
"optic_Nightstalker", // Thermal Optic
|
"optic_Nightstalker", // Thermal Optic
|
||||||
"optic_tws_mg", // Thermal Optic
|
|
||||||
"optic_tws", // Thermal Optic
|
|
||||||
"rhsusf_acc_anpas13gv1", // Thermal Optic
|
"rhsusf_acc_anpas13gv1", // Thermal Optic
|
||||||
"rhsusf_acc_anpvs27", // Thermal Optic
|
"rhsusf_acc_anpvs27", // Thermal Optic
|
||||||
|
"optic_tws_mg", // Thermal Optic
|
||||||
"Tier1_ANPVS10_Tan", // Thermal Optic
|
"Tier1_ANPVS10_Tan", // Thermal Optic
|
||||||
"Tier1_ATACR18_ADM_Black_Vanilla", //Nightforce Series Optic
|
"Tier1_ATACR18_ADM_Black_Vanilla", //Nightforce Series Optic
|
||||||
"Tier1_ATACR18_ADM_Black", //Nightforce Series Optic
|
"Tier1_ATACR18_ADM_Black", //Nightforce Series Optic
|
||||||
@@ -152,7 +140,8 @@ class DisallowedEquipment {
|
|||||||
"Tier1_ATACR18_Geissele_Docter_Black_Vanilla", //Nightforce Series Optic
|
"Tier1_ATACR18_Geissele_Docter_Black_Vanilla", //Nightforce Series Optic
|
||||||
"Tier1_ATACR18_Geissele_Docter_Black", //Nightforce Series Optic
|
"Tier1_ATACR18_Geissele_Docter_Black", //Nightforce Series Optic
|
||||||
"Tier1_ATACR18_Geissele_Docter_Desert_Vanilla", //Nightforce Series Optic
|
"Tier1_ATACR18_Geissele_Docter_Desert_Vanilla", //Nightforce Series Optic
|
||||||
"Tier1_ATACR18_Geissele_Docter_Desert" //Nightforce Series Optic
|
"Tier1_ATACR18_Geissele_Docter_Desert", //Nightforce Series Optic
|
||||||
|
"sps_black_hornet_01_Static_F" // Black Hornet Drone Mod
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -160,6 +149,7 @@ class DisallowedEquipment {
|
|||||||
label = "TABBED WEAPON";
|
label = "TABBED WEAPON";
|
||||||
description = "Items that are allowed for individuals with Ranger Tab.";
|
description = "Items that are allowed for individuals with Ranger Tab.";
|
||||||
items[] = {
|
items[] = {
|
||||||
|
"optic_tws", // Thermal Optic
|
||||||
"arifle_MX_black_F", // MX Series
|
"arifle_MX_black_F", // MX Series
|
||||||
"arifle_MX_F", // MX Series
|
"arifle_MX_F", // MX Series
|
||||||
"arifle_MX_GL_black_F", // MX 3GL Series
|
"arifle_MX_GL_black_F", // MX 3GL Series
|
||||||
@@ -208,7 +198,90 @@ class DisallowedEquipment {
|
|||||||
"Tier1_SR25_ec_tan", // SR-25 Series
|
"Tier1_SR25_ec_tan", // SR-25 Series
|
||||||
"Tier1_SR25_ec", // SR-25 Series
|
"Tier1_SR25_ec", // SR-25 Series
|
||||||
"Tier1_SR25_tan", // SR-25 Series
|
"Tier1_SR25_tan", // SR-25 Series
|
||||||
"Tier1_SR25" // SR-25 Series
|
"Tier1_SR25", // SR-25 Series
|
||||||
|
"rhsusf_weap_MP7A2", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_aor1", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_desert", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_folded", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_folded_aor1", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_folded_winter", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_folded_desert", //MP7 Series
|
||||||
|
"rhsusf_weap_MP7A2_winter", //MP7 Series
|
||||||
|
"UK3CB_MP510", //MP5 Series
|
||||||
|
"UK3CB_MP5A2", //MP5 Series
|
||||||
|
"UK3CB_MP5A3", //MP5 Series
|
||||||
|
"UK3CB_MP5A4", //MP5 Series
|
||||||
|
"UK3CB_MP5K", //MP5 Series
|
||||||
|
"UK3CB_MP5K_PDW", //MP5 Series
|
||||||
|
"UK3CB_MP5N", //MP5 Series
|
||||||
|
"UK3CB_MP5N_UGL", //MP5 Series
|
||||||
|
"UK3CB_MP5SD5", //MP5 Series
|
||||||
|
"UK3CB_MP5SD6", //MP5 Series
|
||||||
|
"SMG_03C_black", //P90 Series
|
||||||
|
"SMG_03C_camo", //P90 Series
|
||||||
|
"SMG_03C_hex", //P90 Series
|
||||||
|
"SMG_03C_khaki", //P90 Series
|
||||||
|
"SMG_03C_TR_black", //P90 Series
|
||||||
|
"SMG_03C_TR_camo", //P90 Series
|
||||||
|
"SMG_03C_TR_hex", //P90 Series
|
||||||
|
"SMG_03C_TR_khaki", //P90 Series
|
||||||
|
"UK3CB_P90C_black", //P90 Series
|
||||||
|
"UK3CB_P90C_camo", //P90 Series
|
||||||
|
"UK3CB_P90C_hex", //P90 Series
|
||||||
|
"UK3CB_P90C_khaki", //P90 Series
|
||||||
|
"UK3CB_P90C_TR_black", //P90 Series
|
||||||
|
"UK3CB_P90C_TR_camo", //P90 Series
|
||||||
|
"UK3CB_P90C_TR_hex", //P90 Series
|
||||||
|
"UK3CB_P90C_TR_khaki", //P90 Series
|
||||||
|
"UK3CB_P90_black", //P90 Series
|
||||||
|
"UK3CB_P90_camo", //P90 Series
|
||||||
|
"UK3CB_P90_hex", //P90 Series
|
||||||
|
"UK3CB_P90_khaki", //P90 Series
|
||||||
|
"UK3CB_P90_TR_black", //P90 Series
|
||||||
|
"UK3CB_P90_TR_camo", //P90 Series
|
||||||
|
"UK3CB_P90_TR_hex", //P90 Series
|
||||||
|
"UK3CB_P90_TR_khaki", //P90 Series
|
||||||
|
"UK3CB_M16_Carbine", //M16 Series
|
||||||
|
"UK3CB_M16_Carbine_eotech_552", //M16 Series
|
||||||
|
"UK3CB_M16_Carbine_sup", //M16 Series
|
||||||
|
"UK3CB_M16A1", //M16 Series
|
||||||
|
"UK3CB_M16A1_LSW", //M16 Series
|
||||||
|
"UK3CB_M16A2", //M16 Series
|
||||||
|
"UK3CB_M16A2_sup", //M16 Series
|
||||||
|
"UK3CB_M16A2_UGL", //M16 Series
|
||||||
|
"UK3CB_M16A2_UGL_eotech_552", //M16 Series
|
||||||
|
"UK3CB_M16A2_UGL_sup", //M16 Series
|
||||||
|
"UK3CB_M16A3", //M16 Series
|
||||||
|
"UK3CB_M16A3_eotech_552", //M16 Series
|
||||||
|
"UK3CB_M16A3_eotech_552_sup", //M16 Series
|
||||||
|
"UK3CB_M16A3_sup", //M16 Series
|
||||||
|
"UK3CB_M16A3_UGL", //M16 Series
|
||||||
|
"rhs_weap_m16a4", //M16 Series
|
||||||
|
"rhs_weap_m16a4_grip", //M16 Series
|
||||||
|
"rhs_weap_m16a4_grip_acog", //M16 Series
|
||||||
|
"rhs_weap_m16a4_grip2", //M16 Series
|
||||||
|
"rhs_weap_m16a4_grip3", //M16 Series
|
||||||
|
"rhs_weap_m16a4_bipod", //M16 Series
|
||||||
|
"rhs_weap_m16a4_acog_usmc", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle_bipod", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle_grip", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle_M203", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle_M203_grip", //M16 Series
|
||||||
|
"rhs_weap_m16a4_m203_acog_usmc", //M16 Series
|
||||||
|
"uk3cb_weap_m16a4_m203s_eotech_552_anpeq15_sup", //M16 Series
|
||||||
|
"rhs_weap_m16a4_imod", //M16 Series
|
||||||
|
"rhs_weap_m16a4_imod_grip", //M16 Series
|
||||||
|
"rhs_weap_m16a4_imod_grip2", //M16 Series
|
||||||
|
"rhs_weap_m16a4_imod_grip3", //M16 Series
|
||||||
|
"rhs_weap_m16a4_imod_M203", //M16 Series
|
||||||
|
"rhs_weap_m16a4_imod_M203_grip", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle_grip2", //M16 Series
|
||||||
|
"rhs_weap_m16a4_carryhandle_grip3", //M16 Series
|
||||||
|
"rhs_weap_m16a4_grip_acog_usmc", //M16 Series
|
||||||
|
"rhs_weap_m16a4_grip_acog2_usmc", //M16 Series
|
||||||
|
"rhs_weap_m32", //M32/MGL Series
|
||||||
|
"rhs_weap_m32_usmc" //M32/MGL Series
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -20,25 +20,22 @@ class SupplyCrates {
|
|||||||
{"ACE_40mm_Flare_ir",12},
|
{"ACE_40mm_Flare_ir",12},
|
||||||
{"rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote",25},
|
{"rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote",25},
|
||||||
{"rhsusf_20Rnd_762x51_m993_Mag",25},
|
{"rhsusf_20Rnd_762x51_m993_Mag",25},
|
||||||
{"SmokeShell",12},
|
{"SmokeShell",24},
|
||||||
|
{"ACE_M84",24},
|
||||||
{"rhs_mag_m67",24},
|
{"rhs_mag_m67",24},
|
||||||
{"1Rnd_Smoke_Grenade_shell",24},
|
{"1Rnd_Smoke_Grenade_shell",24},
|
||||||
{"1Rnd_SmokeRed_Grenade_shell",24},
|
{"1Rnd_SmokeRed_Grenade_shell",24},
|
||||||
{"1Rnd_SmokeGreen_Grenade_shell",24},
|
{"1Rnd_SmokeGreen_Grenade_shell",24},
|
||||||
{"1Rnd_SmokeYellow_Grenade_shell",12},
|
{"1Rnd_SmokeYellow_Grenade_shell",12},
|
||||||
{"Tier1_30Rnd_556x45_M856A1_EMag",25},
|
{"rhs_mag_30Rnd_556x45_M855A1_Stanag",25},
|
||||||
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",75},
|
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",75},
|
||||||
{"SMA_30Rnd_762x35_BLK_EPR",25},
|
|
||||||
{"SMA_20Rnd_762x51mm_M80A1_EPR",25},
|
|
||||||
{"SMA_20Rnd_762x51mm_M80A1_EPR_Tracer",25},
|
|
||||||
{"SMA_20Rnd_762x51mm_Mk316_Mod_0_Special_Long_Range",25},
|
|
||||||
{"SMA_20Rnd_762x51mm_Mk316_Mod_0_Special_Long_Range_Tracer",25},
|
|
||||||
{"Tier1_250Rnd_762x51_Belt_M993_AP",15},
|
{"Tier1_250Rnd_762x51_Belt_M993_AP",15},
|
||||||
{"ACE_20Rnd_762x51_Mag_Tracer",25},
|
{"ACE_20Rnd_762x51_Mag_Tracer",25},
|
||||||
{"ACE_20Rnd_762x51_M993_AP_Mag",25},
|
{"ACE_20Rnd_762x51_M993_AP_Mag",25},
|
||||||
{"rhsusf_20Rnd_762x51_SR25_m993_Mag",25},
|
{"rhsusf_20Rnd_762x51_SR25_m993_Mag",25},
|
||||||
{"Tier1_20Rnd_762x51_M993_SR25_Mag",25},
|
{"Tier1_20Rnd_762x51_M993_SR25_Mag",25},
|
||||||
{"DemoCharge_Remote_Mag",16}
|
{"KAR_20Rnd_Fury_blk",25},
|
||||||
|
{"rhsusf_m112_mag",25},
|
||||||
};
|
};
|
||||||
items[] = {};
|
items[] = {};
|
||||||
};
|
};
|
||||||
@@ -57,7 +54,7 @@ class SupplyCrates {
|
|||||||
{"MRAWS_HEAT_F",35},
|
{"MRAWS_HEAT_F",35},
|
||||||
{"MRAWS_HE_F",15},
|
{"MRAWS_HE_F",15},
|
||||||
{"Tier1_250Rnd_762x51_Belt_M993_AP",50},
|
{"Tier1_250Rnd_762x51_Belt_M993_AP",50},
|
||||||
{"Tier1_30Rnd_556x45_M856A1_EMag",25},
|
{"rhs_mag_30Rnd_556x45_M855A1_Stanag",25},
|
||||||
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",50},
|
{"ACE_30Rnd_556x45_Stanag_M995_AP_mag",50},
|
||||||
{"Titan_AA",10},
|
{"Titan_AA",10},
|
||||||
{"Titan_AT",10},
|
{"Titan_AT",10},
|
||||||
@@ -82,6 +79,7 @@ class SupplyCrates {
|
|||||||
{"ACE_splint",48},
|
{"ACE_splint",48},
|
||||||
{"ACE_morphine",50},
|
{"ACE_morphine",50},
|
||||||
{"ACE_epinephrine",50},
|
{"ACE_epinephrine",50},
|
||||||
|
{"ACE_painkillers",20},
|
||||||
{"ACE_bloodIV",75},
|
{"ACE_bloodIV",75},
|
||||||
{"ACE_bloodIV_500",50},
|
{"ACE_bloodIV_500",50},
|
||||||
{"ACE_bloodIV_250",25},
|
{"ACE_bloodIV_250",25},
|
||||||
@@ -132,6 +130,42 @@ class SupplyCrates {
|
|||||||
items[] = {};
|
items[] = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class SquadUtility {
|
||||||
|
boxClass = "Box_Syndicate_Ammo_F";
|
||||||
|
displayName = "Squad Utility Supply Crate";
|
||||||
|
tooltip = "A crate containing Flairs, Smokes, Breaching Charges";
|
||||||
|
icon = "\A3\ui_f\data\map\vehicleicons\iconCrateAmmo_ca.paa";
|
||||||
|
|
||||||
|
backpacks[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
magazines[] = {};
|
||||||
|
items[] = {
|
||||||
|
{"ACE_Chemlight_HiYellow",20},
|
||||||
|
{"ACE_Chemlight_HiBlue",20},
|
||||||
|
{"ACE_Chemlight_HiGreen",20},
|
||||||
|
{"ACE_Chemlight_HiRed",20},
|
||||||
|
{"ACE_Chemlight_UltraHiOrange",20},
|
||||||
|
{"ACE_HandFlare_Yellow",20},
|
||||||
|
{"ACE_HandFlare_White",20},
|
||||||
|
{"ACE_HandFlare_Red",20},
|
||||||
|
{"ACE_HandFlare_Green",20},
|
||||||
|
{"ACE_Chemlight_IR",20},
|
||||||
|
{"ACE_IR_Strobe_Item",20},
|
||||||
|
{"SmokeShellYellow",20},
|
||||||
|
{"SmokeShellBlue",20},
|
||||||
|
{"SmokeShellPurple",20},
|
||||||
|
{"SmokeShellOrange",20},
|
||||||
|
{"SmokeShellGreen",20},
|
||||||
|
{"SmokeShellRed",20},
|
||||||
|
{"tsp_popperCharge_auto_mag",10},
|
||||||
|
{"tsp_frameCharge_mag",20},
|
||||||
|
{"tsp_stickCharge_auto_mag",10},
|
||||||
|
{"ACE_CableTie",25},
|
||||||
|
{"DemoCharge_Remote_Mag",15},
|
||||||
|
{"TFAR_anprc152",3},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class MortarMk6Resupply {
|
class MortarMk6Resupply {
|
||||||
boxClass = "Box_NATO_WpsSpecial_F";
|
boxClass = "Box_NATO_WpsSpecial_F";
|
||||||
displayName = "Mortar MK6 Supply Crate";
|
displayName = "Mortar MK6 Supply Crate";
|
||||||
@@ -176,4 +210,28 @@ class SupplyCrates {
|
|||||||
};
|
};
|
||||||
items[] = {};
|
items[] = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ResupplyTire {
|
||||||
|
boxClass = "ACE_Wheel";
|
||||||
|
displayName = "Vehicle Tire";
|
||||||
|
tooltip = "A single tire for replacement";
|
||||||
|
icon = "A3\ui_f\data\igui\cfg\simpletasks\types\repair_ca.paa";
|
||||||
|
|
||||||
|
backpacks[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
magazines[] = {};
|
||||||
|
items[] = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
class ResupplyTrack {
|
||||||
|
boxClass = "ACE_Track";
|
||||||
|
displayName = "Vehicle Track";
|
||||||
|
tooltip = "A single track for replacement";
|
||||||
|
icon = "z\ace\addons\repair\ui\patch_ca.paa";
|
||||||
|
|
||||||
|
backpacks[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
magazines[] = {};
|
||||||
|
items[] = {};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
@@ -84,31 +84,160 @@ class VehicleFlags {
|
|||||||
actionID = "flag_simpleshape";
|
actionID = "flag_simpleshape";
|
||||||
actionTitle = "Simple Shapes";
|
actionTitle = "Simple Shapes";
|
||||||
|
|
||||||
|
class Blue {
|
||||||
|
actionID = "flags_simpleshape_blue";
|
||||||
|
actionTitle = "Blue";
|
||||||
|
|
||||||
|
class BlueCircle {
|
||||||
|
actionID = "flag_simpleshape_bluecircle";
|
||||||
|
actionTitle = "Blue Circle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_bluecircle_co.paa";
|
||||||
|
};
|
||||||
|
class BlueOctagon {
|
||||||
|
actionID = "flag_simpleshape_blueoctagon";
|
||||||
|
actionTitle = "Blue Octagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_blueoctagon_co.paa";
|
||||||
|
};
|
||||||
|
class BluePentagon {
|
||||||
|
actionID = "flag_simpleshape_bluepentagon";
|
||||||
|
actionTitle = "Blue Pentagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_bluepentagon_co.paa";
|
||||||
|
};
|
||||||
|
class BlueSquare {
|
||||||
|
actionID = "flag_simpleshape_bluesquare";
|
||||||
|
actionTitle = "Blue Square";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_bluesquare_co.paa";
|
||||||
|
};
|
||||||
|
class BlueTriangle {
|
||||||
|
actionID = "flag_simpleshape_bluetriangle";
|
||||||
|
actionTitle = "Blue Triangle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_bluetriangle_co.paa";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Green {
|
||||||
|
actionID = "flags_simpleshape_green";
|
||||||
|
actionTitle = "Green";
|
||||||
|
|
||||||
|
class GreenCircle {
|
||||||
|
actionID = "flag_simpleshape_greencircle";
|
||||||
|
actionTitle = "Green Circle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_greencircle_co.paa";
|
||||||
|
};
|
||||||
class GreenOctagon {
|
class GreenOctagon {
|
||||||
actionID = "flag_simpleshape_greenoctagon";
|
actionID = "flag_simpleshape_greenoctagon";
|
||||||
actionTitle = "Green Octagon";
|
actionTitle = "Green Octagon";
|
||||||
texture = "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa";
|
texture = "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa";
|
||||||
};
|
};
|
||||||
class BlueCircle {
|
class GreenPentagon {
|
||||||
actionID = "flag_simpleshape_bluecircle";
|
actionID = "flag_simpleshape_greenpentagon";
|
||||||
actionTitle = "Blue Circle";
|
actionTitle = "Green Pentagon";
|
||||||
texture = "textures\simple_shape\flag_simpleshape_bluecircle_co.paa";
|
texture = "textures\simple_shape\flag_simpleshape_greenpentagon_co.paa";
|
||||||
|
};
|
||||||
|
class GreenSquare {
|
||||||
|
actionID = "flag_simpleshape_greensquare";
|
||||||
|
actionTitle = "Green Square";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_greensquare_co.paa";
|
||||||
|
};
|
||||||
|
class GreenTriangle {
|
||||||
|
actionID = "flag_simpleshape_greentriangle";
|
||||||
|
actionTitle = "Green Triangle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_greentriangle_co.paa";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Orange {
|
||||||
|
actionID = "flags_simpleshape_orange";
|
||||||
|
actionTitle = "Orange";
|
||||||
|
|
||||||
|
class OrangeCircle {
|
||||||
|
actionID = "flag_simpleshape_orangecircle";
|
||||||
|
actionTitle = "Orange Circle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_orangecircle_co.paa";
|
||||||
|
};
|
||||||
|
class OrangeOctagon {
|
||||||
|
actionID = "flag_simpleshape_orangeoctagon";
|
||||||
|
actionTitle = "Orange Octagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_orangeoctagon_co.paa";
|
||||||
|
};
|
||||||
|
class OrangePentagon {
|
||||||
|
actionID = "flag_simpleshape_orangepentagon";
|
||||||
|
actionTitle = "Orange Pentagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_orangepentagon_co.paa";
|
||||||
};
|
};
|
||||||
class OrangeSquare {
|
class OrangeSquare {
|
||||||
actionID = "flag_simpleshape_orangesquare";
|
actionID = "flag_simpleshape_orangesquare";
|
||||||
actionTitle = "Orange Square";
|
actionTitle = "Orange Square";
|
||||||
texture = "textures\simple_shape\flag_simpleshape_orangesquare_co.paa";
|
texture = "textures\simple_shape\flag_simpleshape_orangesquare_co.paa";
|
||||||
};
|
};
|
||||||
|
class OrangeTriangle {
|
||||||
|
actionID = "flag_simpleshape_orangetriangle";
|
||||||
|
actionTitle = "Orange Triangle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_orangetriangle_co.paa";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Pink {
|
||||||
|
actionID = "flags_simpleshape_pink";
|
||||||
|
actionTitle = "Pink";
|
||||||
|
|
||||||
|
class PinkCircle {
|
||||||
|
actionID = "flag_simpleshape_pinkcircle";
|
||||||
|
actionTitle = "Pink Circle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_pinkcircle_co.paa";
|
||||||
|
};
|
||||||
|
class PinkOctagon {
|
||||||
|
actionID = "flag_simpleshape_pinkoctagon";
|
||||||
|
actionTitle = "Pink Octagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_pinkoctagon_co.paa";
|
||||||
|
};
|
||||||
|
class PinkPentagon {
|
||||||
|
actionID = "flag_simpleshape_pinkpentagon";
|
||||||
|
actionTitle = "Pink Pentagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_pinkpentagon_co.paa";
|
||||||
|
};
|
||||||
|
class PinkSquare {
|
||||||
|
actionID = "flag_simpleshape_pinksquare";
|
||||||
|
actionTitle = "Pink Square";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_pinksquare_co.paa";
|
||||||
|
};
|
||||||
class PinkTriangle {
|
class PinkTriangle {
|
||||||
actionID = "flag_simpleshape_pinktriangle";
|
actionID = "flag_simpleshape_pinktriangle";
|
||||||
actionTitle = "Pink Triangle";
|
actionTitle = "Pink Triangle";
|
||||||
texture = "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa";
|
texture = "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class Red {
|
||||||
|
actionID = "flags_simpleshape_red";
|
||||||
|
actionTitle = "Red";
|
||||||
|
|
||||||
|
class RedCircle {
|
||||||
|
actionID = "flag_simpleshape_redcircle";
|
||||||
|
actionTitle = "Red Circle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_redcircle_co.paa";
|
||||||
|
};
|
||||||
|
class RedOctagon {
|
||||||
|
actionID = "flag_simpleshape_redoctagon";
|
||||||
|
actionTitle = "Red Octagon";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_redoctagon_co.paa";
|
||||||
|
};
|
||||||
class RedPentagon {
|
class RedPentagon {
|
||||||
actionID = "flag_simpleshape_redpentagon";
|
actionID = "flag_simpleshape_redpentagon";
|
||||||
actionTitle = "Red Pentagon";
|
actionTitle = "Red Pentagon";
|
||||||
texture = "textures\simple_shape\flag_simpleshape_redpentagon_co.paa";
|
texture = "textures\simple_shape\flag_simpleshape_redpentagon_co.paa";
|
||||||
};
|
};
|
||||||
|
class RedSquare {
|
||||||
|
actionID = "flag_simpleshape_redsquare";
|
||||||
|
actionTitle = "Red Square";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_redsquare_co.paa";
|
||||||
|
};
|
||||||
|
class RedTriangle {
|
||||||
|
actionID = "flag_simpleshape_redtriangle";
|
||||||
|
actionTitle = "Red Triangle";
|
||||||
|
texture = "textures\simple_shape\flag_simpleshape_redtriangle_co.paa";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Miscellaneous {
|
class Miscellaneous {
|
||||||
|
|||||||
@@ -96,6 +96,10 @@ class CfgFunctions {
|
|||||||
#include "custom_scripts.hpp"
|
#include "custom_scripts.hpp"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CfgSounds {
|
||||||
|
#include "custom_sounds.hpp"
|
||||||
|
};
|
||||||
|
|
||||||
class CfgLeaflets {
|
class CfgLeaflets {
|
||||||
#include "custom_leaflets.hpp"
|
#include "custom_leaflets.hpp"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ class DOUBLES(PREFIX,performance) {
|
|||||||
class addServerStatsPFH {};
|
class addServerStatsPFH {};
|
||||||
class calculateServerStats {};
|
class calculateServerStats {};
|
||||||
class addEmptyGroupCleanupPFH {};
|
class addEmptyGroupCleanupPFH {};
|
||||||
|
class addDeadUnitCleanupPFH {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -174,6 +175,8 @@ class DOUBLES(PREFIX,vehicleFlags) {
|
|||||||
class addFlagActions {};
|
class addFlagActions {};
|
||||||
class draw3D {};
|
class draw3D {};
|
||||||
class getActionsFlagCategories {};
|
class getActionsFlagCategories {};
|
||||||
|
class compileFlagAction {};
|
||||||
|
class compileFlagCategoryAction {};
|
||||||
class getVehicleFlagsCfg {};
|
class getVehicleFlagsCfg {};
|
||||||
class isClassExcluded {};
|
class isClassExcluded {};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -29,39 +29,6 @@ _unflip =
|
|||||||
["LandVehicle", 0, ["ACE_MainActions"], _unflip, true] call ace_interact_menu_fnc_addActionToClass;
|
["LandVehicle", 0, ["ACE_MainActions"], _unflip, true] call ace_interact_menu_fnc_addActionToClass;
|
||||||
|
|
||||||
|
|
||||||
_patchTire =
|
|
||||||
[
|
|
||||||
"patchTire",
|
|
||||||
"Patch Tire",
|
|
||||||
"\a3\ui_f\data\IGUI\Cfg\Actions\repair_ca.paa",
|
|
||||||
{
|
|
||||||
[_player, "AinvPknlMstpSnonWnonDr_medic5", 0] call ace_common_fnc_doAnimation;
|
|
||||||
|
|
||||||
[
|
|
||||||
30,
|
|
||||||
[_player, _target],
|
|
||||||
{
|
|
||||||
params ["_args"];
|
|
||||||
_args params ["_player", "_target"];
|
|
||||||
hint "Tire Patched";
|
|
||||||
_target setDamage 0.2;
|
|
||||||
_target setVariable["milsim_ace_repair_wheel_canPatch", false];
|
|
||||||
},
|
|
||||||
{
|
|
||||||
params ["_args"];
|
|
||||||
_args params ["_player", "_target"];
|
|
||||||
hint "Stopped repair";
|
|
||||||
[_player, "", 0] call ace_common_fnc_doAnimation;
|
|
||||||
},
|
|
||||||
"Patching"
|
|
||||||
] call ace_common_fnc_progressBar
|
|
||||||
},
|
|
||||||
{ ( alive _target ) && ( [_player, "ToolKit"] call ace_common_fnc_hasItem ) && ( damage _target > 0.2 ) && ( _target getVariable["milsim_ace_repair_wheel_canPatch", true] ) }
|
|
||||||
] call ace_interact_menu_fnc_createAction;
|
|
||||||
|
|
||||||
["ACE_Wheel", 0, ["ACE_MainActions"], _patchTire, true] call ace_interact_menu_fnc_addActionToClass;
|
|
||||||
|
|
||||||
|
|
||||||
diag_log text "[MILSIM] (client) vehicle actions bound";
|
diag_log text "[MILSIM] (client) vehicle actions bound";
|
||||||
|
|
||||||
nil;
|
nil;
|
||||||
@@ -8,6 +8,7 @@ if ( !hasInterface ) exitWith {};
|
|||||||
if (not (local _unit)) exitWith {};
|
if (not (local _unit)) exitWith {};
|
||||||
|
|
||||||
private _causeOfDeath = _unit getVariable ["ace_medical_causeOfDeath", "#scripted"];
|
private _causeOfDeath = _unit getVariable ["ace_medical_causeOfDeath", "#scripted"];
|
||||||
|
private _triageLevel = _unit call ace_medical_treatment_fnc_getTriageStatus;
|
||||||
|
|
||||||
if (_causeOfDeath != "respawn_button") exitWith {};
|
if (_causeOfDeath != "respawn_button") exitWith {};
|
||||||
private _timeWentUnconscious = _unit getVariable [QGVARMAIN(lastTimeKnockedOut), -1];
|
private _timeWentUnconscious = _unit getVariable [QGVARMAIN(lastTimeKnockedOut), -1];
|
||||||
@@ -15,13 +16,13 @@ if ( !hasInterface ) exitWith {};
|
|||||||
if (_timeWentUnconscious isEqualTo -1) exitWith {};
|
if (_timeWentUnconscious isEqualTo -1) exitWith {};
|
||||||
|
|
||||||
_durationSpentUnconscious = diag_tickTime - _timeWentUnconscious;
|
_durationSpentUnconscious = diag_tickTime - _timeWentUnconscious;
|
||||||
|
|
||||||
[
|
[
|
||||||
LEVEL_INFO,
|
LEVEL_INFO,
|
||||||
QUOTE(COMPONENT),
|
QUOTE(COMPONENT),
|
||||||
"RESPAWNED WHILE UNCONSCIOUS",
|
"RESPAWNED WHILE UNCONSCIOUS",
|
||||||
[_unit, [
|
[_unit, [
|
||||||
["durationSpentUnconscious", _durationSpentUnconscious]
|
["durationSpentUnconscious", _durationSpentUnconscious],
|
||||||
|
["triageLevel", _triageLevel#1]
|
||||||
]] call EFUNC(common,addPlayerInfoToArray)
|
]] call EFUNC(common,addPlayerInfoToArray)
|
||||||
] remoteExec [QEFUNC(common,log), 2];
|
] remoteExec [QEFUNC(common,log), 2];
|
||||||
// format["%1 was unconscious then clicked the respawn button", name _unit] remoteExec["systemChat", 0];
|
// format["%1 was unconscious then clicked the respawn button", name _unit] remoteExec["systemChat", 0];
|
||||||
|
|||||||
@@ -14,6 +14,44 @@ call EFUNC(common,logMissionInfo);
|
|||||||
call EFUNC(fbcb2_assets,initServer);
|
call EFUNC(fbcb2_assets,initServer);
|
||||||
call EFUNC(reinsert,initServer);
|
call EFUNC(reinsert,initServer);
|
||||||
|
|
||||||
|
// globally disable zeus lightning bolt functionality
|
||||||
|
_curators = allMissionObjects "ModuleCurator_F";
|
||||||
|
{
|
||||||
|
_x removeCuratorAddons ["CuratorOnly_Modules_F_Curator_Lightning"];
|
||||||
|
_x removeCuratorAddons ["A3_Modules_F_Curator_Lightning"];
|
||||||
|
} foreach _curators;
|
||||||
|
|
||||||
|
// add dead unit time marking for custom garbage cleanup function
|
||||||
|
addMissionEventHandler ["EntityKilled", {
|
||||||
|
params ["_unit", "_killer", "_instigator", "_useEffects"];
|
||||||
|
|
||||||
|
if not (_unit isKindOf "CAManBase") exitWith {};
|
||||||
|
|
||||||
|
_unit setVariable["milsim_death_time", time];
|
||||||
|
|
||||||
|
_unit addEventHandler ["Deleted", {
|
||||||
|
params ["_entity"];
|
||||||
|
_remainsCollector = _entity getVariable["milsim_garbage_collected", false];
|
||||||
|
_decayTime = time - (_entity getVariable ["milsim_death_time", time]);
|
||||||
|
|
||||||
|
_i = allUsers select { (getUserInfo _x)#1 isEqualTo _ownerId;};
|
||||||
|
_owner = if ( _i isEqualTo []) then [ { "server" }, { (getUserInfo (_i#0))#3 }];
|
||||||
|
|
||||||
|
diag_log format["isServer: %5, deleted object owned by: %1 via remainsCollector: %2 after %3 seconds of type: %4", _owner, str (not _remainsCollector), _decayTime, _entity, isServer];
|
||||||
|
}];
|
||||||
|
}];
|
||||||
|
|
||||||
|
|
||||||
|
// add zeus deletion logging to curator objects
|
||||||
|
{
|
||||||
|
_x addEventHandler ["CuratorObjectDeleted", {
|
||||||
|
params ["_curator", "_entity"];
|
||||||
|
|
||||||
|
_decayTime = time - (_entity getVariable ["milsim_death_time", time]);
|
||||||
|
diag_log format["deleted object: %1 via curator: %2 after %3 seconds", _entity, name _curator, _decayTime];
|
||||||
|
}];
|
||||||
|
} foreach _curators;
|
||||||
|
|
||||||
// declare init complete to other modules
|
// declare init complete to other modules
|
||||||
missionNamespace setVariable [QGVARMAIN(complete), true, true];
|
missionNamespace setVariable [QGVARMAIN(complete), true, true];
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
#include "..\script_component.hpp"
|
#include "..\script_component.hpp"
|
||||||
|
|
||||||
|
//---------------------
|
||||||
|
// Garbage Collection
|
||||||
|
//---------------------
|
||||||
|
|
||||||
[
|
[
|
||||||
QGVAR(emptyGroupCleanup_enable),
|
QGVAR(emptyGroupCleanup_enable),
|
||||||
"CHECKBOX",
|
"CHECKBOX",
|
||||||
@@ -22,6 +26,28 @@
|
|||||||
}
|
}
|
||||||
] call CBA_fnc_addSetting;
|
] call CBA_fnc_addSetting;
|
||||||
|
|
||||||
|
[
|
||||||
|
QGVAR(deadUnitCleanup_enable),
|
||||||
|
"CHECKBOX",
|
||||||
|
"Dead Unit Cleanup Enabled",
|
||||||
|
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
params ["_value"];
|
||||||
|
[
|
||||||
|
QGVAR(deadUnitCleanup_enable),
|
||||||
|
_value
|
||||||
|
] call EFUNC(common,logSettingChanged);
|
||||||
|
|
||||||
|
if (!isNull (missionNamespace getVariable [QGVAR(deadUnitCleanupPFH), locationNull])) then {
|
||||||
|
deleteLocation GVAR(deadUnitCleanupPFH);
|
||||||
|
};
|
||||||
|
|
||||||
|
call FUNC(addDeadUnitCleanupPFH);
|
||||||
|
}
|
||||||
|
] call CBA_fnc_addSetting;
|
||||||
|
|
||||||
//---------------------
|
//---------------------
|
||||||
// Server CPS
|
// Server CPS
|
||||||
//---------------------
|
//---------------------
|
||||||
|
|||||||
55
framework/performance/functions/fn_addDeadUnitCleanupPFH.sqf
Normal file
55
framework/performance/functions/fn_addDeadUnitCleanupPFH.sqf
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#include "..\script_component.hpp"
|
||||||
|
|
||||||
|
[
|
||||||
|
LEVEL_INFO,
|
||||||
|
QUOTE(COMPONENT),
|
||||||
|
"Initializing dead unit deletion PFH",
|
||||||
|
[]
|
||||||
|
] call EFUNC(common,log);
|
||||||
|
|
||||||
|
GVAR(deadUnitCleanupPFH) = [
|
||||||
|
{
|
||||||
|
_maxTime = getMissionConfigValue ["corpseRemovalMaxTime", 300] * 1.5;
|
||||||
|
_maxDead = getMissionConfigValue ["corpseLimit", 80];
|
||||||
|
|
||||||
|
// _dead = allDead select { (_x isKindOf "CAManBase") and ( ( (time - (_x getVariable ["milsim_death_time", time] ) ) > (_maxTime * 1.5) ) ) };
|
||||||
|
// _dead = _dead apply { [ (time - (_x getVariable ["milsim_death_time", time] ) ), _x ] };
|
||||||
|
|
||||||
|
_dead = [];
|
||||||
|
{
|
||||||
|
if not (_x isKindOf "CAManBase") then { continue };
|
||||||
|
if not (isInRemainsCollector _x) then { continue };
|
||||||
|
_dead pushBack [time - (_x getVariable ["milsim_death_time", time] ), _x];
|
||||||
|
} forEach allDead;
|
||||||
|
|
||||||
|
_dead sort false;
|
||||||
|
_toDelete = 0 max ( (count _dead ) - _maxDead );
|
||||||
|
_dead = _dead select [0, _toDelete];
|
||||||
|
{
|
||||||
|
_unit = _x#1;
|
||||||
|
_unit setVariable ["milsim_garbage_collected", true];
|
||||||
|
deleteVehicle (_unit);
|
||||||
|
} foreach _dead;
|
||||||
|
},
|
||||||
|
450,
|
||||||
|
[],
|
||||||
|
{ // on creation
|
||||||
|
[
|
||||||
|
LEVEL_INFO,
|
||||||
|
QUOTE(COMPONENT),
|
||||||
|
"dead unit deletion PFH loaded",
|
||||||
|
[]
|
||||||
|
] call EFUNC(common,log);
|
||||||
|
},
|
||||||
|
{ // on deletion
|
||||||
|
[
|
||||||
|
LEVEL_INFO,
|
||||||
|
QUOTE(COMPONENT),
|
||||||
|
"dead unit deletion PFH unloaded",
|
||||||
|
[]
|
||||||
|
] call EFUNC(common,log);
|
||||||
|
},
|
||||||
|
{ (missionNamespace getVariable [QGVAR(deadUnitCleanup_enable), false]) },
|
||||||
|
{ false },
|
||||||
|
[]
|
||||||
|
] call CBA_fnc_createPerFrameHandlerObject;
|
||||||
@@ -10,9 +10,39 @@
|
|||||||
GVAR(emptyGroupCleanupPFH) = [
|
GVAR(emptyGroupCleanupPFH) = [
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
if (local _x) then {
|
|
||||||
if ((count units _x) == 0) then {
|
if ((count units _x) == 0) then {
|
||||||
|
if (local _x) then {
|
||||||
|
[
|
||||||
|
LEVEL_INFO,
|
||||||
|
QUOTE(COMPONENT),
|
||||||
|
"DELETING EMPTY GROUP",
|
||||||
|
[
|
||||||
|
["groupId", groupId _x],
|
||||||
|
["netId", netId _x]
|
||||||
|
]
|
||||||
|
] call EFUNC(common,log);
|
||||||
deleteGroup _x;
|
deleteGroup _x;
|
||||||
|
} else {
|
||||||
|
if (isServer) then {
|
||||||
|
[
|
||||||
|
LEVEL_INFO,
|
||||||
|
QUOTE(COMPONENT),
|
||||||
|
"NON LOCAL EMPTY GROUP",
|
||||||
|
[
|
||||||
|
["groupId", groupId _x],
|
||||||
|
["groupOwner", groupOwner _x]
|
||||||
|
]
|
||||||
|
] call EFUNC(common,log);
|
||||||
|
} else {
|
||||||
|
[
|
||||||
|
LEVEL_INFO,
|
||||||
|
QUOTE(COMPONENT),
|
||||||
|
"EMPTY REMOTE GROUP",
|
||||||
|
[
|
||||||
|
["groupId", groupId _x]
|
||||||
|
]
|
||||||
|
] call EFUNC(common,log);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} forEach allGroups;
|
} forEach allGroups;
|
||||||
@@ -39,6 +69,3 @@ GVAR(emptyGroupCleanupPFH) = [
|
|||||||
{ not (missionNamespace getVariable [QGVAR(emptyGroupCleanup_enable), false]) },
|
{ not (missionNamespace getVariable [QGVAR(emptyGroupCleanup_enable), false]) },
|
||||||
[]
|
[]
|
||||||
] call CBA_fnc_createPerFrameHandlerObject;
|
] call CBA_fnc_createPerFrameHandlerObject;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
// log to RPT
|
// log to RPT
|
||||||
[
|
[
|
||||||
|
|
||||||
{_this call EFUNC(common,log);},
|
{_this remoteExec [QEFUNC(common,log), 2]},
|
||||||
[
|
[
|
||||||
LEVEL_INFO,
|
LEVEL_INFO,
|
||||||
QUOTE(COMPONENT),
|
QUOTE(COMPONENT),
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
private _rawCPS = _counter / (diag_frameNo - _frameNo);
|
private _rawCPS = _counter / (diag_frameNo - _frameNo);
|
||||||
missionNamespace setVariable [QGVAR(server_raw_cps), _rawCPS];
|
missionNamespace setVariable [QGVAR(server_raw_cps), _rawCPS];
|
||||||
publicVariable QGVAR(server_raw_cps);
|
|
||||||
|
|
||||||
// with suspension
|
// with suspension
|
||||||
private _counter = 0;
|
private _counter = 0;
|
||||||
@@ -26,7 +25,6 @@
|
|||||||
|
|
||||||
private _serverCPS = _counter / (diag_frameNo - _frameNo);
|
private _serverCPS = _counter / (diag_frameNo - _frameNo);
|
||||||
missionNamespace setVariable [QGVAR(server_cps), _counter / (diag_frameNo - _frameNo)];
|
missionNamespace setVariable [QGVAR(server_cps), _counter / (diag_frameNo - _frameNo)];
|
||||||
publicVariable QGVAR(server_cps);
|
|
||||||
|
|
||||||
// log to RPT
|
// log to RPT
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ localNamespace setVariable [QGVAR(checkReinsertQueueClassesAdded), []];
|
|||||||
localNamespace setVariable [QGVAR(lastReinsertQueueCheck), diag_tickTime];
|
localNamespace setVariable [QGVAR(lastReinsertQueueCheck), diag_tickTime];
|
||||||
|
|
||||||
// add actions to pilot classes, and don't apply to child classes
|
// add actions to pilot classes, and don't apply to child classes
|
||||||
[["B_Helipilot_F", "B_helicrew_F"], false] call FUNC(addCheckQueueSelfAction);
|
// [["B_Helipilot_F", "B_helicrew_F"], false] call FUNC(addCheckQueueSelfAction);
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ if (isNil "_items") exitWith {
|
|||||||
[_box,1] call ace_cargo_fnc_setSize;
|
[_box,1] call ace_cargo_fnc_setSize;
|
||||||
|
|
||||||
// ignore weight restrictions for carry/drag
|
// ignore weight restrictions for carry/drag
|
||||||
_box setVariable ["ace_ignoreWeightCarry", true, true];
|
_box setVariable ["ace_dragging_ignoreWeightCarry", true, true];
|
||||||
|
|
||||||
// Return the box
|
// Return the box
|
||||||
_box;
|
_box;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#define MAJOR 4
|
#define MAJOR 4
|
||||||
#define MINOR 0
|
#define MINOR 2
|
||||||
#define PATCHLVL 0
|
#define PATCHLVL 1
|
||||||
#define BUILD 0
|
#define BUILD 0
|
||||||
|
|||||||
40
framework/vehicleFlags/functions/fn_compileFlagAction.sqf
Normal file
40
framework/vehicleFlags/functions/fn_compileFlagAction.sqf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#include "..\script_component.hpp"
|
||||||
|
|
||||||
|
params ["_target", "_player", "_params", "_flagOptionCfg"];
|
||||||
|
_params params ["_rootActionID", "_flagCategoryActionID", "_flagSubclassesCfgs"];
|
||||||
|
|
||||||
|
private _flagOptionID = getText(_flagOptionCfg >> "actionID");
|
||||||
|
private _flagOptionTitle = getText(_flagOptionCfg >> "actionTitle");
|
||||||
|
private _flagOptionTexture = getText(_flagOptionCfg >> "texture");
|
||||||
|
|
||||||
|
// if the texture doesn't exist at the config path, skip this flag option
|
||||||
|
if (not (fileExists _flagOptionTexture)) then {
|
||||||
|
diag_log format ["WARN: Flag option texture not found: %1", _flagOptionTexture];
|
||||||
|
continue
|
||||||
|
};
|
||||||
|
|
||||||
|
// diag_log format ["NewFlagOption: %1 %2", _flagOptionID, _flagOptionData];
|
||||||
|
|
||||||
|
private _newFlagOption = [
|
||||||
|
|
||||||
|
_rootActionID + "_" + _flagCategoryActionID + "_" + _flagOptionID, // id
|
||||||
|
_flagOptionTitle, // displayed title
|
||||||
|
_flagOptionTexture, // flag icon
|
||||||
|
{
|
||||||
|
params ["_target", "_player", "_params"];
|
||||||
|
_params params ["_flagOptionTexture"];
|
||||||
|
_target forceFlagTexture _flagOptionTexture;
|
||||||
|
}, // statement
|
||||||
|
{
|
||||||
|
params ["_target", "_player", "_params"];
|
||||||
|
alive _target;
|
||||||
|
// true;
|
||||||
|
}, // condition
|
||||||
|
nil, // child code
|
||||||
|
[_flagOptionTexture], // params
|
||||||
|
nil, // position
|
||||||
|
4, // distance
|
||||||
|
[false, false, false, false, false] // other params
|
||||||
|
] call ace_interact_menu_fnc_createAction;
|
||||||
|
|
||||||
|
_newFlagOption;
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
#include "..\script_component.hpp"
|
||||||
|
|
||||||
|
// diag_log format ["NewFlagCategory: %1 %2", _flagCategory, _flagOptions];
|
||||||
|
|
||||||
|
params ["_rootActionID", "_flagCategoryCfg"];
|
||||||
|
private _flagCategoryActionID = getText(_flagCategoryCfg >> "actionID");
|
||||||
|
private _flagCategoryTitle = getText(_flagCategoryCfg >> "actionTitle");
|
||||||
|
|
||||||
|
private _flagSubclassesCfgs = _flagCategoryCfg call BIS_fnc_returnChildren;
|
||||||
|
|
||||||
|
private _flagCategoryAction = [
|
||||||
|
_rootActionID + "_" + _flagCategoryActionID, // id
|
||||||
|
_flagCategoryTitle, // displayed title
|
||||||
|
getText((_flagSubclassesCfgs#0) >> "texture"), // flag icon for category - use first flag option
|
||||||
|
{true}, // statement
|
||||||
|
{
|
||||||
|
params ["_target", "_player", "_params"];
|
||||||
|
alive _target;
|
||||||
|
// true;
|
||||||
|
}, // condition
|
||||||
|
{
|
||||||
|
// generate child code under category
|
||||||
|
// this is the level where actual flag options will be displayed
|
||||||
|
params ["_target", "_player", "_params"];
|
||||||
|
// these params are passed from the parent action
|
||||||
|
_params params ["_rootActionID", "_flagCategoryActionID", "_flagSubclassesCfgs"];
|
||||||
|
|
||||||
|
private _individualFlagActions = [];
|
||||||
|
{ // forEach _flagSubclassesCfgs; // we'll generate flag options for each category
|
||||||
|
private _flagOptionCfg = _x;
|
||||||
|
|
||||||
|
// generate flag option for this flag option
|
||||||
|
private _newFlagOption = [
|
||||||
|
_target,
|
||||||
|
_player,
|
||||||
|
_params,
|
||||||
|
_flagOptionCfg
|
||||||
|
] call FUNC(compileFlagAction);
|
||||||
|
|
||||||
|
// add flag option to category subactions
|
||||||
|
_individualFlagActions pushBack [_newFlagOption, [], _target];
|
||||||
|
} forEach _flagSubclassesCfgs;
|
||||||
|
|
||||||
|
// return the generated flag options to the category as child actions
|
||||||
|
_individualFlagActions;
|
||||||
|
}, // child code
|
||||||
|
[_rootActionID, _flagCategoryActionID, _flagSubclassesCfgs], // params
|
||||||
|
nil, // position
|
||||||
|
4, // distance
|
||||||
|
[false, false, false, false, false], // other params
|
||||||
|
nil // modifier function code
|
||||||
|
] call ace_interact_menu_fnc_createAction;
|
||||||
|
|
||||||
|
_flagCategoryAction;
|
||||||
@@ -5,86 +5,25 @@
|
|||||||
0: STRING - Parent action ID
|
0: STRING - Parent action ID
|
||||||
1: ARRAY - Flag category configs
|
1: ARRAY - Flag category configs
|
||||||
*/
|
*/
|
||||||
|
#include "..\script_component.hpp"
|
||||||
|
|
||||||
params ["_rootActionID", "_flagCategoryCfgs"];
|
params ["_rootActionID", "_flagCategoryCfgs"];
|
||||||
|
|
||||||
private _allCategoryActions = [];
|
private _allCategoryActions = [];
|
||||||
|
|
||||||
{
|
{
|
||||||
// diag_log format ["NewFlagCategory: %1 %2", _flagCategory, _flagOptions];
|
_flagCategoryActions = [];
|
||||||
|
if (configName _x == "SimpleShapes") then {
|
||||||
private _flagCategoryCfg = _x;
|
|
||||||
private _flagCategoryActionID = getText(_flagCategoryCfg >> "actionID");
|
|
||||||
private _flagCategoryTitle = getText(_flagCategoryCfg >> "actionTitle");
|
|
||||||
|
|
||||||
private _flagSubclassesCfgs = _flagCategoryCfg call BIS_fnc_returnChildren;
|
|
||||||
|
|
||||||
private _flagCategoryAction = [
|
|
||||||
_rootActionID + "_" + _flagCategoryActionID, // id
|
|
||||||
_flagCategoryTitle, // displayed title
|
|
||||||
getText((_flagSubclassesCfgs#0) >> "texture"), // flag icon for category - use first flag option
|
|
||||||
{true}, // statement
|
|
||||||
{
|
{
|
||||||
params ["_target", "_player", "_params"];
|
_flagCategoryActions pushBack ([_rootActionID, _x] call FUNC(compileFlagCategoryAction));
|
||||||
alive _target;
|
} forEach (_x call BIS_fnc_returnChildren);
|
||||||
// true;
|
} else {
|
||||||
}, // condition
|
_flagCategoryActions pushBack ([_rootActionID, _x] call FUNC(compileFlagCategoryAction));
|
||||||
{
|
};
|
||||||
// generate child code under category
|
|
||||||
// this is the level where actual flag options will be displayed
|
|
||||||
params ["_target", "_player", "_params"];
|
|
||||||
_params params ["_rootActionID", "_flagCategoryActionID", "_flagSubclassesCfgs"];
|
|
||||||
|
|
||||||
private _individualFlagActions = [];
|
|
||||||
{ // forEach _flagSubclassesCfgs;
|
|
||||||
private _flagOptionCfg = _x;
|
|
||||||
private _flagOptionID = getText(_flagOptionCfg >> "actionID");
|
|
||||||
private _flagOptionTitle = getText(_flagOptionCfg >> "actionTitle");
|
|
||||||
private _flagOptionTexture = getText(_flagOptionCfg >> "texture");
|
|
||||||
|
|
||||||
// if the texture doesn't exist at the config path, skip this flag option
|
|
||||||
if (not (fileExists _flagOptionTexture)) then {continue};
|
|
||||||
|
|
||||||
// diag_log format ["NewFlagOption: %1 %2", _flagOptionID, _flagOptionData];
|
|
||||||
|
|
||||||
private _newFlagOption = [
|
|
||||||
|
|
||||||
_rootActionID + "_" + _flagCategoryActionID + "_" + _flagOptionID, // id
|
|
||||||
_flagOptionTitle, // displayed title
|
|
||||||
_flagOptionTexture, // flag icon
|
|
||||||
{
|
|
||||||
params ["_target", "_player", "_params"];
|
|
||||||
_params params ["_flagOptionTexture"];
|
|
||||||
_target forceFlagTexture _flagOptionTexture;
|
|
||||||
}, // statement
|
|
||||||
{
|
|
||||||
params ["_target", "_player", "_params"];
|
|
||||||
alive _target;
|
|
||||||
// true;
|
|
||||||
}, // condition
|
|
||||||
nil, // child code
|
|
||||||
[_flagOptionTexture], // params
|
|
||||||
nil, // position
|
|
||||||
4, // distance
|
|
||||||
[false, false, false, false, false] // other params
|
|
||||||
] call ace_interact_menu_fnc_createAction;
|
|
||||||
|
|
||||||
// add flag option to category subactions
|
|
||||||
_individualFlagActions pushBack [_newFlagOption, [], _target];
|
|
||||||
} forEach _flagSubclassesCfgs;
|
|
||||||
|
|
||||||
// return the generated flag options to the category as child actions
|
|
||||||
_individualFlagActions;
|
|
||||||
}, // child code
|
|
||||||
[_rootActionID, _flagCategoryActionID, _flagSubclassesCfgs], // params
|
|
||||||
nil, // position
|
|
||||||
4, // distance
|
|
||||||
[false, false, false, false, false], // other params
|
|
||||||
nil // modifier function code
|
|
||||||
] call ace_interact_menu_fnc_createAction;
|
|
||||||
|
|
||||||
// add category to all category actions array
|
// add category to all category actions array
|
||||||
_allCategoryActions pushBack [_flagCategoryAction, [], _target];
|
{
|
||||||
|
_allCategoryActions pushBack [_x, [], _target];
|
||||||
|
} forEach _flagCategoryActions;
|
||||||
} forEach _flagCategoryCfgs;
|
} forEach _flagCategoryCfgs;
|
||||||
|
|
||||||
_allCategoryActions;
|
_allCategoryActions;
|
||||||
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_blueoctagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_blueoctagon_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_bluepentagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_bluepentagon_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_bluesquare_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_bluesquare_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_bluetriangle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_bluetriangle_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_greencircle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_greencircle_co.paa
Normal file
Binary file not shown.
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_greenpentagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_greenpentagon_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_greensquare_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_greensquare_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_greentriangle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_greentriangle_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_orangecircle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_orangecircle_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_orangeoctagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_orangeoctagon_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_orangepentagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_orangepentagon_co.paa
Normal file
Binary file not shown.
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_orangetriangle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_orangetriangle_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_pinkcircle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_pinkcircle_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_pinkoctagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_pinkoctagon_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_pinkpentagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_pinkpentagon_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_pinksquare_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_pinksquare_co.paa
Normal file
Binary file not shown.
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_redcircle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_redcircle_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_redoctagon_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_redoctagon_co.paa
Normal file
Binary file not shown.
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_redsquare_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_redsquare_co.paa
Normal file
Binary file not shown.
BIN
textures/simple_shape/flag_simpleshape_redtriangle_co.paa
Normal file
BIN
textures/simple_shape/flag_simpleshape_redtriangle_co.paa
Normal file
Binary file not shown.
Reference in New Issue
Block a user