Compare commits

..

16 Commits

Author SHA1 Message Date
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
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
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
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
14 changed files with 231 additions and 37 deletions

View File

@@ -4,6 +4,14 @@ 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.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 STORMSURGE
#define RRC_CALLSIGN TIGER #define RRC_CALLSIGN TIGER
#define MEDIC_CALLSIGN LIFELINE #define MEDIC_CALLSIGN LIFELINE
#define ALPHA_CALLSIGN ROGUE #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

View File

@@ -140,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_F" // Black Hornet Drone Mod
}; };
}; };

View File

@@ -26,13 +26,8 @@ class SupplyCrates {
{"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},
@@ -57,7 +52,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},

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

View File

@@ -21,6 +21,23 @@ _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 {};
if not (isInRemainsCollector _unit) exitWith {};
// format["%1 from group %2 died at %3", _unit, group _unit, [datetime] call BIS_fnc_timeToString] remoteExec ["systemChat"];
_unit setVariable["milsim_death_time", time];
// _unit addEventHandler ["Deleted", {
// params ["_entity"];
// isGC = _entity getVariable["milsim_garbage_collected", false];
// format["%1 from was deleted by custom gc: %2", _entity, str isGC ] remoteExec ["systemChat"];
// }];
}];
// 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;
},
180,
[],
{ // 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

@@ -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 1
#define PATCHLVL 0 #define PATCHLVL 2
#define BUILD 0 #define BUILD 0