mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Added commented 2.18 commands and updated script component
This commit is contained in:
parent
07f055e16d
commit
f63b4088eb
@ -38,13 +38,13 @@ private _timeSinceLastFrag = CBA_missionTime - GVAR(lastFragTime);
|
||||
if (_timeSinceLastFrag < ACE_FRAG_HOLDOFF || {_posASL isEqualTo [0, 0, 0] || _ammo isEqualTo ""}) exitWith {
|
||||
TRACE_3("timeExit",_timeSinceLastFrag,CBA_missionTime,GVAR(lastFragTime));
|
||||
};
|
||||
private _maxFragCount = round linearConversion [0.1, 1.5, _timeSinceLastFrag, ACE_FRAG_COUNT_MIN, ACE_FRAG_COUNT_MAX, true];
|
||||
private _maxFragCount = round linearConversion [ACE_FRAG_COUNT_MIN_TIME, ACE_FRAG_COUNT_MAX_TIME, _timeSinceLastFrag, ACE_FRAG_COUNT_MIN, ACE_FRAG_COUNT_MAX, true];
|
||||
TRACE_3("willFrag",_timeSinceLastFrag,CBA_missionTime,_maxFragCount);
|
||||
|
||||
private _ammoArr = [_ammo] call FUNC(getFragInfo);
|
||||
_ammoArr params ["_fragRange", "_fragVel", "_fragTypes", "_modFragCount"];
|
||||
// For low frag rounds limit the # of frags created
|
||||
if (_modFragCount < 10) then {
|
||||
if (_modFragCount < ACE_FRAG_LOW_FRAG_MOD_COUNT) then {
|
||||
_maxFragCount = _modFragCount * ACE_FRAG_LOW_FRAG_COEFF;
|
||||
GVAR(lastFragTime) = CBA_missionTime - ACE_FRAG_LOW_FRAG_HOLDOFF_REDUCTION;
|
||||
} else {
|
||||
@ -53,10 +53,10 @@ if (_modFragCount < 10) then {
|
||||
// Offset for ground clearance
|
||||
private _heightATL = (ASLToATL _posASL)#2;
|
||||
if (_heightATL < ACE_FRAG_MIN_GROUND_OFFSET) then {
|
||||
_posASL = _posASL vectorAdd [0, 0, ACE_FRAG_MIN_GROUND_OFFSET];
|
||||
_posASL = _posASL vectorAdd [0, 0, ACE_FRAG_MIN_GROUND_OFFSET - (0 min _heightATL)];
|
||||
};
|
||||
|
||||
TRACE_3("fnc_doFragTargeted IF", _fragRange, _timeSinceLastFrag, GVAR(fragSimComplexity));
|
||||
TRACE_3("fnc_doFragTargeted IF",_fragRange,_timeSinceLastFrag,GVAR(fragSimComplexity));
|
||||
if (GVAR(fragSimComplexity) != 1 && _fragRange > 3) then {
|
||||
_maxFragCount = _maxFragCount - ([_posASL, _fragVel, _fragRange, _maxFragCount, _fragTypes, _modFragCount, _shotParents] call FUNC(doFragTargeted));
|
||||
};
|
||||
|
@ -37,11 +37,7 @@ private _hMode = switch (true) do {
|
||||
default {"_mid"};
|
||||
};
|
||||
|
||||
private _type = if (_fragType isNotEqualTo [] && {"ace_frag_tiny" isEqualTo (_fragType#0)}) then {
|
||||
QGVAR(def_tiny_)
|
||||
} else {
|
||||
QGVAR(def_small_)
|
||||
};
|
||||
private _type = [QGVAR(def_small_), QGVAR(def_tiny_)] select (_fragType isNotEqualTo [] && {"ace_frag_tiny" isEqualTo (_fragType#0)});
|
||||
|
||||
_maxFragCount = switch (true) do {
|
||||
case (_maxFragCount <= 5): {"5"};
|
||||
|
@ -129,7 +129,7 @@ private _spallSpawner = createVehicle [
|
||||
"CAN_COLLIDE"
|
||||
];
|
||||
_spallSpawner setVectorDirandUp [_lastVelocityUnit, _vectorUp];
|
||||
_spallSpawner setVelocity (_lastVelocityUnit vectorMultiply (_velocityChange/ACE_FRAG_SPALL_VELOCITY_INHERIT_COEFF));
|
||||
_spallSpawner setVelocity (_lastVelocityUnit vectorMultiply (_velocityChange * ACE_FRAG_SPALL_VELOCITY_INHERIT_COEFF));
|
||||
_spallSpawner setShotParents _shotParents;
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define LOG_FRAG_INFO
|
||||
// #define DEBUG_MODE_FULL
|
||||
#define DEBUG_MODE_FULL
|
||||
// #define DEBUG_MODE_DRAW
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
@ -18,19 +18,31 @@
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
// Mimimum hold-off time between frag events globally or per vehicle
|
||||
#define ACE_FRAG_HOLDOFF 0.25
|
||||
#define ACE_FRAG_HOLDOFF_VEHICLE 1
|
||||
#define ACE_FRAG_SPALL_HOLDOFF 0.25
|
||||
// Scaling for the min/max # of fragments since last frag event
|
||||
#define ACE_FRAG_COUNT_MIN_TIME 0.1
|
||||
#define ACE_FRAG_COUNT_MIN 5
|
||||
#define ACE_FRAG_COUNT_MAX_TIME 1
|
||||
#define ACE_FRAG_COUNT_MAX 50
|
||||
// Default hitpoint targets
|
||||
#define ACE_FRAG_HITPOINTS ["spine1", "spine1", "spine1", "spine2", "spine2", "spine2", "spine3", "spine3", "spine3", "pelvis", "pelvis", "pelvis", "head", "leftarm", "leftarmroll", "leftforearm", "rightarm", "rightarmroll", "rightforearm", "leftupleg", "leftuplegroll", "leftlegroll", "leftfoot", "rightupleg", "rightuplegroll", "rightleg", "rightlegroll", "rightfoot", "neck"]
|
||||
// sqrt(2)/50
|
||||
#define ACE_FRAG_ROUND_COEF 0.02828427
|
||||
// half of gravity approx 9.81/2
|
||||
#define ACE_FRAG_HALF_GRAVITY_APPROX 4.905
|
||||
// Lowest chance to hit of 0.5%
|
||||
#define ACE_FRAG_MIN_FRAG_HIT_CHANCE 0.005
|
||||
#define ACE_FRAG_MIN_GROUND_OFFSET 0.25
|
||||
// Make frag hold-off time shortger for low frag
|
||||
// value of 150/4/pi ~= 11.93662
|
||||
#define ACE_FRAG_LOW_FRAG_MOD_COUNT 11.93662
|
||||
#define ACE_FRAG_LOW_FRAG_COEFF 4
|
||||
#define ACE_FRAG_LOW_FRAG_HOLDOFF_REDUCTION 4
|
||||
#define ACE_FRAG_SPALL_VELOCITY_INHERIT_COEFF 2
|
||||
// Max frag distance - correlates to a a fragCount of 20k & hit chance of 0.5%
|
||||
#define ACE_FRAG_MAX_FRAG_RANGE 565
|
||||
|
||||
// Spall values
|
||||
#define ACE_FRAG_SPALL_HOLDOFF 0.25
|
||||
#define ACE_FRAG_SPALL_VELOCITY_INHERIT_COEFF 0.5
|
||||
// sqrt(2)/50
|
||||
#define ACE_FRAG_ROUND_COEF 0.02828427
|
Loading…
Reference in New Issue
Block a user