#arma3_feedback_tracker

1 messages · Page 10 of 1

gaunt depot
#
 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]]
#

How can you tell which HandleDamage calls are for real damage and which ones are bullshit?

solid marten
#

the one that start with false and finishes with true

gaunt depot
#

Also why do you have both HitHead and bleeding overall on the same frame as real HandleDamage, it was always 1 frame before 🤔

solid marten
#

the first true after false is the end of real hitpoint damage

gaunt depot
#

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

solid marten
#

dunno it is the same function internally

gaunt depot
#

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

solid marten
#

first one before hitpoints is the one that is not bleeding

gaunt depot
#

What if you didn't have any hitpoints?

solid marten
#

then it will be first

gaunt depot
#

Damage in cars for example, its always applied without hitpoints

#

You get double -1 HD fire

solid marten
#

I can change true false for 01234

#

each one will mean something then you will see which is which

gaunt depot
solid marten
#

lemmie have some coffee and think of number assignment

gaunt depot
#

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

solid marten
#

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

gaunt depot
#

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

solid marten
#

let me change to numbers and then I can run a test case, you can prepare test mission in meanwhile

gaunt depot
#
[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]]
gaunt depot
#

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

gaunt depot
#

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

outer frigate
#

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)

gaunt depot
gaunt depot
#

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

solid marten
gaunt depot
# solid marten 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

solid marten
#
  {
    CollisionHeadHit,
    TotalDamage,
    FirstHitPoint,
    HitPoint,
    LastHitPoint,
    TotalDamageBeforeBleeding
  };```
gaunt depot
#

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:

  1. Bleeding overall: 0.1
  2. Real overall: 0.9
#

Either way these context numbers are really useful

#

@regal nimbus gotta see this

gaunt depot
# solid marten

Try shooting with 1 bullet through both legs at once, will it assign numbers properly?

solid marten
#

maybe not collision

#

lets call it headhit for now

#

through both legs

gaunt depot
#

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?

solid marten
#

what do you mean

gaunt depot
#

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

solid marten
#

some hits are postponded in the engine

#

they literally added to pospond handler

gaunt depot
#

169939 for real HandleDamage calls on both legs

gaunt depot
# solid marten

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?

solid marten
#

nice catch it had 0 damage so it was ignored

#

will tweak

gaunt depot
#

Ditch FirstHitPoint?

#

TotalDamage already marks that next HitPoint will be first

solid marten
#

so this means there has to be firstandlast hitpoint choice as well in case only 1 hitpoint calculated

#

you sure?

gaunt depot
#

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

solid marten
#

ok lemmie see

gaunt depot
#

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

solid marten
#
  {
    HeadHit,
    HitPoint,
    LastHitPoint,
    TotalDamage,
    TotalDamageBeforeBleeding
  };```
#

@gaunt depot shot in legs

gaunt depot
#

I'd swap around enum indexes though

solid marten
#

like what

gaunt depot
#
  enum class HandleDamageCtx
  {
    TotalDamage,
    HitPoint,
    LastHitPoint,
    HeadHit,
    TotalDamageBeforeBleeding
  };
#

So normal context indexes are 0-1-2

#

And weird ones are >2

solid marten
#

no problem

gaunt depot
#

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.

sinful kettle
#

too slow

gaunt depot
#

10 years too late?

sinful kettle
#

no I mean using string

gaunt depot
#

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

sinful kettle
gaunt depot
#

Because you'll need stuff like:

FallDamageTotalDamage
FallDamageHitPoint
FallDamageLastHitPoint

#

because fall damage does damage to hit points

#

damage kind gonna need a separate parameter

devout wave
#

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.

gaunt depot
solid marten
devout wave
# gaunt depot Do you mean that isDirect bool in HandleDamage?

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.

gaunt depot
#

If the damage came from projectiles?

solid marten
#

direct bullet hit or indirect i suppose

gaunt depot
#

I edited its description because its it not just for fall damage but for a lot of stuff, but what is it true for?

gaunt depot
solid marten
#

/// is stored damage indirect or penetration type
bool isIndirect;

gaunt depot
#

So it is true for direct projectile hits and false for everything else

solid marten
#

no false for direct

#

but EH has it flipped

gaunt depot
#

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

devout wave
solid marten
#

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
gaunt depot
devout wave
gaunt depot
# solid marten this is what handle damage returns: bool IsDirectHit() const {return valueRange...
    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)

solid marten
#
  {
    // 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;
  }```
gaunt depot
#

Always except that one single HitHead fake fire thronking

gaunt depot
#

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

gaunt depot
#

@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

gaunt depot
solid marten
#

if you gonna have forceAllHitpointsDamageSync you need to know when the last hitpoint is processed

gaunt depot
#

I was just going to do that at the end of the frame

solid marten
#

looks like the most sensible option to sync everything

#

it does sync fine when you are not using scripts

gaunt depot
#

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?

solid marten
#

no the init message is overwritten with new value

gaunt depot
#

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?

solid marten
#

does it need to be?

desert trench
#

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?

solid marten
#

sure

unborn acorn
#

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

desert trench
# solid marten sure

made a private ticket as the armahosts setup info probably should not be public: https://feedback.bistudio.com/T178029

Two important parts:

  1. on my local test setup i do get a warning to server console and its log - for some reason not with the armahost setup
  2. 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
alpine tulip
gaunt depot
# solid marten does it need to be?

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?

desert trench
#

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/>

daring wagon
#

They are getting better

gaunt depot
#
  1. Is it possible to make forceFlagTexture to work with simple objects?
  2. Is it possible to make getObjectTextures to work with simple objects? (you can set simple object textures with setObjectTexture)
azure crane
daring wagon
#

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?

sinful kettle
#

so I guess it should be missions\MyMission.VR?

daring wagon
#

That makes sense. I thought it would look for folder name recursivly from missions/..

#

Guess the example is wrong then.

sinful kettle
daring wagon
#

Gimme a sec. I will test multiple cases

sinful kettle
#

ok. I'll leave the biki update up to you then 😛

daring wagon
#

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

sinful kettle
#

the code triggers the 3DEOnTerrainNew EH

daring wagon
#

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

daring wagon
#

It should only do that if terrain differs from current terrain and it also needs to trigger "onMissionLoad" EH

sinful kettle
#

yeah it triggers if you're not in that terrain. my bad

daring wagon
#

and "onMissionLoad"?

sinful kettle
#

it only triggers the event if the load is successful

daring wagon
#

well, that's fine

#

No clue why it breaks modded interface then 🤷‍♂️

sinful kettle
#

because load is not successful

daring wagon
#

It returns true though

sinful kettle
#

there's another code. it's different from the script command

#

(mission is loaded async)

daring wagon
#

wait a second

#

it does load even mission that don't exist

sinful kettle
#

yep

#

idk if it should check tho?

daring wagon
#

idk as well

sinful kettle
#

is there a loadNew3denScenario?!

daring wagon
#

The name suggest it "loads" an existing scenario

#

create3DENScenario

sinful kettle
#

then I guess it should check

daring wagon
#

I mean

sinful kettle
#

it does check world missions doesn't

daring wagon
#

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.

sinful kettle
#

well I'll fix it in the game code. no need to hack things meowsweats

daring wagon
#

well, fileExists wouln't be hacky if it worked for missions/mpmissions

#

Do you need a ticket, or was there one already?

sinful kettle
#

I'll just link to that. no need then

sinful kettle
daring wagon
#

Not sure what you mean.

sinful kettle
#

the mission that loads when you load into a world (in main menu)

#

actually I don't have to check that. nvm

daring wagon
#

cfgWorlds>world>cutscenes I think

sinful kettle
#

uhmm has CBA been taken down?! it's gone from my workshop folder think_turtle

#

omg...Steam has removed half my mods when I launched the dev account meowsweats

outer frigate
#

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 😅

sinful kettle
#

Design decision
Showing the icons at the side doesn't make much sense to me

unborn acorn
#

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

sinful kettle
sinful kettle
solid marten
#

@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

outer frigate
solid marten
#

"Elon Musk Keto Gummies– IS IT SCAM OR REAL PRODUCT?"
Jesus Christ!

outer frigate
#

i want to know now

devout wave
sinful kettle
#

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

devout wave
gaunt depot
#

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?

solid marten
solid marten
gaunt depot
#

BOOL forceHitpointsDamageSync ENTITY ? with BOOL operand being JIP-only flag for server-side?

solid marten
gaunt depot
solid marten
#

bool is so that you know the sync was attempted, false when null object or not local

#

or not entity

gaunt depot
solid marten
#

hitpoints are entity thing, anything lower than entity obviously wont work so it is rejected

solid marten
#

why do you need to use only jip

#

might as well sync hitpoints

gaunt depot
#

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?

solid marten
#

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

gaunt depot
#

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

solid marten
#

it is very good design

gaunt depot
#

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

solid marten
#

not really without this further sync your mission produces different hitpointdamage for static objects

gaunt depot
#

Does it? From my tests it produced same picture

solid marten
#

for me it was different

gaunt depot
#

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

solid marten
#

oh I see what you mean because the second client was joining as jip it was different i gotcha

gaunt depot
#

Yeah, if you start my repro mission second client counts as JIP as damage happens before they load in

solid marten
#

well I can certaily add that boolean

gaunt depot
#

if you do damage a bit later it produces same damage through HandleDamage on both clients

solid marten
#

the thing is it sends hitpoints array of floats, it is nothing why not have it anyway

gaunt depot
#

you can add some sleep before projectiles spawn

gaunt depot
solid marten
#

this way you have definitly identical values

#

and the nearly identical values of damage was actual message type that was screwing it

gaunt depot
#

That's why I asked if the command will be server-only few days ago, thought it would only update the JIP messages

solid marten
#

i thought about it but there could be times when you want it run on client

#

yes that loss of precision

gaunt depot
#

Gotta save them bytes on 56K dial up modem in 2002 I guess

solid marten
#

the values were correct on the send end and on receiving end they were screwed up

gaunt depot
#

Oh, thought message was cutting down floats to save on traffic or something lol

solid marten
#

i have already removed a bunch of messages that were sending empty array of nonexisting hitpoints so it should be improved already

gaunt depot
#

Was that FAK healing damage descrepancy also because of that? (not sure if you looked at that ticket from TRAGER)

solid marten
#

BTW worth checking, if not I know how to fix it now

solid marten
#

yeah I think thereisa ticket as well?

#

Will look at those in January I'm done for December

gaunt depot
#

Anyway, big thanks for this command, sucks it can't be fixed in the engine but scripted patch is fine too.

solid marten
#

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

gaunt depot
#

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

solid marten
#

why dont you run a dev build server as well?

outer frigate
#

no dev build server only RC build

gaunt depot
#

And pvp mission without bots needs plenty of players to be worthwhile

solid marten
#

extra xp points for playing on dev?

gaunt depot
# solid marten 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

solid marten
#

how do you modify damage on buildings and why

regal nimbus
#

We want to disable damage on bridges but we'll probably do it via config.

solid marten
#

bridges have hitpoints?

regal nimbus
#

Some of them can certainly be destroyed. I don't know if Arma has a secondary mechanic for that.

solid marten
#

hitpoints != ability to get destroyed

regal nimbus
#

Don't objects without hitpoints still fire handleDamage with the general damage hitpoint though?

sinful kettle
#

afaik objects without hitpoints don't take damage from hits

dusk basalt
#

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

sinful kettle
#

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

dusk basalt
#

understood, thank you

sinful kettle
#

your current dedicated VRAM is 32 MB. try increasing it to at least 128 MB

near cedar
#

But 256KB should be enough for everybody

gaunt depot
solid marten
#

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?

gaunt depot
#

@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:

  1. Client: Damage #1 for 0.1, changes damage 0->0.1
  2. Client: Damage #2 for 0.2, changes damage 0.1->0.3
  3. Server: Damage #1 arrives 0->0.1, sync #1 executes
  4. Client: Sync #1 arrives, damage is now back to 0.1 from 0.3 done at step 2
  5. Client: Damage #3 for 0.3, changes damage 0.1->0.4
  6. Server: Damage #2 arrives 0.1->0.3, sync #2 executes
  7. Client: Sync #2 arrives, damage is now back to 0.3 from 0.4 done as step 5
  8. Server: Damage #3 arrives 0.3->0.7, sync #3 executes
  9. Client Sync #3 arrives, damage jumps from 0.3 to 0.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

solid marten
#

non scripted damage works fine it is scripted damage that messes things up

gaunt depot
#

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?

solid marten
#

i fixed the jip issue for normal damage

gaunt depot
#

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?

solid marten
#

i don’t know you will have to play and see

gaunt depot
#

If there was a way to only sync to JIP, this scenario could be avoided

solid marten
#

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

gaunt depot
#

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

gaunt depot
#

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? 🤔

solid marten
#

let’s continue this conversation after you actually try it

solid marten
#

Any healing wishes?

#

Im looking at that part of code

gray wharf
solid marten
#

fixed

gray wharf
#

w00t

solid marten
#

bleeding on all clients fixed

#

stopbleeding after healing - fixed

gray wharf
#

Can AI use advanced damage system too? (heal you and be downed)

solid marten
#

dunno, was thinking in terms of some script command/ehs maybe

gray wharf
#

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

young oasis
#

Or just making HandleHeal work like it did in Arma 2

#

Would much facilitate adding a toggle for ACE's medical system

outer frigate
#

would probably have some gamemode uses elsewhere too

unborn acorn
unborn acorn
wind light
#

@tropic marsh Thanks, the issue has been scheduled for a fix

solid marten
tropic marsh
#

:)

unborn acorn
#

And some other variants (class MedicalGarbage_) mb for Medkit will be a good prop

Will this props fly if building destroyed think_turtle

alpine tulip
#

Not a healing but I guess I want a “proper” fixing vehicle animation than injecting something into myself and magically fixes the wheel

turbid terrace
#

probably too deep but prevent AI from moving when being healed.

tropic marsh
#

glad i could help

alpine tulip
solid marten
desert trench
#

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

alpine tulip
devout wave
desert trench
#

in SP/with AI? 😄

#

yeah you can do the archaic radio 0-6-x support if you are GL

#

if not, tough luck

daring wagon
#

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.

gray wharf
# solid marten is there a prop in game?

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)

gray wharf
gray wharf
devout wave
# desert trench in SP/with AI? 😄

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".

daring wagon
#

Even when healing limping AI the action takes too long e.g the unit gets out of range before the healing action has finished

desert trench
#

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";
    };```
daring wagon
#

Looking at these configs, I wish we had a way to turn them off/on conditionally.

gaunt depot
#

^

unborn acorn
desert trench
# daring wagon Looking at these configs, I wish we had a way to turn them off/on conditionally.

[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

unborn acorn
clear glen
unborn acorn
solid marten
livid sleet
# unborn acorn I can provide another two CfgAmmo sounds issues 1) hand grenades impact sounds ...

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.

alpine tulip
#

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

devout wave
#

Does animDone not cover that?

alpine tulip
#

Never thought it will work? Isn't that for RTM anim?

devout wave
#

I don't know, it doesn't say

gray wharf
uncut briar
#

Meh, cosmetic litter can be scripted

uncut briar
outer frigate
#

i also think just disabling the ability to heal would be really funny

solid marten
solid marten
#

now that bleeding works and FAK stops it, maybe it is time to introduce bleeding to death option

#

a mission param 'allowBleedingToDeath'

daring wagon
#

Sound cool. Does A3 have some proper feedback effect to show the player when he bleeds out?

solid marten
#

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

devout wave
solid marten
#

Do not use,WIP!

#

lol

daring wagon
#

Vladimir Hynek
He's still working on it 😄

#

GetBleedingFrequency
Guess that never made into the game

solid marten
#

it is in the engine and it regulates how often blood spats are created

desert trench
#

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)

lunar star
desert trench
#

^

Some sounds are not played from beyond terrain view distance

#

probably some optimization done years ago where long distance weaponry wasnt a thing yet

lunar star
#

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 😦

desert trench
#

sound objects are only created for special cases or every moving sound - anyone knows?

lunar star
#

Weapon firing sounds are created beyond terrain viewdistance though so there's some hope I guess 🤷‍♂️

sinful kettle
sinful kettle
#

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?

sinful kettle
#

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? think_turtle
those sounds are too weak, and people that are used to the current grenade sounds might not notice them anymore

lunar star
lunar star
sinful kettle
#

already fixed internally

lunar star
#

Awesome

sinful kettle
#

but still no guarantee it'll be released to the public. it depends if it passes the tests

hallow sun
#

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;
desert trench
sinful kettle
#

yes hmmyes

#

well the "metal" one is ok I guess. but the "wood" is kind of hard to hear

outer frigate
#

theres meant to be hand grenade impact sounds???

devout wave
# sinful kettle

That sounds OK when it initially hits, is it just the audible distance being too short?

devout wave
outer frigate
#

oh

#

(i didnt know there were concrete sounds im deaf)

desert trench
#

both seem fine to me

near cedar
#

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

desert trench
#

bug or not bug?

[fog,fogParams] = [0,[0,1,45.1339]] (client)

  1. server exec: 0 setFog [1, 1, 45.1339];
    => instant fog

[0.901575,[0.901575,1,45.1339] (client)

  1. server exec: 0 setFog 0;
    => fog doesnt goes away
    fog values go very small:

[5.24408e-008,[5.24408e-008,1,45.1339] (client)

  1. 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
daring wagon
#

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

desert trench
#

getPosASL player: [1087.5,3923.01,4.40144],
getPosATL player: [1087.5,3923.01,0.00143862]

#

sounds fairly similar

unborn acorn
near cedar
#

It'll make a noticeable impact on immersion, throwing a grenade and knowing that it landed in the structure just by the material sound

regal nimbus
#

@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.

desert trench
# solid marten no negative values there

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

sinful kettle
#

I guess I can make it play multiple times

desert trench
#

(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

sinful kettle
#

But I'll take a better look later

outer frigate
#

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

azure crane
#

doesn't it change with pc/windows user name or whatever is used to generate it?

outer frigate
#

still would rather change in arma than change entire user profile name

gray wharf
#

yup
main profile = Windows username and that's it, quite "90s feeling" 😅 good thing I name my Windows account Lou Montana

stoic idol
#

just create custom profile?

devout wave
#

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.

outer frigate
#

plus having an unused profile just named "willi" is a bit annoying (albeit very funny)

gaunt depot
#

Administrator gang

fickle root
#

user, player, admin, kiosk, asus, giga, lenovo, hp etc

gray wharf
#

DESKTOP-UV8J5 has joined

daring wagon
#

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.

unborn acorn
#

allowDamage Eden Editor checkbox won't work if mission launched on dedicated server, work fine if hosted or SP

outer frigate
#

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

sinful kettle
#

you can do it by checking his current action

#

also iirc something was added recently by KK?

outer frigate
devout wave
#

What does the "Combat" return do then?

sinful kettle
#

what is "Combat" then?

outer frigate
#

combat pace and raised

#

no way of differentiating

devout wave
#

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

outer frigate
#

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)

sinful kettle
#

what is your definition of "raised" then?

outer frigate
#

able to fire with left click

#

or fire actually firing on first execution

sinful kettle
#
_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"

outer frigate
#

forceAim being an action?

sinful kettle
#

property

outer frigate
#

ah

sinful kettle
#

use instead of "canPullTrigger"

outer frigate
#

doesnt work for combat pace lowered

#

returns 1 regardless

#

disableWeapons works tho

sinful kettle
#

just compare the properties for several anim states to see what you're actually looking for

outer frigate
#

either way not the neatest but 🤷

limpid rune
#

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

unborn acorn
desert trench
unborn acorn
unborn acorn
daring wagon
gaunt depot
desert trench
#

pretty sure KK broke it when he added the fn_isDebugConsoleAllowed.sqf 🤐

#

(above is from 1.6x or so)

daring wagon
#

Is this the old script or an up to date version?

desert trench
#

latest is this (from 2019 or earlier)

solid marten
solid marten
#

the reason being you could cheat yourself through campaign, you still can but you need to make extra steps to install mod

daring wagon
#

How can you cheat yourself through campaign? It's only for self-created scenarios

solid marten
#

dunno, never looked at it in this respect, the focus always was MP, for everything else there was a mod

daring wagon
#

I have updated the description.ext page to make it clear that it's MP only

desert trench
desert trench
#

anyhow seems there is not interest to make testing easier

solid marten
#

I will make a request, seems pretty easy to enable it in SP but this is not my call

desert trench
#

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

solid marten
#

add this to the ticket please

desert trench
#

done

alpine tulip
#

#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

alpine tulip
#

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

alpine tulip
#

Also positionCameraToWorldVisual maybe good

outer frigate
alpine tulip
#

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

alpine tulip
unborn acorn
devout wave
# unborn acorn Countermeasures flares of WY-55 helicopters ejects to the wrong directions (to t...

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.

unborn acorn
#

moreover no affect for gameplay, this need to be done because it complied with existing 3D model and there were no questions

sinful kettle
dreamy bane
sinful kettle
devout wave
dreamy bane
fluid meteor
dreamy bane
#

i assume the airfield position is retrieved from the configs, not from locations

fluid meteor
sinful kettle
dreamy bane
#

@fluid meteor my question was to Leo about possible bug

fluid meteor
#

Sorry my mistake

sinful kettle
#

just because it's the closest runway doesn't mean it's the best one

dreamy bane
#

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

sinful kettle
#

above them (y coord wise)
you mean y is north?

dreamy bane
#

yes north

sinful kettle
#

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

dreamy bane
#

ok well thx for looking into it Leo, i guess predicting the "closest" AF is harder then 😄

#

getBestAirfieldCandidate - command ;D

sinful kettle
#

if it is for AI just use landAt
if it is for player, well who uses autopilot anyway?! meowsweats

#

just learn how to fly hmmyes

devout wave
sinful kettle
#

make a ticket

#

I assume the syntax would be heli landAt [object, mode]

devout wave
#

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"?

sinful kettle
#

it doesn't really matter but landAt seems better imo

sinful kettle
#

what a mess 🥹
it won't be easy meowsweats

dreamy bane
devout wave
sinful kettle
azure crane
#

Cool, now give us a cubic bezier curve parameter to set a custom trajectory for landing wobcat

near cedar
#

Omg

#

Is this real life or is this fantasy

gray wharf
#

caught in a landslide

uncut briar
sinful kettle
#

don't use local objects hmmyes

outer frigate
#

there is a local only box for objects added by BI hmmyes

regal nimbus
#

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.

dreamy bane
#

can we get TargetFound EH? similar to KnowsAboutChanged but when targets are found. (targets that can be retreived by the targets command)

warm chasm
uncut briar
#

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.

devout wave
#

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

warm chasm
#

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.

desert trench
#

would be handy to see fixed

solid marten
#

canAdda 🇨🇦

native tulip
desert trench
# solid marten what about this https://feedback.bistudio.com/T127184#2279549

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

sinful kettle
devout wave
#

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

sinful kettle
#

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'...

native tulip
#

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.

solid marten
native tulip
#

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.

desert trench
uncut briar
#

param better than mission flag, flags are not useful for mods.

lunar star
solid marten
#

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

devout wave
solid marten
#

right, so how alt syntax would help, make canAdd say yes?

devout wave
#

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.

solid marten
#

can I have an example where canAdd goes against script commands?

devout wave
desert trench
#

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

solid marten
#

So how do we deal with the fact that inventory system does the check when you manipulate it via UI

alpine tulip
#

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

hallow sun
solid marten
hallow sun
unborn acorn
alpine tulip
solid marten
daring wagon
#

CfgTaskEnhancements
Has this ever been implemented?

#

I am asking because there are also properties like taskManagement_propagate

daring wagon
#

Seems that only enable, 3d and propagate are being used in scripts. The rest idk.

sleek scaffold
#

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...

desert trench
#

p:\a3\functions_f\Vehicles\fn_unflipVehicle.sqf

sleek scaffold
#

Additionally, the description "Safely unflips selected vehicle" is not so accurate, as the fnc will kill any unit close to the vehicle being unfliped

desert trench
#

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

unborn acorn
#

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

outer frigate
#

just like in real life

young oasis
#

Just... unequip the laser if it's a problem

unborn acorn
devout wave
#

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.

devout wave
#

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.

outer frigate
#

mine does not

unborn acorn
# outer frigate no

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

outer frigate
#

yes thats the laser mode setting

#

pressing the button does nothing if its set to that

alpine tulip
#

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

outer frigate
#

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

devout wave
# outer frigate yes thats the laser mode setting

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.)

outer frigate
outer frigate
#

i could probably add an indicator to ace if i can be bothered doing the gui

alpine tulip
#

I mean for model.cfg. It's not possible to animate a proxy in a scripted way, especially proxy on a proxy

outer frigate
#

yeah and cant use setobjecttexture on weapon attachments so couldnt make a physical light up anyway

devout wave
alpine tulip
#

Ah well I forgot what we talked in the earliest days 🤣

outer frigate
#

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

devout wave
outer frigate
#

its unrealistic and already has a solution whilst also being able to be done yourself 🤷‍♂️

devout wave
#

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.

outer frigate
#

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)

alpine tulip
#

Honestly though, and not really related with lasers anymore but opticsMode animation source so like HHS L

gray wharf
#

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

outer frigate
outer frigate
#

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

sleek scaffold
hallow sun
solid marten
#

Could you include package names as well please?

gaunt depot
gaunt depot
gaunt depot
#

Can't wait to see what is getEntityInfo

#

Wish it wasn't a composite command but a separate command for each parameter though

gaunt depot
#

Interesting, damage messages are discarded if entity changes locality from a crashed client to the server

#
  1. Player's game is crashing, (... is losing connection)
  2. Shoot their entities
  3. Player's client is finally kicked
  4. Their entities switch locality to server and all damage is discarded
unborn acorn
desert trench
#

also helpful would be such filters for vehicles and allUnits

solid marten
#

what about extending nearEntities to take trigger or marker?

solid marten
uncut briar
#

Wasn't nearEntities made multithreaded at some point?

desert trench
desert trench
desert trench
solid marten
#

should be

#

in the next one

uncut briar
#

@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)

gaunt depot
gaunt depot
#

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.

gaunt depot
#

Not sure if it should be engine fixed because mine is technically placed by another (died and deleted) soldier

unborn acorn
desert trench
# uncut briar <@90532520101183488> did it for all "nearest" commands. I recall he was doing it...

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

gaunt depot
#

lastEntityCausingDamage is it just a single entity and not vehicle-instigator system?

daring wagon
#

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

gaunt depot
#

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

solid marten
gaunt depot
#

ENTITY getEntityInfo STRING maybe? (player getEntityInfo "lastDamageTime")

gaunt depot
solid marten
#

that’s what the engine provides a single object

gaunt depot
#

Speaking of vehicle-instigator damage sources, this fake HitHead EH only provides vehicle and no instigator, while bleeding EH and normal EHs provide both

solid marten
#

make a ticket I’ll investigate

gaunt depot
#

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]
solid marten
gaunt depot
#

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

gaunt depot
solid marten
daring wagon
#

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.

gaunt depot
#

@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

solid marten
daring wagon
#

What if we only allow exiting early in !isMultiplayer

#

!isMultiplayer && {someVariable}

solid marten
#

those params are what you select in multiplayer, how do you even use them in SP?

daring wagon
#

Via custom UI

#

Created in Briefing screen.

solid marten
#

i’m lost

#

are you talking about SPmultiplayer?

daring wagon
#

Singleplayer

limpid rune
#

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

gaunt depot
#

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

solid marten
#

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?

gaunt depot
solid marten
#

tomo probably

desert trench
#

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

solid marten
#

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 ?

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.

devout wave
#

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};```
daring wagon
#

That would break it in singleplayer

solid marten
devout wave
# daring wagon That would break it in singleplayer

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.

daring wagon
#

How will the variable be set in singleplayer for existing missions?

devout wave
#
waitUntil {missionNamespace getVariable ["bis_var_paramsInit",true]};```
and then doing MP/SP detection is up to you via a preinit function or something?
daring wagon
#

So you want me to set that variable to false and then have it run until the end of time? 😄

devout wave
#

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.

daring wagon
#

Don't worry. One solution is in the ticket.

solid marten
#

I will add BIS_fnc_disableInitParams as @daring wagon suggested if approved

#

or BIS_fnc_disableParamsInit

daring wagon
#

Awesome. Thanks for looking into it.

solid marten
#

"BIS_fnc_initParams_skip" i think

daring wagon
#

Sounds good

stone tree
gray wharf
azure crane
#

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.

blazing arrow
#

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

unborn acorn
desert trench
#

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

desert trench
solid marten
daring wagon
#

Will do

sinful kettle
alpine tulip
#
[["Vehicle","HUDs"]] call BIS_fnc_advHint;```Honestly why does this error message exist? Even vanilla hint can cause this error
azure crane
#

wasn't there some kind of a memory leak if the hint was too long?

alpine tulip
#

I never heard such?

daring wagon
#

Probably because on some resolutions the hint will be cut off.

#

This error only shows in eden editor right?

alpine tulip
#

Wasn't aware actually

unborn acorn
#

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

gray wharf
daring wagon
#

profilenamespace getvariable ["BIS_fnc_init_displayErrors",false]

#

Is this true for you?

gray wharf
#

(no idea, I'm in bed huhu)

daring wagon
#

In bed?

#

wth

#

@alpine tulip Check that variable. The msg should not show by default outside of 2D, 3D Editor or preview

alpine tulip
#

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

daring wagon
gray wharf
azure crane
#

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?

daring wagon
#

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

azure crane
#

so there's nothing like f.e. z-index in CSS for these elements?

daring wagon
#

nah

azure crane
daring wagon
#

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

gray wharf
#

cleared, thanks

sleek scaffold
#

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....

outer frigate
sleek scaffold
# outer frigate

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...

outer frigate
#

iirc is false when that happens

sleek scaffold
# outer frigate 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

gaunt depot
#

It is sort of possible to connect HitPart and HandleDamage but rather tricky

sleek scaffold
#

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

gaunt depot
#

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

sleek scaffold
gaunt depot
#

What if somebody want to know if left hand was shot? Another bool for each part?

sleek scaffold
gaunt depot
#

What if bullet went through the head and exited through torso?

sleek scaffold
#

so if the shot was in the hand you would only get true on the loop of handle damage that handled THAT true damage

sleek scaffold
gaunt depot
#

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

sleek scaffold
gaunt depot
#

It should much easier to go ACE way now with new _context parameter

sleek scaffold
gaunt depot
#

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

sleek scaffold
#

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

gaunt depot
#

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

sleek scaffold
alpine tulip
#

So uhh... looks helicopter AI doesn't know how to use unguided bomb, despite plane AI does

gaunt depot
# sleek scaffold I don't get it, people asked for the directHit bool even thou there were also wo...
_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

gaunt depot
#

bullet passes through both hand and body thus it triggers twice

limpid rune
#

vanilla 'unguided' bombs are very much guided for AI

alpine tulip
#

I meant Mk82, true “dumb” bomb

#

LGB is not the thing I'm talking about

limpid rune
#

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

alpine tulip
#

Well yeah, true though

limpid rune
#

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

desert trench
desert trench
#

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];)

uncut briar
#

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

desert trench
#

how does the engine determine if you can no longer move further - basically unit geometry intersects with another geometry?

gaunt depot
desert trench
uncut briar
#

Not really imo, it behaves the same as addAction actions

sleek scaffold
sleek scaffold
uncut briar
#

they're still a mess, just different

gaunt depot
regal nimbus
#

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)

uncut briar
#

@young oasis might be interested if it's true

limpid rune
#

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'

regal nimbus
#

Looks correct now, not sure if I misread the ACE code before or it changed since I last read it.

outer frigate
#

when did you last look

regal nimbus
#

Dunno, was before the last ACE update at least.

outer frigate
#

yeah it got changed then

young oasis
sleek scaffold
# gaunt depot

(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?

gaunt depot
#

Don't think its time to change such core damage mechanics. You can script them for your mission\mod though.

young oasis
#

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

sleek scaffold
#

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 😳

sleek scaffold
#

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
untold sky
#

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?

daring wagon
#

do3DENAction "ToggleVegetation"

daring wagon
untold sky
#

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

untold sky
untold sky
untold sky
alpine tulip
#

At least I have one or two cases that I've tried to struggle what it was. Both are #define related

untold sky
untold sky