Compare commits
9 Commits
baf2f5ecf8
...
87ebbae31c
| Author | SHA1 | Date | |
|---|---|---|---|
| 87ebbae31c | |||
| 408228f07b | |||
| 736e90e305 | |||
| f17fff8363 | |||
| 64bc303893 | |||
| 80247a01d0 | |||
|
7322799b78
|
|||
|
|
db7bdf1ecd | ||
|
|
0f8783ffa9 |
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[]={};
|
||||||
|
// };
|
||||||
@@ -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 {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
},
|
||||||
|
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;
|
||||||
@@ -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;
|
||||||
Reference in New Issue
Block a user