Compare commits

...

67 Commits
4.1.1 ... 4.2.3

Author SHA1 Message Date
6b33680e77 Merge pull request '4.2.3 release' (#65) from develop into main
All checks were successful
Pack Release files / Dispatch MissionZGM build job (release) Successful in 1m33s
Pack Release files / Publish cleaned template (release) Successful in 1m47s
Reviewed-on: #65
2025-05-27 20:46:28 -05:00
hizumi
3db6191e0d Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m17s
2025-05-27 20:33:29 -05:00
hizumi
fef05fa153 Update CHANGELOG.md 2025-05-27 20:33:23 -05:00
hizumi
2bd8a16079 Update fn_bindEventHandlers.sqf
correct logic for handling chat messages based on allowed channel cba settings
2025-05-25 22:48:53 -05:00
1fbda6ac95 Merge pull request 'aj-campaign-update-5-17-2025' (#64) from aj-campaign-update-5-17-2025 into develop
Some checks failed
Generate testing snapshot / Create testing release (push) Has been cancelled
Reviewed-on: #64
2025-05-19 16:32:08 -05:00
dbc380c6af Merge branch 'develop' into aj-campaign-update-5-17-2025 2025-05-19 16:31:58 -05:00
22c1f1a21a revert 05936d9213
revert Update defines/DisallowedEquipment.hpp

Added AJ's T-Shirts to the Tabbed Weapons
2025-05-19 16:31:42 -05:00
hizumi
3f4d4147a3 Warlord emblem addition
add new texture for warlord flag and add it to vehicle flag list
2025-05-19 16:31:24 -05:00
c9c15681ce Merge pull request 'Tabbed-Shirt-Update-3-25-2025' (#63) from Tabbed-Shirt-Update-3-25-2025 into develop
Some checks failed
Generate testing snapshot / Create testing release (push) Has been cancelled
Reviewed-on: #63
2025-05-19 16:18:17 -05:00
840652f853 Update defines/SupplyCrates.hpp
Added new resupply Mags for KAR and JCA
2025-05-18 19:12:45 -05:00
05936d9213 Update defines/DisallowedEquipment.hpp
Added AJ's T-Shirts to the Tabbed Weapons
2025-05-05 23:44:21 -05:00
84ab6a1ca7 Update defines/BattalionInfo.hpp
Updated Alpha Callsign
2025-05-04 15:11:46 -05:00
175988efe6 Removed PVS14 and PVS15 from Blacklist 2025-05-04 00:04:36 -05:00
b60f7922f3 Update defines/DisallowedEquipment.hpp
Added T-Shirt Items
2025-03-25 20:44:01 -05:00
hizumi
071a056dc8 Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m58s
2024-12-23 00:21:25 -06:00
hizumi
c31e5cf9ac Update CHANGELOG.md 2024-12-23 00:21:21 -06:00
69aed97ce3 Merge pull request '4.2.2 release' (#62) from develop into main
Reviewed-on: #62
2024-12-23 00:21:15 -06:00
5cf3ea5c1f Merge pull request 'Campaign-Updates-Nov-13-2024' (#61) from Campaign-Updates-Nov-13-2024 into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m56s
Reviewed-on: #61
2024-12-23 00:09:37 -06:00
38d03353b3 Merge branch 'develop' into Campaign-Updates-Nov-13-2024 2024-12-23 00:09:22 -06:00
ca478ab08d Merge pull request 'ingame_chat_options' (#59) from ingame_chat_options into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 2m55s
Reviewed-on: #59
2024-12-23 00:07:53 -06:00
f6703e7dd4 Merge branch 'develop' into ingame_chat_options 2024-12-23 00:07:10 -06:00
hizumi
ea64f8e63c Update fn_logRespawnButtonUse.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 3m6s
add triagelevel status to respawn message
2024-12-23 00:01:43 -06:00
3308cdc5ba Update defines/DisallowedEquipment.hpp
Added Restricted Item Check for MRH Satcom / Satellite
2024-11-16 17:42:14 -06:00
a35c39721e Update defines/BattalionInfo.hpp
Commented out unused Units
Updated Command Callsigns
2024-11-13 19:53:11 -06:00
dba0a0e57c Update framework/client/functions/fn_bindEventHandlers.sqf
Added Chat Handler Mission Space Variable Checks
2024-08-11 12:01:01 -05:00
888a688f56 Update framework/common/functions/fn_addCBASettings.sqf
Added CBA Settings for Chat Handler as well as Defaults
2024-08-11 11:57:29 -05:00
c94f660682 Merge pull request '4.2.1 release' (#56) from develop into main
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
Reviewed-on: #56
2024-06-23 23:35:59 -05:00
hizumi
7e93ebfbfd Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
prep 4.2.1 release
2024-06-23 23:33:23 -05:00
hizumi
e0c8f3c952 Update CHANGELOG.md
version 4.2.0 release notes
2024-06-23 23:33:07 -05:00
hizumi
d200f83375 Update DisallowedEquipment.hpp 2024-06-23 23:32:24 -05:00
51c5da44ce Merge pull request '4.2.0 release' (#55) from develop into main
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 36s
Reviewed-on: #55
2024-06-20 23:51:06 -05:00
0f5569c5ba Merge branch 'main' into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 36s
2024-06-20 23:49:29 -05:00
hizumi
448fad1ee0 Update script_version.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 41s
prep 4.2.0 release
2024-06-20 23:24:08 -05:00
hizumi
2210dc1a70 Update CHANGELOG.md
version 4.2.0 release notes
2024-06-20 23:23:50 -05:00
hizumi
7e5e7e26af Update SupplyCrates.hpp
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 40s
add ability to pull tires and tracks out of the arsenal boxes for loading into vehicles
2024-06-19 22:20:49 -05:00
hizumi
7c6130891a update custom remainsCollector event handlers
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 39s
add extra verbose debug logging to determine owner, time, and whether or not the custom garbage collector is who processed the body
2024-06-19 20:55:12 -05:00
hizumi
eee4ac1b83 Update fn_initClient.sqf
temporarily remove pilot ability to check re-insertion queue
2024-06-19 20:53:19 -05:00
faf84a0bf2 Merge pull request 'Campaign-Updates-6-9-2024' (#54) from Campaign-Updates-6-9-2024 into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 39s
Reviewed-on: #54
2024-06-19 19:55:03 -05:00
68d793a519 Merge branch 'develop' into Campaign-Updates-6-9-2024 2024-06-19 19:54:49 -05:00
2e67e0e932 Merge pull request 'flag_simpleshape_variety' (#53) from flag_simpleshape_variety into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 45s
Reviewed-on: #53
2024-06-19 19:53:39 -05:00
04546e49f7 Update defines/SupplyCrates.hpp
Increased White Smokes in Squad Ammo Crate
Added M84 tun Grenade to Squad Ammo Crate
2024-06-19 00:36:21 -05:00
8cfebeef10 Update defines/SupplyCrates.hpp
Added Pain Killers to Medical Resupply
2024-06-19 00:32:04 -05:00
8c6c1f6a62 Update defines/SupplyCrates.hpp
Added SIG MCX AMMO
Created a Squad Utility Box with Chems / Smokes / Breaching Items / Cable Ties / Radios
2024-06-19 00:30:56 -05:00
1fea46355a Merge remote-tracking branch 'origin/develop' into flag_simpleshape_variety 2024-06-18 19:07:56 -07:00
de91b61fcc some updates 2024-06-18 19:05:54 -07:00
fedc6f1432 Merge pull request 'wip' (#51) from flag_simpleshape_variety into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
Reviewed-on: #51
2024-06-16 15:45:24 -05:00
b34928c0c3 wip 2024-06-16 15:45:12 -05:00
2d9e5aabef Merge pull request 'Campaign-Updates-6-9-2024' (#50) from Campaign-Updates-6-9-2024 into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 38s
Reviewed-on: #50
2024-06-16 15:41:23 -05:00
87ebbae31c Update defines/ApprovedAssets.hpp
Updated Approved assets.
2024-06-16 15:41:06 -05:00
408228f07b Added Black Hornet Restricted Item 2024-06-16 15:41:06 -05:00
736e90e305 Removed SMA Resupply Items
Removed the following Items from resupply
{"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},
2024-06-16 15:41:06 -05:00
f17fff8363 Asset Change
Removed Athena and Homer, Changed Armed VTOL callsign
2024-06-16 15:41:06 -05:00
64bc303893 Update defines/BattalionInfo.hpp
Updated ECO Callsign
2024-06-16 15:41:06 -05:00
80247a01d0 Update defines/BattalionInfo.hpp
Updated ACO and BCO Callsign
2024-06-16 15:41:06 -05:00
7c8cd6104b wip 2024-06-15 20:01:48 -07:00
7322799b78 add custom sounds support
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 42s
2024-06-15 16:43:56 -07:00
8f89283ceb Added Black Hornet Restricted Item 2024-06-12 00:13:04 -05:00
hizumi
db7bdf1ecd Update fn_createBox.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
fix incorrect ace variable name. fixes #47.
2024-05-26 16:36:47 -05:00
hizumi
0f8783ffa9 add initial dead unit garbage collection
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 40s
2024-05-23 21:21:10 -05:00
af7600ac16 Merge pull request 'develop' (#46) from develop into main
Reviewed-on: #46
2024-04-25 21:41:04 -05:00
hizumi
fac86f18f0 Update CHANGELOG.md
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 42s
version 4.1.2 release notes
2024-04-25 21:36:48 -05:00
hizumi
87b6f359c1 Update fn_addEmptyGroupCleanupPFH.sqf
fix logic order and update logging output
2024-04-25 21:34:34 -05:00
hizumi
cbd8b5963e Update fn_addEmptyGroupCleanupPFH.sqf
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
add more logging as to where the empty group is owned to track down deletion issues
2024-04-21 19:44:19 -05:00
hizumi
09ee014912 Merge branch 'develop' of https://gitea.iceberg-gaming.com/17th-Ranger-Battalion-ORG/MissionTemplate into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 32s
2024-04-21 18:43:09 -05:00
hizumi
5b482b022f Update SupplyCrates.hpp
swap Tier1 5.56 mags to rhs 5.56 mags for mod compatability
2024-04-21 18:42:47 -05:00
hizumi
8afe420527 versioning update
4.1.2
2024-04-21 18:42:25 -05:00
ff98546907 Merge pull request 'main' (#45) from main into develop
All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
Reviewed-on: #45
2024-04-21 18:34:12 -05:00
49 changed files with 799 additions and 170 deletions

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@
# Notepad++ backups # # Notepad++ backups #
*.bak *.bak
.vscode/

View File

@@ -4,6 +4,73 @@ 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.3] - 2025-05-24
### Added
- Warlord Vehicle Flag
### Changed
- Campaign Callsigns
- Equipment Changes
- Supply Crate contents
### Fixed
- Update chat logic handler for new cba settings
## [4.2.2] - 2024-12-23
### Added
- CBA settings to allow disabling of remaining text chat channels
### Changed
- Log triage level on player respawn
- Campaign Callsigns
### Fixed
- Equipment typos
## [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 ## [4.1.1] - 2024-04-19
### Added ### Added

8
custom_sounds.hpp Normal file
View 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[]={};
// };

View File

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

View File

@@ -4,11 +4,11 @@
// Define the callsigns for the Battalion // Define the callsigns for the Battalion
#define COMMAND_CALLSIGN SPARTAN #define COMMAND_CALLSIGN POWERLINE
#define RRC_CALLSIGN TIGER //#define RRC_CALLSIGN TIGER
#define MEDIC_CALLSIGN LIFELINE //#define MEDIC_CALLSIGN LIFELINE
#define ALPHA_CALLSIGN ROGUE #define ALPHA_CALLSIGN KINGPIN
#define ECHO_CALLSIGN FIREBRAND #define ECHO_CALLSIGN WARLORD
#define WPN_CALLSIGN BLACKFOOT #define WPN_CALLSIGN BLACKFOOT
// Define the frequencies for the Battalion // Define the frequencies for the Battalion
@@ -73,26 +73,26 @@ class BattalionInfo {
}; };
class RRC { // WIP // class RRC { // WIP
callsign = RRC_CALLSIGN; // callsign = RRC_CALLSIGN;
shortDescription = "RRC"; // shortDescription = "RRC";
textColor = LVL2_TEXT_COLOR; // textColor = LVL2_TEXT_COLOR;
frequencies[] = { // frequencies[] = {
{"Contact", {}, {FREQ_BATTALION}}, // {"Contact", {}, {FREQ_BATTALION}},
{"Actual", {}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_CAS}} // {"Actual", {}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_CAS}}
}; // };
}; // };
class BattalionMedical { // WIP // class BattalionMedical { // WIP
callsign = MEDIC_CALLSIGN; // callsign = MEDIC_CALLSIGN;
shortDescription = "Battalion Medical"; // shortDescription = "Battalion Medical";
textColor = LVL2_TEXT_COLOR; // textColor = LVL2_TEXT_COLOR;
frequencies[] = { // frequencies[] = {
{"Contact", {FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION}}, // {"Contact", {FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION}},
{"Actual", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_LOGISTICS}}, // {"Actual", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {FREQ_BATTALION, FREQ_ECHO_FLIGHT_LOGISTICS}},
{"General", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {}} // {"General", {FREQ_BATTALION_MEDICAL_INTERCOM, FREQ_ALL_MEDICAL_SR}, {}}
}; // };
}; // };
class WeaponsSquad { // WIP class WeaponsSquad { // WIP
callsign = WPN_CALLSIGN; callsign = WPN_CALLSIGN;

View File

@@ -11,9 +11,9 @@ class DisallowedEquipment {
label = "BLACKLISTED WEAPON OR ITEM"; label = "BLACKLISTED WEAPON OR ITEM";
description = "Items that NO member is allowed to use."; description = "Items that NO member is allowed to use.";
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_PVS15", // 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
@@ -95,8 +95,8 @@ 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
"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
}; };
}; };
@@ -140,12 +140,15 @@ 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
"MRH_TacticalDisplay", //MRH Satellite Display Tablet
"MRH_FoldedSatcomAntenna" //MRH Satellite Satcom
}; };
}; };
class tabbedItems { // Items that are allowed for individuals with Ranger Tab class tabbedItems { // Items that are allowed for individuals with Ranger Tab
label = "TABBED WEAPON"; label = "TABBED ITEM";
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 "optic_tws", // Thermal Optic
@@ -280,7 +283,22 @@ class DisallowedEquipment {
"rhs_weap_m16a4_grip_acog_usmc", //M16 Series "rhs_weap_m16a4_grip_acog_usmc", //M16 Series
"rhs_weap_m16a4_grip_acog2_usmc", //M16 Series "rhs_weap_m16a4_grip_acog2_usmc", //M16 Series
"rhs_weap_m32", //M32/MGL Series "rhs_weap_m32", //M32/MGL Series
"rhs_weap_m32_usmc" //M32/MGL Series "rhs_weap_m32_usmc", //M32/MGL Series
"G3_Multicam_Tee_WARLORD", //Tabbed T-Shirt
"G3_M81_Tee_WARLORD", //Tabbed T-Shirt
"G3_TGR_Tee_WARLORD", //Tabbed T-Shirt
"G3_Multicam_Tee_BLK", //Tabbed T-Shirt
"G3_M81_Tee_BLK", //Tabbed T-Shirt
"G3_TGR_Tee_BLK", //Tabbed T-Shirt
"G3_Multicam_Tee_Tan", //Tabbed T-Shirt
"G3_M81_Tee_Tan", //Tabbed T-Shirt
"G3_TGR_Tee_Tan", //Tabbed T-Shirt
"G3_Multicam_Tee_Gray", //Tabbed T-Shirt
"G3_M81_Tee_Gray", //Tabbed T-Shirt
"G3_TGR_Tee_Gray", //Tabbed T-Shirt
"G3_Multicam_Tee_Green", //Tabbed T-Shirt
"G3_M81_Tee_Green", //Tabbed T-Shirt
"G3_TGR_Tee_Green" //Tabbed T-Shirt
}; };
}; };

View File

@@ -20,25 +20,25 @@ 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},
{"JCA_20Rnd_762x51_PMAG",25},
{"JCA_20Rnd_762x51_Tracer_Red_PMAG",25},
{"KAR_100Rnd_Fury_blk",25},
}; };
items[] = {}; items[] = {};
}; };
@@ -57,11 +57,12 @@ 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},
{"200Rnd_65x39_cased_Box_Tracer_Red",50} {"200Rnd_65x39_cased_Box_Tracer_Red",50},
{"KAR_100Rnd_Fury_RT_blk",50}
}; };
items[] = {}; items[] = {};
}; };
@@ -82,6 +83,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 +134,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 +214,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[] = {};
};
}; };

View File

@@ -84,30 +84,159 @@ class VehicleFlags {
actionID = "flag_simpleshape"; actionID = "flag_simpleshape";
actionTitle = "Simple Shapes"; actionTitle = "Simple Shapes";
class GreenOctagon { class Blue {
actionID = "flag_simpleshape_greenoctagon"; actionID = "flags_simpleshape_blue";
actionTitle = "Green Octagon"; actionTitle = "Blue";
texture = "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa";
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 BlueCircle {
actionID = "flag_simpleshape_bluecircle"; class Green {
actionTitle = "Blue Circle"; actionID = "flags_simpleshape_green";
texture = "textures\simple_shape\flag_simpleshape_bluecircle_co.paa"; actionTitle = "Green";
class GreenCircle {
actionID = "flag_simpleshape_greencircle";
actionTitle = "Green Circle";
texture = "textures\simple_shape\flag_simpleshape_greencircle_co.paa";
};
class GreenOctagon {
actionID = "flag_simpleshape_greenoctagon";
actionTitle = "Green Octagon";
texture = "textures\simple_shape\flag_simpleshape_greenoctagon_co.paa";
};
class GreenPentagon {
actionID = "flag_simpleshape_greenpentagon";
actionTitle = "Green Pentagon";
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 OrangeSquare {
actionID = "flag_simpleshape_orangesquare"; class Orange {
actionTitle = "Orange Square"; actionID = "flags_simpleshape_orange";
texture = "textures\simple_shape\flag_simpleshape_orangesquare_co.paa"; 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 {
actionID = "flag_simpleshape_orangesquare";
actionTitle = "Orange Square";
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 PinkTriangle {
actionID = "flag_simpleshape_pinktriangle"; class Pink {
actionTitle = "Pink Triangle"; actionID = "flags_simpleshape_pink";
texture = "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa"; 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 {
actionID = "flag_simpleshape_pinktriangle";
actionTitle = "Pink Triangle";
texture = "textures\simple_shape\flag_simpleshape_pinktriangle_co.paa";
};
}; };
class RedPentagon {
actionID = "flag_simpleshape_redpentagon"; class Red {
actionTitle = "Red Pentagon"; actionID = "flags_simpleshape_red";
texture = "textures\simple_shape\flag_simpleshape_redpentagon_co.paa"; 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 {
actionID = "flag_simpleshape_redpentagon";
actionTitle = "Red Pentagon";
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";
};
}; };
}; };
@@ -119,6 +248,11 @@ class VehicleFlags {
actionTitle = "17th Emblem"; actionTitle = "17th Emblem";
texture = "textures\flags_misc\flag_17th_emblem_co.paa"; texture = "textures\flags_misc\flag_17th_emblem_co.paa";
}; };
class WarlordEmblem {
actionID = "flag_17th_warlord";
actionTitle = "Warlord Emblem";
texture = "textures\flags_misc\flag_17th_warlord_co.paa";
};
class RedCross { class RedCross {
actionID = "flag_redcross"; actionID = "flag_redcross";
actionTitle = "Red Cross"; actionTitle = "Red Cross";

View File

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

View File

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

View File

@@ -15,14 +15,17 @@ addMissionEventHandler ["HandleChatMessage",
{ {
params ["_channel", "_owner", "_from", "_text", "_person", "_name", "_strID", "_forcedDisplay", "_isPlayerMessage", "_sentenceType", "_chatMessageType"]; params ["_channel", "_owner", "_from", "_text", "_person", "_name", "_strID", "_forcedDisplay", "_isPlayerMessage", "_sentenceType", "_chatMessageType"];
if ( missionNamespace getVariable ["milsim_sideChat", false] ) exitWith{ false };
if (_channel != 1) exitWith { false };
if ( ( admin _owner ) != 0 ) exitWith { false }; if ( ( admin _owner ) != 0 ) exitWith { false };
if ( !isNull ( getAssignedCuratorLogic _person ) ) exitWith { false }; if ( !isNull ( getAssignedCuratorLogic _person ) ) exitWith { false };
if ( (missionNamespace getVariable ["milsim_globalChat", false] ) && ( _channel == 0 ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_sideChat", false] ) && ( _channel == 1 ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_commandChat", false] && ( _channel == 2 ) ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_groupChat", false] ) && ( _channel == 3 ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_vehicleChat", false] && ( _channel == 4 ) ) ) exitWith{ false };
if ( (missionNamespace getVariable ["milsim_directChat", false] ) && ( _channel == 5 ) ) exitWith{ false };
true; true;
} }
]; ];

View File

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

View File

@@ -1,15 +1,33 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
//---------------------
// Global Chat
//---------------------
[
QGVARMAIN(globalChat),
"CHECKBOX",
"Global Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(globalChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//--------------------- //---------------------
// Side Chat // Side Chat
//--------------------- //---------------------
[ [
QGVARMAIN(sideChat), QGVARMAIN(sideChat),
"CHECKBOX", "CHECKBOX",
"Side Chat Text Enabled", "Side Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)], [QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
false, // default value true, // default value
true, // requires restart true, // requires restart
{ {
params ["_value"]; params ["_value"];
@@ -20,7 +38,92 @@
} }
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
//---------------------
// Command Chat
//---------------------
[
QGVARMAIN(commandChat),
"CHECKBOX",
"Command Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(commandChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//---------------------
// Group Chat
//---------------------
[
QGVARMAIN(groupChat),
"CHECKBOX",
"Group Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(groupChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//---------------------
// Vehicle Chat
//---------------------
[
QGVARMAIN(vehicleChat),
"CHECKBOX",
"Vehicle Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(vehicleChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
//---------------------
// Vehicle Chat
//---------------------
[
QGVARMAIN(directChat),
"CHECKBOX",
"Direct Chat Text Enabled",
[QUOTE(SETTINGS_GROUP_NAME), QUOTE(COMPONENT_BEAUTIFIED)],
true, // default value
true, // requires restart
{
params ["_value"];
[
QGVARMAIN(directChat),
_value
] call EFUNC(common,logSettingChanged);
}
] call CBA_fnc_addSetting;
[QGVARMAIN(globalChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(sideChat), false] call CBA_settings_fnc_set; [QGVARMAIN(sideChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(commandChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(groupChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(vehicleChat), false] call CBA_settings_fnc_set;
[QGVARMAIN(directChat), false] call CBA_settings_fnc_set;
diag_log text "[MILSIM] (settings) Custom CBA settings initialized"; diag_log text "[MILSIM] (settings) Custom CBA settings initialized";

View File

@@ -21,6 +21,37 @@ _curators = allMissionObjects "ModuleCurator_F";
_x removeCuratorAddons ["A3_Modules_F_Curator_Lightning"]; _x removeCuratorAddons ["A3_Modules_F_Curator_Lightning"];
} foreach _curators; } 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];

View File

@@ -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
//--------------------- //---------------------

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

View File

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

View File

@@ -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);
///////////////////////////////////////////////////// /////////////////////////////////////////////////////

View File

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

View File

@@ -1,4 +1,4 @@
#define MAJOR 4 #define MAJOR 4
#define MINOR 0 #define MINOR 2
#define PATCHLVL 0 #define PATCHLVL 3
#define BUILD 0 #define BUILD 0

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

View File

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

View File

@@ -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.