9:11:15 [302359,[bob,"head",0.032586,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",2,B Alpha 1-1:1 (KK_DEV),"hithead",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"face_hub",0.0264274,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",0,B Alpha 1-1:1 (KK_DEV),"hitface",false,false]]
9:11:15 [302359,[bob,"neck",0.128764,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",1,B Alpha 1-1:1 (KK_DEV),"hitneck",false,false]]
9:11:15 [302359,[bob,"head",0.032586,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",2,B Alpha 1-1:1 (KK_DEV),"hithead",false,true]]
#arma3_feedback_tracker
1 messages · Page 10 of 1
How can you tell which HandleDamage calls are for real damage and which ones are bullshit?
the one that start with false and finishes with true
Also why do you have both HitHead and bleeding overall on the same frame as real HandleDamage, it was always 1 frame before 🤔
the first true after false is the end of real hitpoint damage
not sure I understand
Look at my screenshot, bullshit HandleDamage calls (HitHead + Overall) are 1 frame before real HandleDamage calls
Your log has it all on the same frame
Maybe its because of explosion damage compared to bullet hit in my test?
direct vs splash
lemme test
dunno it is the same function internally
Okay, how do you tell which one of these is real damage and which is bleeding?
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
Another issue is that bleeding EH fires with DELTA of damage, not TOTAL damage
first one before hitpoints is the one that is not bleeding
What if you didn't have any hitpoints?
then it will be first
Damage in cars for example, its always applied without hitpoints
You get double -1 HD fire
I can change true false for 01234
each one will mean something then you will see which is which
Tested it, its true
lemmie have some coffee and think of number assignment
You get fake HitHead+Overall on frame 1 and Real Overall+Hitpoints on frame 2 for direct projectile damage
And everything on same frame for explosive damage
there are literally like 4 places it is all called from so if we have a number for each you can figure out which is which
For direct hits you get bullshit HD one frame before real HD
For splash damage hits you get all HDs in the same frame
Also notice that I had 2 sets of HDs, that's because it was one bullet hitting the unit twice (shot through 2 legs)
9:11:15 [302359,[bob,"head",0.032586,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",2,B Alpha 1-1:1 (KK_DEV),"hithead",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"head",0.032586,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",2,B Alpha 1-1:1 (KK_DEV),"hithead",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"face_hub",0.0264274,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",0,B Alpha 1-1:1 (KK_DEV),"hitface",false,false]]
...
9:11:15 [302359,[bob,"legs",0.0986218,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",10,B Alpha 1-1:1 (KK_DEV),"hitlegs",false,false]]
9:11:15 [302359,[bob,"body",0.000262741,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",11,B Alpha 1-1:1 (KK_DEV),"incapacitated",false,true]]
9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
9:11:15 [302359,[bob,"face_hub",0.0264274,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",0,B Alpha 1-1:1 (KK_DEV),"hitface",false,false]]
...
9:11:15 [302359,[bob,"legs",0.0986218,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",10,B Alpha 1-1:1 (KK_DEV),"hitlegs",false,false]]
9:11:15 [302359,[bob,"body",0.000262741,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",11,B Alpha 1-1:1 (KK_DEV),"incapacitated",false,true]]
This is how your log would look like in this case
lots of isLast=true at first
... are omitted isLast=false fires
let me change to numbers and then I can run a test case, you can prepare test mission in meanwhile
[FAKE] 9:11:15 [302359,[bob,"head",0.032586,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",2,B Alpha 1-1:1 (KK_DEV),"hithead",false,true]]
[FAKE] 9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
[FAKE] 9:11:15 [302359,[bob,"head",0.032586,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",2,B Alpha 1-1:1 (KK_DEV),"hithead",false,true]]
[FAKE] 9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
[REAL] 9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
[REAL] 9:11:15 [302359,[bob,"face_hub",0.0264274,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",0,B Alpha 1-1:1 (KK_DEV),"hitface",false,false]]
[REAL] ...
[REAL] 9:11:15 [302359,[bob,"legs",0.0986218,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",10,B Alpha 1-1:1 (KK_DEV),"hitlegs",false,false]]
[REAL] 9:11:15 [302359,[bob,"body",0.000262741,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",11,B Alpha 1-1:1 (KK_DEV),"incapacitated",false,true]]
[REAL] 9:11:15 [302359,[bob,"",0.0276777,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",-1,B Alpha 1-1:1 (KK_DEV),"",false,true]]
[REAL] 9:11:15 [302359,[bob,"face_hub",0.0264274,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",0,B Alpha 1-1:1 (KK_DEV),"hitface",false,false]]
[REAL] ...
[REAL] 9:11:15 [302359,[bob,"legs",0.0986218,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",10,B Alpha 1-1:1 (KK_DEV),"hitlegs",false,false]]
[REAL] 9:11:15 [302359,[bob,"body",0.000262741,B Alpha 1-1:1 (KK_DEV),"GrenadeHand",11,B Alpha 1-1:1 (KK_DEV),"incapacitated",false,true]]
@solid marten Here is my repro mission that semi-neatly prints HandleDamage and some other data on the screen
This one
Shooting through 2 legs, you get 2 hits and 2 sets of HandleDamage
Except it first does 2 sets of fake fires, then 2 sets of real ones
Can it be a string so it hopefully in future can be used to determine damage kind?
So HitHead can be "BULLSHIT", Overall for bleeding be "BLEEDING", and proper damage be say "" for now
Maybe in future damage packets can be marked with a flag of damage kind so HandleDamage can end up reciving it?
"SHOT" - direct hit damage
"SPLASH" - splash damage (if possible to distinguish)
"FIRE" - Particle damage
"EPE" - EPE collision
"EPE-CREW" - EPE collision propogated to crew?
"FALL" - Unit fall damage
"DROWN" - Drowning damage
"ROADKILL" - Unit collided with a moving entity (roadkills too)
"ROTOR" - This new rotor damage
```List of most damage sources in the game and suggested string to label it
Not sure if this is possible at all, but at least distinguishing bullshit HandleDamage fires from real damage will be a great help
i assume im never going to get setobjectscale working "properly" on units in mp and theres no point ticketing it
(if client is not server, setobjectscale even if eachframed does not work on any units)
Fixed that empty _handle_damage column
Expanding on this, even if damage packets can't hold damage kind flag, maybe at least some local-only damage can be marked, namely: FIRE
Disabling fire damage been an issue of mind since day 1 of Arma 3
getBurningValue is no help with it because it indicates something completely different (staying near fire particle source or something), while in game actual particles do the damage and they can be far away from source for getBurningValue to have any value
And this fire particle damage is identical to fall damage in its HandleDamage properties, almost no way to distinguish it from
what am i doing
You mean in my test mission? Just shoot that AI unit and have HandleDamage appear on the screen separated by a frame counter
Shoot through 2 legs at once, notice fake HitHead and Overall damage separated from normal HandleDamage fires
I suggest having a new parameter sent into HandleDamage with damage kind string, so it can be used to tell fake HandleDamage fires from real ones for start, maybe use it for more damage identification in future
{
CollisionHeadHit,
TotalDamage,
FirstHitPoint,
HitPoint,
LastHitPoint,
TotalDamageBeforeBleeding
};```
Is it really collision? You get it from shooting, grenade splash damage, etc.
Also it is not total damage before bleeding, it is DELTA damage of total damage
How much total damage got added
Say you had 0.8 total damage, got shot for 0.1 total damage, it will fire like this:
- Bleeding overall: 0.1
- Real overall: 0.9
Either way these context numbers are really useful
@regal nimbus gotta see this
Try shooting with 1 bullet through both legs at once, will it assign numbers properly?
oh it went through on different frames, you probably have high FPS with vsync off
Try doing FPS cheat so its done on the same frame?
what do you mean
Frame 154349
Frame 154350
Frame 154351
Bullet hit first leg on 1st frame, second leg on 2nd frame
If you lower your FPS it will hit both legs on the same frame
You can see 2 legs hit on the same frame on this screenshot
169939 for real HandleDamage calls on both legs
Btw just noticed
11:10:56 ---------------------------------------------------------
11:10:56 "Frame 154351: [[[ -1 ]]], HandleDamage: B_soldier_exp_F, alive=true, bleeding=57.409"
11:10:56 ["B Alpha 1-2:1 (B_soldier_exp_F)","",1.18216,"B Alpha 1-3:1 (KK_DEV) (B_Soldier_F)","B_65x39_Caseless",-1,"B Alpha 1-3:1 (KK_DEV) (B_Soldier_F)","",true,1]
11:10:56 ---------------------------------------------------------
11:10:56 "Frame 154351: [[[ 10 ]]], HandleDamage: B_soldier_exp_F, alive=false, bleeding=57.409"
11:10:56 ["B Alpha 1-2:1 (B_soldier_exp_F)","legs",1.13707,"B Alpha 1-3:1 (KK_DEV) (B_Soldier_F)","B_65x39_Caseless",10,"B Alpha 1-3:1 (KK_DEV) (B_Soldier_F)","hitlegs",true,3]
11:10:56 ---------------------------------------------------------
11:10:56 "Frame 154351: [[[ 11 ]]], HandleDamage: B_soldier_exp_F, alive=false, bleeding=57.409"
11:10:56 ["B Alpha 1-2:1 (B_soldier_exp_F)","body",1,"B Alpha 1-3:1 (KK_DEV) (B_Soldier_F)","B_65x39_Caseless",11,"B Alpha 1-3:1 (KK_DEV) (B_Soldier_F)","incapacitated",true,4]
TotalDamage
HitPoint
LastHitPoint
no FirstHitPoint
What happens if there is say just a single hit point?
so this means there has to be firstandlast hitpoint choice as well in case only 1 hitpoint calculated
you sure?
Say we had 3 packets:
Total: 0.1
Total: 0.2
HitPoint1: 0.2
Total: 0.3
HitPoint1: 0.3
HitPoint2: 0.3
event handlers will fire like this (ignoring HitHead and bleeding for simplicity):
[1] TotalDamage (0.1)
[2] TotalDamage (0.2)
[2] LastHitPoint (0.2)
[3] TotalDamage (0.3)
[3] HitPoint (0.3)
[3] LastHitPoint (0.3)
``` (square brackets are packet numbers)
You gonna script-track all this though
Save what type last handle damage packet had this frame, etc
ok lemmie see
Scripting logic could be the following:
if(
last_eh_ctx == TotalDamage &&
this_eh_ctx in [HitPoint, LastHitPoint]
) then {
// this is a first hit point
} else {
// this is a middle or last hit point (Check with this_packet_ctx == LastHitPoint)
};
Actually, frame check might not be needed, you can't have hit points EH without overall EH even if overall got 0 damage, it ALWAYS fires. Changed my scripting logic snippet
So if you had this damage packet happen:
Total: 0
HitPoint1: 0.2
You will get 2 EH fires, 0 for overall and 0.2 for HitPoint1
So if your EH context is HitPoint or LastHitPoint AND previous EH was TotalDamage it is 100% first hit point after overall damage fire
Hope I make sense here
{
HeadHit,
HitPoint,
LastHitPoint,
TotalDamage,
TotalDamageBeforeBleeding
};```
@gaunt depot shot in legs
Nice!
I'd swap around enum indexes though
like what
enum class HandleDamageCtx
{
TotalDamage,
HitPoint,
LastHitPoint,
HeadHit,
TotalDamageBeforeBleeding
};
So normal context indexes are 0-1-2
And weird ones are >2
no problem
What do you think about that damage kind string idea? Is it even possible to some extent? It is really hard to tell self damage types from either other.
too slow
10 years too late?
no I mean using string
I'd be fine with enums too
Like here is currently an impossible task: Tell if damage came from fire particles
You get source=unit, instigator=null and that's it
I haven't been following the conversation, but isn't this what the new damage context param supposed to do?
Sort of but not really, it won't be able to hold fall damage context for example
Because you'll need stuff like:
FallDamageTotalDamage
FallDamageHitPoint
FallDamageLastHitPoint
because fall damage does damage to hit points
damage kind gonna need a separate parameter
Last I heard, the check for detailed damage types isn't available to handleDamage (this is why its directHit param doesn't work the same as hitPart's).
It'd be great if we can get that info in handleDamage, but the history suggests it's not possible.
Do you mean that isDirect bool in HandleDamage?
there is only handfull of calls to handleDamage so we have them enumed
Yes.
The one in hitPart can actually distinguish splash damage, but handleDamage's one just catches all sorts of damage where there's no known source. In the process of adding the isDirect flag to handleDamage, I was told that the more detailed check is only available for hitPart, and adding it to handleDamage was not practical. That's why we ended up getting the less specific flag for handleDamage.
What is that directHit flag in HandleDamage is exactly?
If the damage came from projectiles?
direct bullet hit or indirect i suppose
I edited its description because its it not just for fall damage but for a lot of stuff, but what is it true for?
Basically CfgAmmo sourced damage?
/// is stored damage indirect or penetration type
bool isIndirect;
Related discussion starts here: #community_wiki message
Related ticket: https://feedback.bistudio.com/T79970
So it is true for direct projectile hits and false for everything else
Yeah, so it is false engine-side for projectile penetrating damage, and true for anything else: fall damage, splash damage, drowning, fire, crash damage, epe, etc.
wiki description needs to be updated so it is more clear
Wish this parameter was a start for a proper damage source kind identification, but it is what it is
Maybe this damage kind could've been in selection parameter
I repurpose it when its empty so determine what kind of damage it was
#epe, #roadkill, even tracking ESC menu respawn button for #respawn damage type
According to dedmen at the time (see Discord link above), splash damage is counted as "direct" in handleDamage
this is what handle damage returns:
bool IsDirectHit() const {return valueRange <= 0.0f;}
where
float valueRange; // in most cases it's ammo::indirectHitRange, for direct hit it have negative valueRange
Didn't read the whole thing but you can see its false for splash damage right now
it would have been cool to know that had been changed, given he said it wasn't going to happen :U
class R_PG7_F: RocketBase
{
hit = 95;
indirectHit = 13;
indirectHitRange = 3.6;
0:54:14 ---------------------------------------------------------
0:54:14 "Frame 1757495: [[[ -1 ]]], HandleDamage: B_soldier_exp_F, alive=true, bleeding=0"
0:54:14 ["B Alpha 1-2:1 (B_soldier_exp_F)","",66.8949,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","R_PG7_F",-1,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","",true]
0:54:14 ---------------------------------------------------------
0:54:14 "Frame 1757495: [[[ 0 ]]], HandleDamage: B_soldier_exp_F, alive=false, bleeding=89.993"
0:54:14 ["B Alpha 1-2:1 (B_soldier_exp_F)","face_hub",1.99336,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","R_PG7_F",0,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","hitface",true]
0:54:14 ---------------------------------------------------------
0:54:14 "Frame 1757495: [[[ 1 ]]], HandleDamage: B_soldier_exp_F, alive=false, bleeding=89.993"
0:54:14 ["B Alpha 1-2:1 (B_soldier_exp_F)","neck",1.06742,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","R_PG7_F",1,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","hitneck",true]
0:54:14 ---------------------------------------------------------
0:54:14 "Frame 1757495: [[[ 2 ]]], HandleDamage: B_soldier_exp_F, alive=false, bleeding=89.993"
0:54:14 ["B Alpha 1-2:1 (B_soldier_exp_F)","head",0.685568,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","R_PG7_F",2,"B Alpha 1-1:1 (Sa-Matra) (B_Soldier_F)","hithead",true]
...
R_PG7_F has indirectHitRange > 0 and fires directHit = true
oh it probably uses negative value thus <= 0.0f makes it working
RPG-7 direct hit to a soldier
directHit is always true
(_is_direct column on the screenshot)
{
// direct hit
// some reasonable calculation of hit area for direct hit
if (damageContext.valueRange == 0.0f)
{
Fail("Obsolete direct damage value");
damageContext.valueRange = 2.0f * damageContext.value;
saturateMin(damageContext.valueRange, objRadius);
}
else
damageContext.valueRange = -damageContext.valueRange; // direct hit have negative valueRange
// some examples:
// 6 m for bullet (3mm direct) on soldier (1mm) - do not care, he is dead anyway
// 0.2m for grenade (20mm direct) on M60 (250mm)
// 1.6m for AT3 (200mm direct) on M60 (250mm)
#if DAMMAGE_DIAGS
LogF(" val %.3f valRange %.3f objRadius %.3f",val,valRange,objRadius);
#endif
// calculate total armor mass
float avgDammage = damageContext.value * Square(damageContext.valueRange / objRadius);
result.damage += avgDammage;
}```
Always except that one single HitHead fake fire 
damageContext.valueRange = -damageContext.valueRange; // direct hit have negative valueRange
```yeah this line explains it
so directHit in HandleDamage is true for direct CfgAmmo projectile hits, false for everything else
Gonna tweak the wiki
One of these is not like the other
All these HandleDamage fires on frame 1782697 are bullshit fires anyway, don't really care to figure why directHit is false there suddenly
@solid marten
Anyway, big thanks for introducing these context indexes, gonna make things much easier for damage tracking
This bleeding calculation is badly MP compatible btw, when you shoot remote unit, you calculate their bleeding, but they don't
So they bleed on your client, but they don't bleed themselves
You can use same mission to test that, it prints bleeding value over units
This one
if you gonna have forceAllHitpointsDamageSync you need to know when the last hitpoint is processed
Ohh, a new command
I was just going to do that at the end of the frame
looks like the most sensible option to sync everything
it does sync fine when you are not using scripts
Does it store all consequent damage packets that were applied to the static building or something?
So instead of getting actual building damage state from the server, JIP gets history of all damage that was applied to it and re-applies it to fresh static building?
no the init message is overwritten with new value
Okay, makes sense then. I guess to account for all cases of scripted damage there ought to be a command to force sync the damage for JIP
I guess the other option would be having some kind of engine-side entity list that fills up when you execute scripted damage commands OR modify the damage through HandleDamage (or just have the EH added at all), then walk through that list and overwrite init message damage again.
Pretty much what I was going to do: Fill a list with entities when HandleDamage on static buildings fires, then execute that new command on frame end.
I assume it will be server-side only command?
does it need to be?
it seems if you use -autoInit but have NOT set persistent=1;, A3 server doesnt connect to Steam and thus cant be found - worth a ticket?
sure
It is not possible to heal player by First Aid Kit to "Treat unit" action hide, seems due damage values desync in MP
getDammage returns 0.25 if code executed by injured unit and 0.248031 if it is a healer
https://feedback.bistudio.com/T172860
made a private ticket as the armahosts setup info probably should not be public: https://feedback.bistudio.com/T178029
Two important parts:
- on my local test setup i do get a warning to server console and its log - for some reason not with the armahost setup
- should the server init fail with the faulty combo (current design), or rather continue launching the server regardless - latter might be more sensible. however autoInit may or may not lead to a different server handling
@sinful kettle https://feedback.bistudio.com/T178032 After the discussion in scripting, made one
Not sure, with properly coded mission run-time damage handling on static buildings should result in same damage state on both clients and servers. In this case you'll only need to sync it to JIP to correct unhandled damage, and server is the best place for it.
Can there be a viable case to have one client calculate damage differently from other clients and server and then broadcast damage state with that command?
spam comment or not? ☯️
It seems like you're encountering some discrepancies between the expected combat
modes and the actual results when units are set to flee in the game. If the
documentation states that fleeing units in combat mode "red" will be set to
"yellow" to avoid engaging enemies, but you're observing the mode returning as
"COMBAT" or "UNCHANGED," there might be a few things to consider.Firstly, ensure that the documentation you're referring to is up to date and
corresponds to the game version you're using. Sometimes, game updates or patches
might alter certain behaviors or scripting commands. If the documentation is
current, then this might be an issue or bug with the game's event handler not
correctly reporting the changed combat modes.Your approach using an event handler to track the "CombatModeChanged" is sound,
but as you suspect, it might be returning a different parameter than expected.
It could be beneficial to double-check the game's scripting commands and see if
there are any known issues or updates around the combat mode or event handlers.In situations like this, reaching out to the community or the game's support
with your findings can often lead to clarification or acknowledgment of a bug.
Sharing your code, what you expected, and what you received might help others
replicate the issue or provide a solution. Your detailed observation and
systematic approach to identifying the problem is crucial in helping improve the
game's mechanics or documentation for everyone. Keep experimenting and sharing
your findings!Regards
James from Mario Games <https://www URL com/c/mario/>
They are getting better
- Is it possible to make
forceFlagTextureto work with simple objects? - Is it possible to make
getObjectTexturesto work with simple objects? (you can set simple object textures withsetObjectTexture)
Ofc spam, only bot would use a word like "discrepancy"
When executing
load3DENScenario "MyMission.VR";
I get Error Invalid scenario name format
I guess that error msg also pops up if scenario couldn't be found?
/ Its a mission name
// input is mpmissions/mission.VR
// Eden actually only wants the mission.VR, and the mpmissions is part of base directory
// BaseSubdirectory = "mpmissions\\SubFolderTest\\"
// missionName = test.VR
so I guess it should be missions\MyMission.VR?
That makes sense. I thought it would look for folder name recursivly from missions/..
Guess the example is wrong then.
can you test this to make sure it works?
Gimme a sec. I will test multiple cases
ok. I'll leave the biki update up to you then 😛
Ufff
Existing missions:
missions\MyMission.VR
mpmissions\MyMPMission.VR
load3DENScenario toLower "missions\MyMPMission.VR"; //Loads scenario, but breaks Eden Interface (might be mod related, but I guess some EH is not firing, need to test more). Not sure if this should work at all as this mission is not in "missions" folder
load3DENScenario toLower "mpmissions\MyMPMission.VR";//Loads scenario and doesn't break Eden Interface. This is what I'd expect
load3DENScenario toLower "missions\MyMission.VR";//Loads scenario as expected
load3DENScenario toLower "mpmissions\MyMission.VR";//Loads scenario, but breaks Eden Interface.
The toLowerwas just for testing. Without it, results are the same
This is how Eden looks if I talk about "breaking interface"
I'll test without 3den Enhanced now.
Yeah, as I guessed. Without mods, the interface stays intact. I am pretty sure it's related to the 3DEN Eventhandlers as I do most of the stuff in 3den Enhanced with it.
Ah ok
the code triggers the 3DEOnTerrainNew EH
If I load the MP mission with
load3DENScenario toLower "mpmissions\MyMission.VR";
(the mission does not exist in this folder)
and press "save" it will save it to missions folder instead of mpMissions
Well, that's wrong
It should only do that if terrain differs from current terrain and it also needs to trigger "onMissionLoad" EH
yeah it triggers if you're not in that terrain. my bad
and "onMissionLoad"?
it only triggers the event if the load is successful
because load is not successful
It returns true though
there's another code. it's different from the script command
(mission is loaded async)
idk as well
is there a loadNew3denScenario?!
then I guess it should check
I mean
it does check world missions doesn't
What's the point of it returning true/false if it just creates and loads anything you throw at it
// load3DENScenario toLower "missions\TESTsdfsdfsdfsdfMyMPMission.VR";
//true
I wonder
does fileExists work
Doesn't seems so.
well I'll fix it in the game code. no need to hack things 
well, fileExists wouln't be hacky if it worked for missions/mpmissions
Do you need a ticket, or was there one already?
there's this:
https://feedback.bistudio.com/T175775
I'll just link to that. no need then
btw do you know what's the config entry for world missions?
Not sure what you mean.
the mission that loads when you load into a world (in main menu)
actually I don't have to check that. nvm
cfgWorlds>world>cutscenes I think
uhmm has CBA been taken down?! it's gone from my workshop folder 
omg...Steam has removed half my mods when I launched the dev account 
Pls don't scare me like this
blocked for cheating 😉
is drawIcon3D's drawSideArrows param not including the icon itself an engine limitation, oversight or just design decision? would be nice for hud stuff to be able to have the icons still be shown at the side without additional clutter 😅
Design decision
Showing the icons at the side doesn't make much sense to me
It is possible to make for switch(play)Move param to start animation in selected Time or Phase?
player switchMove ["AmovPpneMstpSrasWrflDnon", 2] //start animation from 2 sec
And can be also added a ability to freeze unit in a selected Time/Phase
player switchMove ["AmovPpneMstpSrasWrflDnon", [2, true]] //boolean means start animation from this time if FALSE or freeze in this Time or Phase is TRUE
I think it be a good thing to make unit in a static poses and drop the ebableSimulation exec for it
playMove no. switchMove maybe
There already was a ticket
@gaunt depot ``` _x spawn {
waitUntil {!isNil{missionNamespace getVariable _this}};
missionNamespace getVariable _this addEventHandler ["HandleDamage", {
if (_this select 9 == 2) then {_this spawn {if (isServer) then {forceHitpointsDamageSync (_this select 0)}}};
if (_this select 7 find "glass" >= 0) then {_this select 2} else {0};
}];
};```
seems to do the trick, but I advise against using handle damage on static buildings, it could mess with damage handlinng in unpredictable way
helpful for slightly more important data, quest markers etc without having to have the additional clutter of text with those
ticket plz
"Elon Musk Keto Gummies– IS IT SCAM OR REAL PRODUCT?"
Jesus Christ!
i want to know now
Elon Musk
scam
looks like every preprocessor thing still works in single quotes '
so unfortunately I don't think I can fix this, for backward compatibility.
one example would be this (tho not sure if someone even does this at all):
#define MACRO 1
_script = '
systemChat "MACRO"
';
call compile _script;
if I ignore double quotes " in single quotes ', _script will print 1 instead of MACRO
also to expand your ticket, there are many more cases that will break the preprocessing, for example:
'// this becomes a comment'
it'll PP into just ', so compile error
breaking people's PP definitely seems bad
How does it work under the hood if executed on client? It sends damage state to server and server pushes it for future JIP players?
Does it send entire damage state at once?
I guess instead of calling it many times inside HandleDamage the better idea would be doing something like:
buildingsToUpdate = [];
...
_x spawn {
waitUntil {!isNil{missionNamespace getVariable _this}};
missionNamespace getVariable _this addEventHandler ["HandleDamage", {
if (_this select 9 == 2) then {_this spawn {if (isServer) then {buildingsToUpdate pushBackUnique (_this select 0);}}};
if (_this select 7 find "glass" >= 0) then {_this select 2} else {0};
}];
};
```and later in `EachFrame` MEH:
```sqf
{forceHitpointsDamageSync _x} forEach buildingsToUpdate;
buildingsToUpdate resize 0;
In case there is double damage on the same frame (bullet hitting each wall going through building will trigger several HandleDamage cycles)
If server and clients will produce same outcome with HandleDamage on static buildings, is it better to only do this sync on server side?
it sends 2 messages if static object or 1 message if normal. when static, 1 message overwrites server init so that JIP get the same values, and 1 message that sends current hitpoints values anddamage to everyone but the caller
it sends array with all hitpoints so you only need to send it once
Hmm, if server and client are running identical HandleDamage code, won't it be more optimal to run this command only on server and only overwrite server init for JIP, without broadcasting it to live clients?
BOOL forceHitpointsDamageSync ENTITY ? with BOOL operand being JIP-only flag for server-side?
yes I'dsay better to use server side but if your object is not local to the server it wont work as it only works with local objects
Non-static objects are already synced by the game pretty well, I don't see this command being useful for them?
bool is so that you know the sync was attempted, false when null object or not local
or not entity
meant left operand argument to only do JIP message overwrite without broadcast for server-side
hitpoints are entity thing, anything lower than entity obviously wont work so it is rejected
why
why do you need to use only jip
might as well sync hitpoints
Because clients and server already calcuate the damage themselves, if you add identical HandleDamage for everyone
and if calculation is coherent without any randoms, isn't it pointless to sync the same values?
not sure I undrstand, you are are storing this damage as jip for all new clients but dont want current clients have the same value? makes no sense
Sure you can slack off and only add HandleDamage on one client and use this command to sync it overwriting engine damage, but this feels like a bad script design fixed by a command
it is very good design
Say you have HandleDamage that halves incoming damage on a static object
when static object gets damage, same HandleDamage runs on each and every client, including server already
Each EH produces same damage values, its already synced
not really without this further sync your mission produces different hitpointdamage for static objects
Does it? From my tests it produced same picture
for me it was different
You damage some static building, damage fires HandleDamage identically on each and every client
if you do same calculation, you end up with same numbers
Unless we're talking about this tiny difference that even proper network objects get
But I think you also fixed that
oh I see what you mean because the second client was joining as jip it was different i gotcha
Yeah, if you start my repro mission second client counts as JIP as damage happens before they load in
well I can certaily add that boolean
if you do damage a bit later it produces same damage through HandleDamage on both clients
the thing is it sends hitpoints array of floats, it is nothing why not have it anyway
you can add some sleep before projectiles spawn
Well, guess its not too much, just general strife for optimization
this way you have definitly identical values
and the nearly identical values of damage was actual message type that was screwing it
That's why I asked if the command will be server-only few days ago, thought it would only update the JIP messages
Loss of precision?
i thought about it but there could be times when you want it run on client
yes that loss of precision
Gotta save them bytes on 56K dial up modem in 2002 I guess
the values were correct on the send end and on receiving end they were screwed up
Oh, thought message was cutting down floats to save on traffic or something lol
i have already removed a bunch of messages that were sending empty array of nonexisting hitpoints so it should be improved already
Was that FAK healing damage descrepancy also because of that? (not sure if you looked at that ticket from TRAGER)
BTW worth checking, if not I know how to fix it now
This one
yeah I think thereisa ticket as well?
Will look at those in January I'm done for December
Anyway, big thanks for this command, sucks it can't be fixed in the engine but scripted patch is fine too.
It is safer to have command than start messing with a very complicated damage system
you can destroy building, it will be ruins but handledamage will make it damage = 0 and you cannot repair those buildings
this is why handledamage should be attempted carefuly
if you attempt to repair you might end up with both ruins and repaired building on some clients but not the other, a mess
Hm, can this command be added to perf builds and tested with server-perf and clients-stable setup?
I guess clients also need update to get new message type that this command generates?
If this is possible, I could have the server use this new command to update JIP init messages while clients keep calculating the damage without it
And the fix can be play tested sooner
negative the changes are big as well as there is new network message
why dont you run a dev build server as well?
no dev build server only RC build
Not many people are willing to play with dev client
And pvp mission without bots needs plenty of players to be worthwhile
extra xp points for playing on dev?
Not good enough of an incentive, wont stay populated. Servers live off casual players traffic and they have no idea what a dev version is. A one time event with an announcement to attract more advanced players can work though.
Guess we gotta wait for stable update
how do you modify damage on buildings and why
We want to disable damage on bridges but we'll probably do it via config.
bridges have hitpoints?
Some of them can certainly be destroyed. I don't know if Arma has a secondary mechanic for that.
hitpoints != ability to get destroyed
Don't objects without hitpoints still fire handleDamage with the general damage hitpoint though?
afaik objects without hitpoints don't take damage from hits
Should I make a private or normal crash report? I'm not sure if there's a risk of sharing personal information with the crash dumps and RPT
the "personal information" is limited to:
your PC specs
where you installed the game
possibly your PC user name
if you're worried about sharing those just use a private ticket
understood, thank you
as I replied in the ticket, try increasing your VRAM in BIOS settings. unfortunately your PC specs are too low for Arma 3 so I don't think there's much we can do here
your current dedicated VRAM is 32 MB. try increasing it to at least 128 MB
But 256KB should be enough for everybody
Same thing as repro, only allowing windows to be destroyed, otherwise towns get leveled very quickly
having a lot of buildings handle damage ehs is probably bad, i think there is a param how much the building can take before it gets destructed, since it is config value a mod can solve this or in this case a mission modifier perhaps can be created?
I only add it to buildings in and around objective, where players are, so it should be alright. Mission modifier sounds interesting but too specific. If this new command solves JIP issue, then its a good solution already.
@solid marten
Just thought about it, say I do this sync from server side, what if player does 2 damage packets, won't it end up looking like this:
- Client: Damage #1 for
0.1, changes damage0->0.1 - Client: Damage #2 for
0.2, changes damage0.1->0.3 - Server: Damage #1 arrives
0->0.1, sync #1 executes - Client: Sync #1 arrives, damage is now back to
0.1from0.3done at step 2 - Client: Damage #3 for
0.3, changes damage0.1->0.4 - Server: Damage #2 arrives
0.1->0.3, sync #2 executes - Client: Sync #2 arrives, damage is now back to
0.3from0.4done as step 5 - Server: Damage #3 arrives
0.3->0.7, sync #3 executes - Client Sync #3 arrives, damage jumps from
0.3to0.7
Sort of fine because you end up with 0.7 damage on client anyway (0.1+0.2+0.3)
But you have two damage reverts at steps 4 and 7
non scripted damage works fine it is scripted damage that messes things up
Yes, now that you introduced scripted damage sync, it may end up reversing damage on clients temporarily and this case of building repair might happen, isn't it?
i fixed the jip issue for normal damage
Talking about latency delay here, when client will get sync from their earlier damages while they already on their further damage events
Sure further damage events will also be synced to them again, but this creates unintended damage reverts, isn't it?
i don’t know you will have to play and see
Attempt to describe what I meant with a diagram
If there was a way to only sync to JIP, this scenario could be avoided
if this fails your jip will be off too.
i think you jut need to test it and then we will find out solution if this is indeed an issue
It might end up appearing fine most of the time, but sometimes Damage 2 might be destruction and that sync back to Damage 1 will be a repair from a dead building
And this could happen
Actually, we probably can setup a test for this exact scenario and see what happens
Speaking of latency tests, I wish there was a diag_ command to halt incoming or/and outcoming traffic for X milliseconds to setup test scenarios
Or a diag_ command for artificial latency
Still couldn't find a 3rd party software that let me do it properly for two clients running on the same machine
Server-side only
BOOL = ENTITY forceHitpointsDamageSync NUMBER
```with NUMBER being owner id
0 = everyone
2 = JIP
>2 = Specific client

why specific id? So JIPs can be checked for discrepancy and updated specifically maybe?
Not sure what fault scenarios there can be with JIPs to be honest
Also I just realized, wont having forceHitpointsDamageSync on each client, when each client runs HandleDamage for static buildings, kinda bad? As in server being bombarded with same info from all 50 connected clients and then sending each client 50 identical syncs for 50x50=2500 messages sent for 1 damage event? 🤔
let’s continue this conversation after you actually try it
can self-healing prevent the 0.25 damage groaning? 😄
fixed
w00t
Can AI use advanced damage system too? (heal you and be downed)
dunno, was thinking in terms of some script command/ehs maybe
I believe functions will have to be involved too
hmm regarding other health things, I don't see anything else for now but maybe others have a health nemesis
Disabling it
Or just making HandleHeal work like it did in Arma 2
Would much facilitate adding a toggle for ACE's medical system
would probably have some gamemode uses elsewhere too
You mean this ticket? https://feedback.bistudio.com/T172855
Dropping used FAK props after healing on the ground/floor 
@tropic marsh Thanks, the issue has been scheduled for a fix
fixed will add in january
is there a prop in game?
:)
Yes, single one FAK prop, class MedicalGarbage_01_FirstAidKit_F
And some other variants (class MedicalGarbage_) mb for Medkit will be a good prop
Will this props fly if building destroyed 
Not a healing but I guess I want a “proper” fixing vehicle animation than injecting something into myself and magically fixes the wheel
probably too deep but prevent AI from moving when being healed.
glad i could help
Late, sad and understandable. At least we should to mention about this issue somewhere since it can do this very unintentionally and people will confuse because the error said the commented out line causes it
is there a proper animation in the game?
what about HandleHealDone vs https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#HandleHeal
When attempt to heal another player, if he moves only slightly, the healing will not be completed
https://feedback.bistudio.com/T83453
Vanilla medic heal action is too sensitive on movement
https://feedback.bistudio.com/T158514
A scripting command to return if unit is healing with FAKs\Medkits\Medic vehicles
https://feedback.bistudio.com/T171268
[MEDIC] add the heal at medic in action menu again.
https://feedback.bistudio.com/T81924
Ordering AI to heal themselves while they are switching weapons will break that AI
https://feedback.bistudio.com/T118322
If you heal while you do another Animation then you stuck in the heal and cannot do any Actions like enter a car
https://feedback.bistudio.com/T123693
Feature Request: AI units not in combat should heal minor injuries (especially injured legs to increase mobility) - might be just adjusting thresholds
https://feedback.bistudio.com/T83130
and two old ones of yours - not quite sure if still true
Unit heal threshold is misleading and broken
https://feedback.bistudio.com/T76919
Reload + Heal Animation = Bug
https://feedback.bistudio.com/T65733
similar one
Healing animation Bug
https://feedback.bistudio.com/T117136
At least "heal yourself" doesn't really fit, but heal other may work
I don't think "Heal at medic" should be brought back. It doesn't make any realistic sense and effectively removes an interactive element from medic gameplay.
in SP/with AI? 😄
yeah you can do the archaic radio 0-6-x support if you are GL
if not, tough luck
Not so much an issue if you have a medic in the group as group leader will order medics to treat others.
The heal at medic action. Would be neat for when you don't have a medic in your group.
Could just heal at any medic then.
I would keep it "per mission design" (aka mission maker chooses to have this EH or not)
otherwise some missions may saturate empty FAKs, or have double if it's already scripted
I would be against the idea (or have it description.ext enabled perhaps)
I agree with you in general, I would be OK if it's a player asking an AI medic with AI leader
otherwise you may have to wait for the AI leader to order the medic and sometimes it takes time
(5-4 to say "I'm hurt" then the group leader will say "X, heal Y")
If it can be sensibly made AI-medics-only then sure I guess, fair workaround for dealing with AI. But if it's a choice between "not" and "works on player medics too" then I would prefer "not".
This one
Even when healing limping AI the action takes too long e.g the unit gets out of range before the healing action has finished
if AI is in the same group, nearby, and the AI GL isnt is same insane status spamming radio again - then yes
not 100% if thats the command - seems also introduced in A3 (command menu was only exposed to configs since A2)
edit: the heal at medic would be cfgActions
A1 had
class Heal: None
{
text = "Heal at %1";
showWindow = 1;
priority = 9.9;
textDefault = "<img image='\ca\ui\data\ui_action_heal_ca.paa' size='3' shadow='false' />";
};```
A2 then
class Heal: None
{
text = "Heal at %1";
showWindow = 1;
priority = 9.9;
textDefault = "<img image='\ca\ui\data\ui_action_heal_ca.paa' size='1.8' shadow='false' />";
};
class HealSoldier: None
{
text = "Heal %1";
priority = 9.9;
showWindow = 1;
textDefault = "<img image='\ca\ui\data\ui_action_heal_ca.paa' size='1.8' shadow='false' />";
};
class FirstAid: None
{
text = "First Aid";
priority = 9.9;
showWindow = 1;
textDefault = "<img image='\ca\ui\data\ui_action_heal_ca.paa' size='1.8' shadow='false' />";
};
A3
class Heal: None
{
text = "Treat at %1";
showWindow = 1;
priority = 10;
textDefault = "<img image='\A3\ui_f\data\igui\cfg\actions\heal_ca.paa' size='1.8' shadow=2 />";
};
class HealSoldier: None
{
text = "Treat %1";
priority = 10;
showWindow = 1;
textDefault = "<img image='\A3\ui_f\data\igui\cfg\actions\heal_ca.paa' size='1.8' shadow=2 />";
};
class FirstAid: None
{
text = "First Aid";
priority = 10;
showWindow = 1;
textDefault = "<img image='\A3\ui_f\data\igui\cfg\actions\heal_ca.paa' size='1.8' shadow=2 />";
};```
so probably the underlying engine code changed with the actions with A2
seems also native support for dragging and carrying was started 😮
class DragSoldier: None
{
priority = 0.6;
text = "Drag %1";
};
class DragSoldierInterrupt: None
{
priority = 0.6;
text = "Drop Draged";
};
class CarrySoldier: None
{
priority = 0.6;
text = "Carry %1";
};
class CarrySoldierInterrupt: None
{
priority = 0.6;
text = "Drop Body";
};
class DropCarried: None
{
priority = 0.6;
text = "Drop Carried";
};```
Looking at these configs, I wish we had a way to turn them off/on conditionally.
^
Not healing but actions as well, the rearm seems works bad for AI commanding
see https://feedback.bistudio.com/T175631
[Feature Request] Add SQF command to disable all native/engine based actions/cfgActions
https://feedback.bistudio.com/T158795
[Feature Request] New Script Command to disable/hide specific/some/all default action "scroll wheel" menu items currently forced ON by the engine. (i.e. Default "Healing" Action, Default "Reload with X Magazine" Action etc)
https://feedback.bistudio.com/T158770
dedmen.Jul 7 2022, 12:04 PM
sounds like alt syntax for removeAction command. but I'm not sure how this is implemented, might be too hard to skip these actions
me
there is showWindow for cfgActions - basically would need to override that
CfgAmmo's parameter soundFly can be instantly heard inside maxDistance sound radius. *No speed of sound
*
ticket https://feedback.bistudio.com/T178099
ah nice find. thanks
Somewhat related. Would be nice to have a command to change the Command Bar text underneath AI units performing actions. (e.g. the MOVE, HEAL, SUPPRESS, etc..). When a unit is command/doFSM, it just shows "SCRIPTED" which is annoying.
I can provide another two CfgAmmo sounds issues
-
hand grenades impact sounds works incorrect, in the config we have a big data for hit grass, metal, wood and interior sounds versions, and some others (see configuration)
https://feedback.bistudio.com/T165776 -
soundFakeFall will not be played if shell shoots a long than ~960 m
https://feedback.bistudio.com/T159917
no way I’m going to let litter server with cosmetic objects with option or without
If any work is ever done on soundFakeFall it would be nice if we had more control over it perhaps via a second parameter like soundFakeFallParams or something.
I would like to be able to set a chance % (0 to 1 scaled) of the sound being played (in my scenario I would want it to play something like 90% of the time), what height the sound will start playing at or anything else that goes into the engine's calculation for this so we can tweak the timing of when it plays as much as possible.
I ended up going the route of a scripted solution to make the SFX work but that's more intensive than I'd like as I have to use a PFH to update the sound position and other stuff like intersect traces against the ground.
Just, really a wild thought. Some commands that takes some time to complete, like animateSource or such, can we have an EH for it when it completes?
Maybe if it starts, too
Does animDone not cover that?
Never thought it will work? Isn't that for RTM anim?
I don't know, it doesn't say
Unless you add it to some garbage collection, like blood splats etc
Meh, cosmetic litter can be scripted
Possibility to disable the healing system would make custom medical systems easier
i also think just disabling the ability to heal would be really funny
thats the idea to make it fade away after short time like blood spats. No need for option then
having used FAK created on the ground wold be additional confirmation that healing did not fail
now that bleeding works and FAK stops it, maybe it is time to introduce bleeding to death option
a mission param 'allowBleedingToDeath'
Sound cool. Does A3 have some proper feedback effect to show the player when he bleeds out?
you can have gradual discoloration effect
instead of adding to the damage like with fire you can have virtual blood content getting decreased until it is below certain threshold then death, the blood content can be relayed in the form of discoloration
Vladimir Hynek
He's still working on it 😄
GetBleedingFrequency
Guess that never made into the game
it is in the engine and it regulates how often blood spats are created
what about an EH "waypointCompleted" on a group ? atm you need to add code via https://community.bistudio.com/wiki/setWaypointScript (unless I am missing an alternative)
a group EH would be way more flexible. and just for situation where its the last WP with SAD/SENTRY/DESTROY that timeout eventually (and you want to repeat them)
could also may the SUPPORT type useful that way (its one off-use only and AI gets out of the support vehicle upon completion) [pretty sure in OFP that wasnt the case - you could call them via radio menu again and again. was very helpful on tank missions]
or if a MOVE WP times out (usually with vehicles but also infantry can get stuck)
Is there any change this might be fixable?
https://feedback.bistudio.com/T171589
^
Some sounds are not played from beyond terrain view distance
probably some optimization done years ago where long distance weaponry wasnt a thing yet
Ye, my fear is that it's not as simple as some if-distance>terrainviewdistance-dont-play-sound but some way more complex thing that was overlooked with the sound overhaul thing back in the day 😦
sound objects are only created for special cases or every moving sound - anyone knows?
Weapon firing sounds are created beyond terrain viewdistance though so there's some hope I guess 🤷♂️
it was because the logic for creating the sound was in the same place as the one for creating the explosion effect
(naturally it doesn't create the effect outside the view distance but that also means the sound is not played too)
If a weapon is fired outside terrain view distance it is audible, however if the fired projectile hits outside terrain view distance it is not audible..
Same as above but place a scorcher more than 400m away, facing away from the player (and name it gunny). Firing sound is heard, but no hit explosion sound:
I assume that's a separate bug? or is it the same bug?
the first one is due to incorrect config:
configFile >> "CfgSurfaces" >> "woodenFloor" >> "soundHit"
is "concrete" 
and
configFile >> "CfgSurfaces" >> "surfMetal" >> "soundHit"
is not even defined (which means it uses the default sound, which is also "concrete") 
a mod like this can fix it:
class CfgSurfaces {
class Default {};
class GdtStratisConcrete: Default {};
class concrete: GdtStratisConcrete {};
class SurfMetal: Default {
soundHit = "metal";
};
class woodenFloor: concrete {
soundHit = "wood";
};
};
but idk if we should fix it? 
those sounds are too weak, and people that are used to the current grenade sounds might not notice them anymore
Same bug I think, the impact of the fired projectile is not heard even though the firing sound is.
So does this mean it's fixable? 👀
already fixed internally
Awesome
but still no guarantee it'll be released to the public. it depends if it passes the tests
In multiplayer the basic.cfg settings also massively affect the hearing range of firing sounds.
I guess its these two, if wrongly used with such high values.
With this values 5.45 or 5.56 RHS guns were only noticeable at like 500m.
MinErrorToSendNear=0.1;
MinErrorToSend=0.03;
After setting back to normal values you could hear them at ~1,2km+ or so.
MinErrorToSend = 0.003;
MinErrorToSendNear = 0.01;
weak in volume or in audio quality/style?
yes 
well the "metal" one is ok I guess. but the "wood" is kind of hard to hear
theres meant to be hand grenade impact sounds???
That sounds OK when it initially hits, is it just the audible distance being too short?
They were there already, it just always used the concrete sounds regardless of the actual surface
both seem fine to me
Both sound pretty good to me tbh
But I'm listening on my phone with the volume set to about 50%... While actually playing arma I'd probably have the effects volume set at 30% because of the gunfire and vehicles
bug or not bug?
[fog,fogParams] = [0,[0,1,45.1339]] (client)
- server exec:
0 setFog [1, 1, 45.1339];
=> instant fog
[0.901575,[0.901575,1,45.1339] (client)
- server exec:
0 setFog 0;
=> fog doesnt goes away
fog values go very small:
[5.24408e-008,[5.24408e-008,1,45.1339] (client)
- server exec:
0 setFog 0; forceWeatherChange
=> fog usual goes away - but not always [even after repeated execution] - seems "bugged" if you do first without forceWeatherChange
setDate [1944, 7, 17, 0, 0];
0 setOvercast MISSION_WEATHER;
0 setFog MISSION_FOG;
forceWeatherChange;
sleep 0.1;
skipTime MISSION_TIME;```
this setup seems also not really reliable
Not sure if worth fixing, but BIS_fnc_errorMsg is broken.
_classes = +(uinamespace getvariable ["gui_classes",[]]);
{
if ((_classes select _foreachindex) in ["RscDisplayDebug"]
_classes can be empty array thus returning index out of range error
I see, it's even documented on the biki
At what test altitude?
getPosASL player: [1087.5,3923.01,4.40144],
getPosATL player: [1087.5,3923.01,0.00143862]
sounds fairly similar
no negative values there
Wood impact hard to hear because applying interior sound effect I guess
Mb config's volume value can be adjusted by (current concrete dB + Compensation interior sound dB)
If sounds will be a balanced I don't see any problems to fix it in public
It'll make a noticeable impact on immersion, throwing a grenade and knowing that it landed in the structure just by the material sound
@desert trench Seems like the busted case would be the one where the fog disappears then?
extreme scale values are pretty buggy IME
I remember that if you set -1 for scale you can get a case where the fog is visibly gone but pops back to extreme levels as soon as the base value drifts off zero.
Plus it still blocks missile locking despite being visibly clear.
Ran into that a lot because people would set "minimum" fog values in zeus.
my bad - too late for my brain.. just very small values
anyway the actual issue is no fog change a) over time and not even with b) forceWeatherChange at times/certain setups
I think it only gets played once
I guess I can make it play multiple times
it seems you have to use server exec: 0 setFog [0, 0, 0]; - the old 0 setFog 0; seems not reliable once you set the new fog - unless you combine it directly with forceWeatherChange; but if you 0 setFog 0; first, the fog doesnt disappear and a later forceWeatherChange doesnt seem to help at times
(tested with prof on DS+2 clients and VR world)
aka in short done combine old and new setFog syntax as it might not be reliable
IIRC that's not how it worked
But I'll take a better look later
is it possible to get the ability to change the default profile name or is it embedded in the engine or something
really minor thing but its mildly irritating
doesn't it change with pc/windows user name or whatever is used to generate it?
still would rather change in arma than change entire user profile name
yup
main profile = Windows username and that's it, quite "90s feeling" 😅 good thing I name my Windows account Lou Montana
just create custom profile?
It is a bit counterintuitive for new players that you have to make a new profile to change the name, particularly since people don't usually use their gaming name for their Windows profile
It would probably be smarter to default to the Steam profile name instead. I dunno if that's a practical change though.
plus having an unused profile just named "willi" is a bit annoying (albeit very funny)
Administrator gang
user, player, admin, kiosk, asus, giga, lenovo, hp etc
DESKTOP-UV8J5 has joined
It seems that "enableDebugConsole" in description.ext does nothing for singleplayer missions. Is that intended?
\functions_f\debug\fn_isdebugconsoleallowed.sqf
Seems to only check for confgFile in singleplayer environment.
allowDamage Eden Editor checkbox won't work if mission launched on dedicated server, work fine if hosted or SP
any chance for a getter for unit being in combat pace/having one of the existing pose getters expanded to it? trying to find if unit has weapon currently raised is pretty annoying
you can do it by checking his current action
also iirc something was added recently by KK?
doesnt give one for combat pace stuff hence asking expanded
What does the "Combat" return do then?
what is "Combat" then?
The single string return system does seem a bit limited. Like, you could be both Weapon and Crouched, or Combat and Stand, for example, and it doesn't differentiate.
Also fun to see Dragged and Carrying in there. engine-supported carry and drag system when
imo its better than string checking the current anim but no way of checking between the jogging modes is annoying
we have weaponLowered but that's only for the 2x ctrl one
not for unit is jogging but gun isn't raised (possibly a bug? idk with that one tho)
what is your definition of "raised" then?
_state = animationState _unit;
_moves = getText (configOf _unit >> "moves");
_canFire = getNumber (configFile >> _moves >> "States" >> _state >> "canPullTrigger")
you can also use "forceAim"
if forceAim is on the weapon is techinically "raised"
there's also "showWeaponAim"
forceAim being an action?
property
ah
use instead of "canPullTrigger"
doesnt work for combat pace lowered
returns 1 regardless
disableWeapons works tho
just compare the properties for several anim states to see what you're actually looking for
either way not the neatest but 🤷
I tried doing this awhile back and uh you're in for a treat - you have disableweapons and disableweaponslong but it's not 100% indicative of being able to shoot as there's instances where your animation will change but not for long enough to shoot
like my use case was playing a sound before the player fired their weapon and if the player tapped moved while clicking itd play the sound but not fire, I never could work out a way to solve it
Mk20 tail sound glitch if shoot at the same time as Katiba
https://feedback.bistudio.com/T178138
SPAR and Katiba tail sound duplication if shoot indoors due CfgSoundSets issue
https://feedback.bistudio.com/T178139
see also: #arma3_feedback_tracker message - maybe with a FT ticket KK will pick it up 🙏
is there a ticket/demo mission to check?
oh forgot make a ticket
I was wrong, I exec isDamageAllowed on REMOTE objects so it returns true but damage was disabled, no problems here 
Awesome, thanks. I pretty sure that has worked at some point but got broken
Wish more of these engine checks and functions were exposed to scripting to avoid guesswork and costly config checks
when the GUID check was added most likely
pretty sure KK broke it when he added the fn_isDebugConsoleAllowed.sqf 🤐
(above is from 1.6x or so)
Is this the old script or an up to date version?
It was never allowed for SP scenarios
no
the reason being you could cheat yourself through campaign, you still can but you need to make extra steps to install mod
https://community.bistudio.com/wiki/Description.ext#enableDebugConsole
I guess the description is a bit misleading
How can you cheat yourself through campaign? It's only for self-created scenarios
dunno, never looked at it in this respect, the focus always was MP, for everything else there was a mod
I have updated the description.ext page to make it clear that it's MP only
only if the parameter was set
see the file i dropped above
anyhow seems there is not interest to make testing easier
I will make a request, seems pretty easy to enable it in SP but this is not my call
couple of sqm from A3 content have the property but all set to 0
only Oldman would be likely affected as it has
enableDebugConsole = 2;
in p:\a3\missions_f_oldman\systems\commondescription.inc
add this to the ticket please
done
#arma3_model message
Can we have a word for this binarization error spam that is very annoying when we try to pack (esp. with pboProject)? It pauses the process (well this is pboProject's part) and the binarize error told us literally nothing than "this file has an error" and proceeds like nothing
While I make Star Sphere, I've found out that there is no comprehensive NV/TI state regardless player unit or such... but the current camera. We have very few commands to get camera states which is shame IMO
There is even no command to get if a camera is taking the main screen
Also positionCameraToWorldVisual maybe good
is that not cameraOn in 2.16?
Legacy cameraOn or newer focusOn doesn't detect it
Basically there is no active cameraEffect getter
No cameraEffect getter could be problematic if there is a "camera" that is waiting for tasking
And essentially detecting "camera" objects is the current only way to do such
Sorry for the ping again, but do we have a guide or whatever to “avoid this string or such”? We may need to put a note somewhere in BIKI
Countermeasures flares of WY-55 helicopters ejects to the wrong directions (to the left/right side, not down)
https://feedback.bistudio.com/T178194
I think this is a case of the model being "wrong" rather than the flares behaving wrong. Real helicopters usually launch their flares sideways because they're trying to make the flares have a believable flight path, to convince missiles that the flares are actually helicopters. Dropping straight down wouldn't be very believable.
On the real AW159, that position is occupied by the rear landing gear and the flare dispensers are somewhere else. So the modeller has made something up from scratch and they goofed. It's probably best to just pretend the flares are launched from the side of the dispenser rather than the bottom.
But this is a modified
version and flare in wrong direction looks more weirder, A10 has vertical dispensers too so don't see problem to move a mem point in down dir for this heli
moreover no affect for gameplay, this need to be done because it complied with existing 3D model and there were no questions
I don't know. You should just avoid using ' (unless you do want preprocessing) and only use "
any change we get the auto landing working? https://feedback.bistudio.com/T174528
the landing code "penalizes" some types of airfields. e.g. if they're too short
Comment with a spam link hidden inside a (sort of) helpful link: https://feedback.bistudio.com/T79055#2550452
hmmm so there is some valid closest to airfield check?
Arma 3
Airport (on Tanoa only. Tanoan airports have their own location type. On Altis and Stratis, airports are NameLocal)
i assume the airfield position is retrieved from the configs, not from locations
And I bet correct channel is #arma3_scripting
I don't know. I didn't check it thoroughly, but it considers many factors. such as plane direction, ilsDir of the runway, distance, etc.
@fluid meteor my question was to Leo about possible bug
Sorry my mistake
just because it's the closest runway doesn't mean it's the best one
alright, I was actually told in here that the planes land to airfield above them (y coord wise) and I found this to be true....
hence the ticket
above them (y coord wise)
you mean y is north?
yes north
no it doesn't seem this way. it depends on the ilsDir of the runway (and the other factors I mentioned)
the code tries to find the airfield that best aligns with the glide slope I think
ok well thx for looking into it Leo, i guess predicting the "closest" AF is harder then 😄
getBestAirfieldCandidate - command ;D
if it is for AI just use landAt
if it is for player, well who uses autopilot anyway?! 
just learn how to fly 
kinda wish we had landAt for helicopters. land leaves the LZ choice up to the AI, and you know how that goes
Seems likely.
Would it make more sense for it to be a variant of land (in name terms) since that's already "the helicopters command"?
it doesn't really matter but landAt seems better imo
what a mess 🥹
it won't be easy 
i made a script that tells the player if nearest runway is clear and if not then auto landing is denied
me when I try to make scripted helo inserts without it:
I guess it wasn't that difficult 😅
Cool, now give us a cubic bezier curve parameter to set a custom trajectory for landing 
caught in a landslide
"addCuratorEditableObjects" spams RPT with "Ref to nonnetwork object" for objects without netId
https://feedback.bistudio.com/T178229
don't use local objects 
there is a local only box for objects added by BI 
Not sure what the desired behaviour there should be. The editable objects are stored on the server (or local to the curator object?) so they'd often need to be non-local.
Throwing a nonnetwork object message seems reasonable tbh.
I guess throwing a specialized error message on call would be preferable.
can we get TargetFound EH? similar to KnowsAboutChanged but when targets are found. (targets that can be retreived by the targets command)
Client also knows what objects are local only (I hope) so skip them from being added? Extra points for them showing up as pink so there is some visual feedback for Zeuses.
You can't really add them as the command is server exec.
I found the rpt log bit annoying if you're for example adding allVehicles to zeus.
I'll be honest, it doesn't fully make sense to me why addCuratorEditableObjects is server exec at all, rather than LA to the curator
obviously not something that can or should be changed now, just seems like a weird decision
ah right, then addCuratorEditableObjects should just skip local only objects, that's also a kind of feedback 😄
I was concernced about the nonnetwork message and thought it's something else in arma trying to edit local objects, but our Zeuses use addCuratorEditableObjects quite often so it's probably that.
canAddXXXX commands don't actually do what they claim
https://feedback.bistudio.com/T178202
would be handy to see fixed
see also wiki page comment: https://community.bistudio.com/wiki/canAddItemToBackpack
canAdda 🇨🇦
what about this https://feedback.bistudio.com/T127184#2279549
Any chance this will be seriously considered?
https://feedback.bistudio.com/T177407
did verify it - canAddXXX itself is fixed as stated in that ticket
however the report from h- is about the maxSoldierLoad limit (see https://community.bistudio.com/wiki/Arma_3:_Stamina#Functionality)
via scripting commands you can add more stuff to unit containers as long as their limit is not reached - aka maxSoldierLoad is ignored
h- is asking canAddXXX to support ignoring the maxSoldierLoad limit too to be able to check what can be added via scripting commands
Can you explain in more detail? Perhaps using some pictures or videos to explain what the issue is and what you expect to happen?
They want a command to set a custom North angle for the compass
setCompassOscillation can make the North angle fluctuate randomly, but they want to set a fixed offset
https://en.m.wikipedia.org/wiki/Magnetic_declination
Ah I see what it is now
Magnetic declination (also called magnetic variation) is the angle between magnetic north and true north at a particular location on the Earth's surface. The angle can change over time due to polar wandering.
Magnetic north is the direction that the north end of a magnetized compass needle points, which corresponds to the direction of the Earth'...
Apologies for the lack of context in my ticket. Yes, it would be used mainly to set magnetic declination for a mission, but could also be used for effects of extreme solar flare or effects from magnetic weaponry for creative scripters. This command would preferably only effect the compass and not digital readouts of bearings, just like setCompassOscillation does. Digital readouts of bearings are normally converted to grid in modern military equipment anyway and would be well beyond the scope of a simple command. I would make a short video but I am in a foreign country away from my rig.
Even though it can be fixed globally, at this point it might not be safe, thinking about mission config option?
Simply put, setCompassOscillation is random in nature. If there was a command that set the compass north without the randomness, that would allow us to use it for magnetic declination which is pretty fundamental in actual land nav.
what about a 3rd parameter as an override? seems possible for canAdd and the three container specific variants
param better than mission flag, flags are not useful for mods.
As kju said, maybe alt syntax for overriding the default behaviour?
Mission config option would be a wee bit sucky for modding only purposes 🤔
the problem is in the method used not only by the script command, what would be the point if canAdd would say no but the engine say yes
That's already the case - canAdd says no, because of the soldier load limit, but the engine will actually allow you to do it because the container load limit isn't reached.
right, so how alt syntax would help, make canAdd say yes?
Yes, by making canAdd ignore the soldier load limit, and only respect the container load limit - the same behaviour as the commands that actually add items.
Current canAdd (affected by soldier limit) is useful for checking what the player can do with their own inventory control.
Override canAdd (not affected by soldier limit) would be useful for checking what script commands can do.
can I have an example where canAdd goes against script commands?
This ticket appears to have a repro: https://feedback.bistudio.com/T178202
yep
basically some backpacks can hold a lot of stuff - in combo with clothing and vest that can hold some, you go over the limit of the total limit - via addXXX commands you can still fill the backpack to the max. as result you will just walk only with no stamina
So how do we deal with the fact that inventory system does the check when you manipulate it via UI
Revision: 151252
https://feedback.bistudio.com/T128076
Sorry for very big bump out of the blue, but why this kind of fix is considered "not going to happen"? I really wonder what makes it hard to process fontToTGA and implement into a game officially. I know this could consume disk space like 2 gigs, (since I did it once) but honestly this is big quality of life improvement and easy to test, integrate and release... no?
Maybe less disk space if we remove mipmaps, though
Would be nice to also have a local version for the client for this command https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#SlotItemChanged
what do you mean, it is local
Ok then nvm, gonna look for what i did wrong then 😄
A way to completely disable the Commanding Menu due blocking ability to use the Action-Menu and top-left 2D map menu
https://feedback.bistudio.com/T178273
Just re-tried to create Medium and Bold CJKs (well technically only CKs) and ended up 500 megas... FYI
10:33:02 Autoinit is supported only for persistent missions!
10:33:02 Autoinit parameter is skipped.
10:33:02 Host identity created.```
better?
CfgTaskEnhancements
Has this ever been implemented?
I am asking because there are also properties like taskManagement_propagate
Seems that only enable, 3d and propagate are being used in scripts. The rest idk.
There is a FNC (bis_fnc_unflipVehicle) that has an undefined variable:
Author: reyhard Description: Safely unflips selected vehicle
At the bottom of the script: sqf _vehicle setPosWorld _adjusted;
But _adjusted is undefined... I guess it should be _newpos instead...
p:\a3\functions_f\Vehicles\fn_unflipVehicle.sqf
Additionally, the description "Safely unflips selected vehicle" is not so accurate, as the fnc will kill any unit close to the vehicle being unfliped
Cycle as first waypoint has no sense
would it be possible please to get more info with this rpt message
ie group name, waypoints, current waypoint or so
the message happens way too often to be only a group with just a cycle WP
yet without more info, its very hard to pinpoint where this coming from
Please implement info to player about IR laser block on the weapon is turned ON or OFF https://feedback.bistudio.com/T172731
If player does not have NVG or TI he has no way of knowing that he accidentally turned on his laser
just like in real life
Just... unequip the laser if it's a problem
Does irl IR blocks have not on/off indicator?
A laser/flashlight indicator in the weapon status HUD panel seems reasonable, if possibly slightly ambitious since UI work is hell.
Depending on the icon, some potential for confusion with the laser designator status icon, though.
Unflip actions are a total mess in the game
no
The AN/PEQ-15 does have an LED status indicator, and it seems likely that other types do as well. They also have a switch with a definite off position, rather than only a toggle button.
mine does not
So your logic to make sure is your peq15 disabled you need NV goggles?
I can see Off switcher on 3d model, if it set on off then it indicates it's off
yes thats the laser mode setting
pressing the button does nothing if its set to that
Well I think (don't quote me on it as a Bohemian words, I'm just talkins behalf the community) it's too late to modify vanilla P3D by now
But I don't think it's not too late to have an animation source like laserOn lightOn
im pretty sure theres already a getter for laser on anyway
i remember doing something that blinded you if you had a laser shined in your eyes
Yes, and if you set it to OFF, it's verified OFF. We don't have that in gameplay in Arma, we only have a toggle which doesn't indicate state. A UI indicator would be a reasonable substitution for the functionality we don't have. (And, again, some models do have an active status indicator, and it would be reasonable to say that the Arma ones do as justification for giving a UI indicator.)
probably not possible to make it light up anyways as wouldnt be a model.cfg thing surely?
can already be done yourself 🤷
https://community.bistudio.com/wiki/isIRLaserOn
i could probably add an indicator to ace if i can be bothered doing the gui
I mean for model.cfg. It's not possible to animate a proxy in a scripted way, especially proxy on a proxy
yeah and cant use setobjecttexture on weapon attachments so couldnt make a physical light up anyway
I think the suggestion is for a UI element, like the fire mode indicator, not a model change on the attachment itself
Ah well I forgot what we talked in the earliest days 🤣
ui element can be done yourself so is unlikely to get added
especially given as if its a big problem you can just unequip it lmao
I don't think that makes it unreasonable to suggest. There have been plenty of things added that people "could do themselves" but were added to the base game so people didn't have to. It may not be super high priority, but it's not a wild and irrational request.
its unrealistic and already has a solution whilst also being able to be done yourself 🤷♂️
I guess it is unrealistic if you ignore everything I just said about real ways to verify the state of a laser pointer. But it seems to be pointless to argue further, the judge has spoken.
only way to know if its on on a milspec peq15 is to shine it in your eyes or turn on your nv
or be weird and constantly switch it to the off position (unequip it)
Honestly though, and not really related with lasers anymore but opticsMode animation source so like HHS L
This is the status light on the back of a, uh, milspec AN/PEQ-15 https://static.wixstatic.com/media/f35c8e_f13920d19af640f3a611abd64f1bfe16~mv2.png
and even if not, there is an IRL way to check if it's on or off, and that's about it
the UI indicator is a "would be nice" feature, regardless of the laser model
where is that from? looks like an airsoft copy
https://www.haho.online/post/review-an-peq-15-atpial-advanced-target-pointer-illuminator-aiming-laser
If that's an airsoft copy then it was copied by a real tryhard
i know the guy who sold it to him ill ask nvm thats not LA5 model which is the one i have and most mil use which does not have an indicator light
anyway this is off topic now
Complemented your ticket with my find, hopefully the devs can take a look
@gaunt depot https://feedback.bistudio.com/T171437 are those all the classes that need editing?
Could you include package names as well please?
A3_Soft_F_Kart, A3_Static_F (copied 3 times inside), A3_Soft_F_Enoch
I think so, you can flip statics, karts and UGVs and thats it
Can't wait to see what is getEntityInfo
Wish it wasn't a composite command but a separate command for each parameter though
Interesting, damage messages are discarded if entity changes locality from a crashed client to the server
- Player's game is crashing, (... is losing connection)
- Shoot their entities
- Player's client is finally kicked
- Their entities switch locality to server and all damage is discarded
Player is not a Killer if after planting a mine he dies and respawn
https://feedback.bistudio.com/T171978
vehicles inAreaArray myTrigger;
allUnits inAreaArray "myMarker";
from https://community.bistudio.com/wiki/inAreaArray
these are quite expensive if you have 30+ vehicles or 200+ units
https://community.bistudio.com/wiki/nearEntities is the most efficient (AFAIK)
possible to extend it with typesExclude, includeCrews, excludeDead] from https://community.bistudio.com/wiki/entities to make it even more efficient?
also helpful would be such filters for vehicles and allUnits
what about extending nearEntities to take trigger or marker?
damage is handled shooter side so it kinda makes sense
what about multithreading inAreaArray above certain array count?
Wasn't nearEntities made multithreaded at some point?
if possible, probably easier - in terms of efficiency i cant say.
if veteran29 is true, it probably is (unless inAreaArray can be made multithreaded and is more efficient in itself)
lost a bit track what was done for HD by now and cant find in the history..
the first "fake hitHead" is to be detected best now in what way? and it can be ignored altogether?
PS: would be great to have the new HD insights put onto the BIKI 🙏
is this available in dev branch?
@untold sky did it for all "nearest" commands. I recall he was doing it for some command depending on input/element size too, so should be doable for inAreaArray too.
might use a ticket tho (if not deemed not possible)
HandlePreDamage 🙏
Check _context, if its >2 then its these weird EHs
Speaking of HandleDamage, I still need some kind of damage kind indication, it is still impossible to distinguish damage kinds, no way to tell if damage from fall damage or fire damage for example
I thought I could be smart and check if damage was done on a frame where animation is of StartFreefall type (when you fall) to tell if its a fall damage or not but no
You can get fall damage without fall animation, when exiting a vehicle with high exit point for example and your animation will be one of GetOut ones
Having a flag to know what damage it is at least for local-only damage would be a great help.
Can be script fixed
Not sure if it should be engine fixed because mine is technically placed by another (died and deleted) soldier
but I would like to receive a correct kill reports from the who actually place mines on vanilla scenarios
Script commands allMissionObjects/nearestObjects/nearObjects/nearSupplies/nearRoads/nearestTerrainObjects are multithreaded
if that list is complete, the current state is then
[nearestBuilding]
[nearestLocation]
nearestLocations
[nearestLocationWithDubbing]
nearestMines
[nearestObject]
nearestObjects
nearestTerrainObjects
nearEntities
nearObjects
[nearObjectsReady]
nearRoads
nearSupplies
nearTargets
Oooh, great stuff!
lastEntityCausingDamage is it just a single entity and not vehicle-instigator system?
https://feedback.bistudio.com/T178325
Perhaps that's something that could get implemented. A way to prevent BIS_fnc_initParams from automatically being executed in SP would allow for a custom system implemented by mission designers
Still wish there was a way to avoid generating big array when you say want to pull only a single property
Knowing SQF not sure if it will be that much faster though
you can tell me after you test it
ENTITY getEntityInfo STRING maybe? (player getEntityInfo "lastDamageTime")
Its a single object by your description, is there also an instigator somewhere too, maybe?
that’s what the engine provides a single object
Speaking of vehicle-instigator damage sources, this fake HitHead EH only provides vehicle and no instigator, while bleeding EH and normal EHs provide both
make a ticket I’ll investigate
Yeah, it looks like an oversight
It only assigns instigator, for example if you damage a tank from a tank and get out so it explodes later (HitHull = 1), you get
23:43:51 "Frame 5936440: Killed Both: O_MBT_02_arty_F"
23:43:51 ["2bcb1dd8080# 1858624: mbt_02_arty_f.p3d (O_MBT_02_arty_F)","B Alpha 1-2:1 (Sa-Matra) (B_Soldier_F)","<NULL-object> ()",true]
what is the problem, doesn’t seem to explain
Even if you don't get out you end up getting
23:45:44 "Frame 5952590: Killed Both: O_MBT_02_arty_F"
23:45:44 ["2bbee3ba040# 1858894: mbt_02_arty_f.p3d (O_MBT_02_arty_F)","B Alpha 1-2:1 (Sa-Matra) (B_Soldier_F)","<NULL-object> ()",true]
While tank was last damaged by a player inside a tank
Looks like when damage tracking was expanded to include both vehicle and instigator, this part of the engine didnt get the update so it only saves instigator
which is used as vehicle in EHs
23:45:33 "Frame 5951024: HandleDamageVehicle: O_MBT_02_arty_F (ALIVE=true)"
23:45:33 ["2bbee3ba040# 1858894: mbt_02_arty_f.p3d (O_MBT_02_arty_F)","light_r",0.669372,"B Alpha 1-2:1 (Sa-Matra) (B_T_MBT_01_TUSK_F)","B_762x51_Tracer_Red",15,"B Alpha 1-2:1 (Sa-Matra) (B_Soldier_F)","#light_r",true]
Damage that assigned the kill to player has both btw as seen in the log
ticket please so it is in one place
There is no way in SP to edit the parameter values. If we could disable the auto execution one could create a system to handle parameters differently in singleplayer and allow players to change the values.
Basically if one wants different parameter values in SP then all functions defined in params need to be executed twice, which is problematic.
Main point is: Use same params config in MP and SP, but having a way to handle them differently in SP.
@solid marten Do you think its doable to have damage propagate damage kind alongside it, so it appears in HandleDamage event handler as another parameter?
Even if there was a basic implementation for local damage only, no networking
Local damage like fall damage, fire damage, drowning, etc.
Something that is insantly applied to local entities
Right now it is impossible to tell fall damage from say drowning and fire damage
I do t remember exactly but this was done on purpose to stop param changes remotely for security
What if we only allow exiting early in !isMultiplayer
!isMultiplayer && {someVariable}
those params are what you select in multiplayer, how do you even use them in SP?
Singleplayer
they want to make a custom UI to allow for paramaters to be set in single player - but the problem is initParams will always run the default params in singleplayer and wants the ability to disable it so they can execute them based on the custom UI
deadSetTime: Number - for how long the entity was dead - looks like a godsend for cleanup scripts
I wonder what else we can expose to scripting from more specialized entities - vehicles and men
lemmie have a look
lots of things but not all are useful
and a lot have already been exposed in various commands
Also not sure about MP locality arguments for the new command could you test please?
Gonna have a look once it hits dev branch
tomo probably
P:\a3\functions_f\Params\fn_initParams.sqf - its postInit = 1;
and
if (isServer || getNumber (_x >> "isGlobal") > 0) then
so either some GV needed to exit the function, or an additional parameter in the params class (ie "isSP") to make it get skipped at that check
Shall i change compileFinal to just compile for SP?
"BIS_fnc_storeParamsValues_data",
compileFinal ([_values, " param [", _names, " find toLower _this]"] joinString ""),
true
];```
fn_storeParamsValues?
@daring wagon ?
That would still execute all the functions/script files defined in missionConfigFile >> params
Maybe if I put it this way: I would love to have a way in singleplayer to define myself when BIS_fnc_initParams is executed. To do that we would first need a way to prevent it from being automatically executed via postInit
I didn't even think about BIS_fnc_storeParamsValues_databeing final as I create my own hashMap with all the param values.
I have updated the ticket.
Could the params functions be made to waitUntil a variable is true, which is immediately set true in MP but left false in SP unless the missionmaker changes it?
e.g. at the start of each function
bis_var_paramsInit = isMultiplayer;
waitUntil {bis_var_paramsInit};```
That would break it in singleplayer
please don’t post source code into public ticket
Could you expand on that? Maybe I've misunderstood what you're asking for, but I think that would, in SP only, delay the function until you choose to set the variable to true, and I think that's what you wanted. It probably isn't a perfect solution but I'm not seeing how it breaks stuff.
How will the variable be set in singleplayer for existing missions?
waitUntil {missionNamespace getVariable ["bis_var_paramsInit",true]};```
and then doing MP/SP detection is up to you via a preinit function or something?
So you want me to set that variable to false and then have it run until the end of time? 😄
I feel like a timeout where it just gives up after a while would probably be pretty easy to do.
I don't know dude, I'm just trying to suggest something that doesn't require major structural changes.
Don't worry. One solution is in the ticket.
I will add BIS_fnc_disableInitParams as @daring wagon suggested if approved
or BIS_fnc_disableParamsInit
Awesome. Thanks for looking into it.
"BIS_fnc_initParams_skip" i think
Sounds good
Spam account
nuked, thanks
new record! 😄
out of curiosity, were there ever any plans to add more options to the custom hud layouts stuff? There's a (locked) category dropdown, the one with presets, is there any chance this would be expanded a bit? Like add support for more layouts than the default one and <Custom>, or maybe grid snapping or whatever.
can someone tell me whats wrong here
every time i go to connect to a server i crash and exit A3
fresh install of windows and A3
did not have this issue a week aho
just loaded into a vanilla server with no mods, enabled battle eye
see if thats the issue
might be mods
is it feasible to extent this to also trigger on scripted "rearm/repair/refuel"?
atm this EH has only limit use with various scripted systems/mods dealing with the "resupply"
i'd imagine the event either would need to be hooked into the respective sqf commands that manipulate these "stats" or maybe lower level where the engine applies the changes
[Optimization] Make also nearEntities and nearTargets multithreaded for less fps footprint: https://feedback.bistudio.com/T178335
Ticket created: https://feedback.bistudio.com/T178337
Could you update wiki after you've tested it please
Will do
What you sent is completely useless.
You can open it using a text editor and see for yourself.
It just tells you to make a ticket on feedback tracker
[["Vehicle","HUDs"]] call BIS_fnc_advHint;```Honestly why does this error message exist? Even vanilla hint can cause this error
wasn't there some kind of a memory leak if the hint was too long?
I never heard such?
Probably because on some resolutions the hint will be cut off.
This error only shows in eden editor right?
Wasn't aware actually
https://feedback.bistudio.com/T164449
7.62 and 6.5 Miniguns and Coaxial machine guns Tail Sound Sets are glitchy on shooting without frequencyRandomizer parameter in classes CfgSoundSets
I had it during the Tanks official scenario so nope 😄
I think it's a "loading time" dev warning though
profilenamespace getvariable ["BIS_fnc_init_displayErrors",false]
Is this true for you?
(no idea, I'm in bed huhu)
In bed?
wth
@alpine tulip Check that variable. The msg should not show by default outside of 2D, 3D Editor or preview
It says false, just tried to how it does in non-Eden environment and had no error. Seems I just spend too much time in Eden
https://community.bistudio.com/wiki/BIS_fnc_error
Updated accordingly
(please case profileNamespace & getVariable properly for good syntax highlight)
the "hoverable" markers will trigger simultaneously if you click on the one that is on top of another. Here when I want to select the task marker it also opens the ORBAT Viewer, which marker's below it. Possible to fix so I can make a ticket?
Orbat and task system are independent from one another but use both cursor position to check if something should pop up
Don't think that's fixable.
Easy solution is to move the further apart
so there's nothing like f.e. z-index in CSS for these elements?
nah

it's just mousemove/hold eh + cursor position
orbat uses BIS_fnc_createTooltip and simply creates controls at cursor pos
and RscDiary.sqf does the same, just not with BIS_fnc_tooltip
_mapCoords = _map ctrlMapWorldToScreen _dest;
_tooltipCoords = [(_mapCoords select 0) + (PX_W * MARKER_SIZE_HOVER/2) - (PX_W * 2),(_mapCoords select 1) - (PX_H * MARKER_SIZE_HOVER/2)];
[_tooltipParams,_display,BIS_fnc_ORBAT_mousePos] call bis_fnc_ORBATTooltip;
from ORBAT
cleared, thanks
I've seen that there has been some enhancements for the handledamage "Tweaked: "HandleDamage" event was extended with additional context".
Would it be possible to include a bootlean to show true if the damage was direct on the body part of false if it was residual (done initially on other body part)? Residual damage being the secondary damage that some body parts get other than the body part that was truly/initially hit....
I don't think that directHit covers the body parts residual mechanic meant as a work around to ensure units dying after getting many shots in the legs for example...
iirc is false when that happens
I don't think that that one is related to the "multiple body parts damaged from a shot on other body part" but I could be wrong. But in that case then that bootlean covers too much, because what if I don't want extra limbs being damaged but I do want collision, fire or fall damage... there should be some separation between those
Not possible, you can only know for sure from shooter side
It is sort of possible to connect HitPart and HandleDamage but rather tricky
ACE 3 does it. There a shot to the head is a shot to the head and it does not damage other body parts. Currently in Arma 3 a shot to the chest can also damage your head, and there is no vanilla way of telling those damages apart... but somehow ACE got arround that
Anyway, my suggestion of a bool is exactly due to it being impossible (or super hard) to do without dev intervention
On the other side, we would be loosing those modded zombies having their heads blown when shot on the chest 🤣
Just like fixing the flying tanks will inevitably end the "Arma space program" which has become so iconic by now
Imagine having furniture in buildings suddenly and so the whole "aliens stole the furniture" leyend dies.. I would miss joking about that
You can check how ACE3 does it, it seems to null damage to unrelated parts: https://github.com/acemod/ACE3/blob/0e2c7167a5f83026e9407a77fa2043bc46daabb7/addons/medical_engine/functions/fnc_handleDamage.sqf
it script saves engine-provided damages, then does it own calculation in last ace_hdbracket hit part
Looks like it sorts incoming damage by amount so if "head" got the most damage you can assume head was shot
It is a smart workaround... that required 200+ lines of code not to mention all those supporting CBA fncs and all the variables being written on the player.... when a dev bool would reduce that immensely
What if somebody want to know if left hand was shot? Another bool for each part?
No, the bool just shows TRUE for the part being hit originally and all other parts get FALSE
What if bullet went through the head and exited through torso?
so if the shot was in the hand you would only get true on the loop of handle damage that handled THAT true damage
head bool = true, torso = false
Looks like current damage system doesn't carry any information about hit apart from projectile hit class, not sure if anyone will be willing to extend that
Like I said, having that would fix lots of scripting workarounds and other issues present on many mods/scripts related to that inability to identify just the first body part hit
It should much easier to go ACE way now with new _context parameter
Regardless of the method as long as it is posible
You script-collect all damages and on last one (LastHitPoint), sort by amounts and biggest one will be your most likely hit part
Modded hit point is no longer needed, engine provides a moment when last hit point is damaged in the damage packet
I don't get it, people asked for the directHit bool even thou there were also work arounds for that (they were even easier than the workaround for the body part) and no one complained but if I ask something far more useful then I should just work my way to copy ACE. I am nowhere near the level of scripting proficiency to design such medical system that took some of the brightest Arma modders years to balance, I just want that my script that makes the ai drop their weapons when shot in the hands do not trigger when the ai is shot in the foot or the head or the chest because that breaks the immersion
but if it can't be done then I will just remain breaking the immersion rather than reverse engeneer what ACE did
I'm not denying that having this info right in the EH would be useful but knowing Arma, its gonna require quite a lot of engine changes to damage system, target client doesn't know much about how they got hit
Indeed, the devs have been looking into the handledamage code recently so they perhaps already know if such thing could be done on the engine or not
So uhh... looks helicopter AI doesn't know how to use unguided bomb, despite plane AI does
_unit addEventHandler ["HandleDamage", {
params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint", "_directHit", "_context"];
private _old_damage = if(_hitIndex < 0) then {damage _unit} else {_unit getHitIndex _hitIndex};
private _delta_damage = _damage - _old_damage;
if(_directHit) then {
if(_context <= 2) then {
if(_unit isNil "handle_damage_parts") then {
_unit setVariable ["handle_damage_parts", []];
};
if(_delta_damage > 1e-3) then {
_unit getVariable "handle_damage_parts" pushBack [_delta_damage, _selection];
};
};
if(_context == 2) then {
private _parts = _unit getVariable "handle_damage_parts";
if(count _parts > 0) then {
_parts sort false;
systemChat format ["Most damage done to %1", _parts select 0 select 1];
};
_unit setVariable ["handle_damage_parts", nil];
};
};
0;
}];
```Wrote a script snippet which sorts direct (bullet hit) damage by amount and prints it to chat
Using new context parameter
bullet passes through both hand and body thus it triggers twice
plane AI barely does too
vanilla 'unguided' bombs are very much guided for AI
I am too
the mk82 turns midair to hit targets
because AI can always lock with bombs/missiles regardless of config
if you disable their ability to 'guide' by making it have zero manoeuvrability etc they'll always drop the bomb too early and it'll miss the target
Well yeah, true though
spearhead we had to script the bombs a bit for AI so true dumb ones worked for them
cuz we experienced this first hand with IFA3 where there was videos of bombs dropped by AI 'chasing' people in vehicles
RFC (request for comment)
[Feature Request] WeaponChanged and MagazineChanged eventhandler
https://feedback.bistudio.com/T178384
another pretty handy addition would be getVariable with an optional true parameter to set the default value if not defined yet
aka atm
_value = SOMETHING getVariable "ID";
if (isNil "_value") then {
SOMETHING setVariable ["ID",_initialValue];
_value = _initialValue;
};
// vs new
_value = SOMETHING getVariable ["ID",_initialValue,true];```
would make a lot nicer code and potentially more efficient too
(current alternative is: _value = SOMETHING getVariable ["ID",_initialValue]; SOMETHING setVariable ["ID",_initialValue];)
you still need to do the before armor reverse damage calculation
if head is armored and rest of the body is not, headshot can give you biggest damage in legs for example.
having that info ("real" damage before armor) would make ACE a lot simpler and more reliable.
but IIRC dedmen had a look at at once and said it's a mess
how does the engine determine if you can no longer move further - basically unit geometry intersects with another geometry?
I think its a check of collisionShape against terrain and model's GEOM
https://community.bistudio.com/wiki/getCursorObjectParams - is it a bug to report that this command doesnt pick up walls and vegetation - while cursorObject does
Not really imo, it behaves the same as addAction actions
You are too good both in skills but also in kindness, thank you!
Thermals were once a mess too... 💪
they're still a mess, just different
Check @uncut briar 's comment about armor, the implementation is in ACE3's code
Last I saw it was slightly wrong :P
Assumed that uniform armour is additive.
(uniform armour multiplies the unit armour value for some goddamn reason)
uniform armour is the unit armour tho?
cuz if thats the case wouldnt like, csat vanilla units with their armored uniforms basically be getting twice the effectiveness vs a blufor unit putting on the same uniform?
unless you mean the 'armor' value on the base unit and not the hitpoints - inwhich case that's normal, thats how hitpoints work
ie. base unit armor is 4, your hitpoint armor is 2, this means its actually '8'
Looks correct now, not sure if I misread the ACE code before or it changed since I last read it.
when did you last look
Dunno, was before the last ACE update at least.
yeah it got changed then
ACE handles it correctly, otherwise hitpoint sorting wouldn't work at all
(What I was asking for here was actually added in 2.16 or at least a way to achieve the same results with very little effort --->) Going back to the subject a little bit, I remember reading that the current damage system used by handleDamage (where damage from shots on non lethal parts disseminates to lethal parts so that for example units still die from getting shot on the foot several times etc) was just a workaround used at the time probably due to A) Time constrains? B) Lack of blood system postponed but never completed?
Don't think its time to change such core damage mechanics. You can script them for your mission\mod though.
You don't understand how damage handling works. hitpoint passthrough already does what you're asking for.
What you actually want is for projectiles to only affect the hitpoint they actually impacted, which, good news, you can script yourself (and without any config as of 2.16) via HandleDamage EH
Indeed, I wasn't aware of "context: Number - some additional context for the event"
Just checked @gaunt depot's script with if(_context == 2) then { and realized that that might be exactly what I am asking for
I am not on 2.16 so it seems my whole previous rant is trully irrelevant now as of 2.16 (and now I look like a fool for not keeping track of things being added on the dev branch)
So thanks @gaunt depot, @young oasis and devs, I am going to change some of my posts to reduce some of my shame now 😳
Indeed, what I needed you showed me how to do with the new CONTEXT param new to 2.16 but I failed to realize until now
We really need a forum or wiki post detailing what the mechanics behind these do:
_context:
0 : TotalDamage - total damage adjusted before iteration through hitpoints
1 : HitPoint - some hit point processed during iteration
2 : LastHitPoint - the last hitpoint from iteration is processed
3 : HeadHit - head hit is additionally adjusted
4 : TotalDamageBeforeBleeding - total damage is adjusted before calculating bleeding
What do you mean by that?
CTRL+G already exists? and you want what? what is an Eden action?
Why would anyone edit the attributes of the camera?
do3DENAction "ToggleVegetation"
What if I wanna run code when the camera position attribute was changed. Manually or via script.
Currently only possible with a loop.
I tried but no.
Its an error for the whole stringtable. The error print location doesn't know which string, or if it maybe also was multiple
Considering the other ticket he also posted on, is only posted on by other bots..
Its code from the 90s, that is deeply engrained in the engine so no
If you can't tell what error it is, or don't have a repro. Then no
At least I have one or two cases that I've tried to struggle what it was. Both are #define related
The curator logic is serverside. And it needs to know what objects are editable.
We could just exclude local objects, but then you can't edit them.
We could just exclude it from sending to server, but then when a different player switches into that curator slot, it won't have objects that... Well they are local to that other player so they wouldn't have the objects.. 🤔
Make sure to put context on ticket, because that what we'll look at when looking at it.
I'd say that ticket is currently on low prio
UI/HUD changes, won't do
Roger, I'll update it asap
