Closed freghar closed 3 years ago
I was curious about the exact value, so I narrowed it down to
// 6.2939312 bad
// 6.2939311 good
for B_65x39_Caseless
.
Experimenting more with various other values in CfgAmmo
revealed that this is dependent on typicalSpeed
as well, it being 820
for B_65x39_Caseless
.
The logical conclusion is that the barrier for alerting other units isn't the hit
value, but rather damage dealt to the soldier as increasing typicalSpeed
reduces the time the bullet spends within the boundary of the soldier body and thus deals less damage.
Doing a simple
test_alldamage = "";
this addEventHandler ["HandleDamage", {
params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"];
test_alldamage = test_alldamage + format ["sel: %1 ; hit: %2", _selection, _damage] + toString [10];
copyToClipboard test_alldamage;
}];
and plugging in my "known good" edge value gave me
sel: head ; hit: 0
sel: ; hit: 0.0999997
sel: ; hit: 0.0999997
sel: spine2 ; hit: 0.357258
sel: body ; hit: 0.000322324
for a single shot. This pretty clearly indicates that the magic number is 0.1 damage done to some selection/hitpart.
The unfortunate conclusion being that there's no one value I could use for custom ammo to avoid the alert, since the 0.1 damage will differ based on armor carried by the target (tested, proven true) as well as shot distance, body part hit (alert happening when hit from the side where armor doesn't protect the soldier), etc.
Maybe the 0.1 value is somewhere in the config, but I haven't found it yet amongst the sea of 0.1 values for other things.
I've searched through the full vanilla config and found a few interesting keywords,
armor=0.1;
interval=0.1;
lifeTime=0.1;
minimalHit=0.1;
groundNoiseDistanceCoef=0.1
passThrough=0.1;
Feedback=0.1;
armor=-0.1;
dampingRate=0.1;
explosionShielding=0.1;
fireLightCoef=0.1;
start=0.1;
power=0.1;
start=0.1;
coefMin=0.1;
collisionSize=0.1;
constantDistance=0.1;
coreDistance=0.1;
damageTime=0.1;
damperSize=0.1;
killFriendlyExpCoef=0.1;
maxAmp=0.1;
permanent=0.1;
switchTime=0.1;
temporary=0.1;
value=0.1;
BleedingInjuryMinProjectile=0.1;
InjuredTreshold=0.1;
MinValue1=0.1;
out of which BleedingInjuryMinProjectile
(at least) seemed pretty promising. Setting it to a higher value yielded no effect.
I've also explored class HitPoints
of CAManBase
and tried increasing minimalHit
from 0.01
to ie. 0.8
, which predictably resulted in <0.8
damage to those selections being ignored, but the name-less selection still received 0.1 damage and alerted nearby units.
I also confirmed that the damage value for the name-less selection changes (is not just a constant) and the alert happens on the 0.1 threshold:
// no alert
idx: -1 ; sel: ; hit: 0.0999924
// alert
idx: -1 ; sel: ; hit: 0.100026
Changing CfgFirstAid
and valRangeMult
did scale damage done to the name-less selection, but the alert still happened on 0.1.
This leads me to believe it's something internal to the engine and not tweakable via config, unfortunately.
The engine seems to have a magical value of
hit=6.2
(or smaller) inCfgAmmo
for which it does not alert everybody in 80m radius when a soldier gets hit (without getting killed outright). Whether this isDCScream
(removed in A3) or not is unclear. This means that only 9mm ammo (hit=5
) can be used on CQB stealth missions, which is a shame.Create some 5.56mm (and make it RHS compatible via
asdg
) and 6.5mmCfgAmmo
withdangerRadiusBulletClose
anddangerRadiusHit
equal to 9mm,hit=6.2
, and perhaps adjust speed to be sub-sonic (and remove sonic cracks // use existing base class without sonic cracks) and make it tracer-less or with IR tracers.This would allow some weapon variety, retain original
caliber
, and not break stealth missions.