#arma3_feedback_tracker

1 messages ยท Page 6 of 1

untold sky
#

Just comparing commands that do 10k type checks inside them before and after
[[0.060507,16527],[0.00874,100000]]
so type checks about 7x faster

daring wagon
#

Would there be a chance to see a new command. Something like "isNumeric" to check if a value is a number of any kind?

parseNumber and BIS_fnc_parseNumber both return either 0 or -1 if it cannot be parse which is a bit unfortunate if the value is 0 or -1

Yesterday we came to the conclusion that it's only possible to reliably check that with regEx.

I believe it would be a nice addition that would fit well with the new "onEditChange" EH.

untold sky
#

would
parseNumber [value, defaultValue]
be a alternative?

daring wagon
#

I think so

sinful kettle
#

isn't it kinda broken already?
like when you do parseNumber "-5D" you get -5 think_turtle

daring wagon
#

what? ๐Ÿ˜„

untold sky
#

It tries to parse number at end, it doesn't check if there is garbage after it

#

could also do that with array tho
parseNumber [value, defaultValue, strict bool]

sinful kettle
#

or was it strtod?
idk meowsweats

daring wagon
#

Starting whitespaces are discarded, then as many valid characters are used to be interpreted as a number until an invalid character is found then the rest of the string is ignored.
But wouldn't 0 be a valid character as well?

#

That's from the biki

#

oh nevermind

#

it's -5D "DEE"

#

Shit small tablet screen ๐Ÿ˜„

#

Anyway. Do you need a ticket for the alt syntax?

untold sky
#

ye

#

That thing.
10k array variable creations each
[[0.166806,5995],[0.126662,7895]]
Well.. It's a small win atleast

daring wagon
untold sky
#

nvm I fucked up that benchmark
[[0.297885,3357],[0.190949,5237]]

gray wharf
untold sky
#

Yes. On everything that uses this function.
Which is everything that creates array or hashmap

sinful kettle
untold sky
#

arrays are created at runtime

uncut briar
#

I wonder what would be average PFH script execution time with CBA+ACE now vs like 2 years ago ๐Ÿ˜„

Would be quite interesting to see.

gray wharf
sinful kettle
untold sky
#

Sadly the way arrays are created has always been done inefficiently.
And still is somewhat bad. But we ain't gonna rewrite... 1021 uses of this.

sinful kettle
untold sky
#

yes

#

This is the "default" way we create arrays, and everyone adding new commands just copies what someone else had already done before them

sinful kettle
#

why would something like getUnitLoadout need a pointless check tho? notlikemeow
the command knows what it wants ๐Ÿ˜…

gray wharf
untold sky
#

yeah

gray wharf
#

maw

untold sky
# untold sky arrays are created at runtime

Actually not runtime arrays, the instruction uses a more efficient way since I updated it march last year (before that it created the array, then created a copy, returned the copy and threw away the original it created first)

daring wagon
#

Look, these are the infos that make me smile everytime. Lou we need to document now! ๐Ÿ˜„

gray wharf
untold sky
#

notlikemeow
operator==(other)
{
if (multi == nullptr)
if (other.multi == nullptr)
return single == other.single;
return false; // our multi is null but the other isn't
if (other.multi == nullptr)
return false; // other is null, but our isn't
return multi == other.multi
}

How about..

operator==(other)
{
return single == other.single && multi == other.multi;
}

notlikemeow

sinful kettle
#

they're not the same think_turtle

untold sky
#

Ah, well precondition, single and multi are never both set at the same time.
if one is set, the other is null

untold sky
#

no

sinful kettle
#

oh wait nvm I get it now

untold sky
#

If both are single, the multi's would be null and be equal

untold sky
#

Wow. I'm finding all kinds of fun new errors.
Game tries to compare game types at game startup, before the types are even initialized. so instead of comparing two types, it ends up comparing two null's notlikemeow

And.. There was a typo I forget a extern on a variable.
Which ended up with markerCreate checking for (string, null, scalar, object)
EXCEPT in release build, where the linker/optimizer notices that we have two same named variables, and merges them together. So it working is kinda an accident ๐Ÿ˜„

untold sky
#

All my testing is successful, now there is only one way to find out if its still broken...
Push to production!! ๐Ÿคฃ

untold sky
#

The ty.. holy what is that super reaction mega thing wtf

alpine tulip
#

Uhh

#

I've clicked it and what

untold sky
#

The type check and array creation thingy improvements will be in prof tomorrow ๐Ÿคž
The short circuiting will wait till next week, maybe I can implement binary commands till then

#

The short circuiting can then also be applied to configClasses (so we have a general solution instead of the hardcoded 3 cases)
and probably also exitWith and.... && {} ๐Ÿ‘€

Mh... I probably have to blacklist && variable from short circuiting, as that may become a call, and I cannot do calls ๐Ÿค”
Mh actually no, I can check the contents of that variable before executing the code.. Unless you do it on _x notlikemeowcry

#

ohh fancy...

select {_x > GlobalVariable}
I can resolve that variable before the loop, and convert the code into
select {_x > 5}
to get rid of variable lookup on every iteration... As I can assume that all variables that come from outside, won't change during the loop (variable assignment is blacklisted, and we are in unscheduled)
But need to think about stuff like pushBack that does modify but.. weirdly
I might just enforce single expression "a b c d _x" ok, " a _x; b c _x" not ok
but then [a _x, b c _x] is a single expression notlikemeow

gaunt depot
#

You can't do select {[...]} anyway

#

Maybe make separate select with these optimizations in place?

#

Though speeding up existing stuff is much better

sinful kettle
#

and wayyy too specific

#

it reminds me of your configClasses "optimization"

#

if you put an extra space it would just not do the optimization

untold sky
#

The point of this is to be better than the configClasses, and more general

untold sky
gaunt depot
#

๐Ÿค”

rose cloak
#

smells like SQF precompile ๐Ÿ™ƒ

near cedar
#

Feel like it's going to drown out any feedback tracker stuff

#

Probably has already

stray hill
#

@rapid badge - let me put it this way - enfusion capabilities are still very much WIP and pretty much a mistery. Unless someone actually works directly on the engine and leaks some info, everything else is speculation. Don't take info from moderators as being accurate whatsoever.

desert trench
#

@near cedar what have you done? ๐Ÿ˜ตโ€๐Ÿ’ซ

uncut briar
sleek scaffold
#

I've a small suggestion to make. When you do something like this:

#
    addMissionEventHandler ["EntityKilled", {
        params ["_unit", "_killer", "_instigator", "_useEffects"];
        if (_unit isKindOf "Man") then {
            0 = [_unit] spawn {sleep 10; _this enableSimulationGlobal false;};
        };
    }]; ```
#

after the 10 seconds and when the simulations are disabled, the body still has the "open inventory" action but you can't take anything from it

#

so it looks glitchy and might confuse players

#

so, why not just remove the "inventory" action from dead units with simulations disabled? Or make it so that when opening their inventory it just closes it again for the player or perhaps showing the inventory screen but not showing any of the items/weapons etc that the dead body has...

#

Many workshop missions that use such "optimizations" implemented lead players to think they "arma glitched" or that it was just arma being arma but it is a measurable and preventable thing. Either the mission maker doesn't "optimize" like that or an "in house" solution is procured... the second would force all the current missions using these measures to work correctly

#

Anyway, I will leave that up here for the judgement of the decision makers

#

PS: not only disabling simulations on dead bodies helps performance but also diminishes or even completely fixes the issue of dead bodies sending tanks into the stratosphere

gray wharf
#

that's a lot of text, but have you tried lockInventory and if it does not work, what about simply extending it to work on dead units?

sleek scaffold
sleek scaffold
gray wharf
#

you can ask for trying to fix this command or hide actions on disabled objects (but some people want that)
a way around would be to use event handlers and reenable simulation on inventory opening (but this EH would be client-side)

sleek scaffold
gray wharf
#

make a ticket

sleek scaffold
#

perhaps just making the lockInventory command work on simdisabled would be enough...

west onyx
#

could unit getSlotItemName -1 return list of all slot item names

#

as array like ["name","","","name","","name"]

gaunt depot
#

So if remote player disassembles your drone while you're controlling it, your character no longer broadcasts getting out of the vehicles and you end up being stuck in some vehicle for everyone but yourself notlikemeow

#

UAV terminals and remote control is FUBAR

#

This not being fixed over 10 years of Arma 3 shows how limited usage of these new features is

#

objectParent returns null for a unit in vehicle in such case

#

Even if unit is actually inside, not just appears inside while being outside

#

So until you connect and disconnect to another drone, you'll remain bugged like this

stone tree
near cedar
gaunt depot
#

PlayerViewChanged doesn't provide _uav if connected UAV is remote notlikemeow

near cedar
west onyx
solid marten
#

you can get that with assignedItems

west onyx
#

that only returns assigned items tho

solid marten
#

no

west onyx
#

doesnt return guns/etc

#

unless ...

solid marten
#

what you propose will do the same

west onyx
#

ahh i see. scratch that then, that is exactly what i wanted

solid marten
#

iโ€™m in bed on my mobile phone

west onyx
#

no worries

solid marten
#

good question, the command is old so probably not, but I will check after a coffee

west onyx
#

i think it would be good to change it to render scope if it isn't

#

99% of uses for weapondirection are draw related, or at least wouldnt be hurt by render scope

sinful kettle
#

omg can someone plz fix the game registering keys in the background?

#

like I run the game, I switch to discord and start typing while the game is launching, then when I switch back to the game it's doing god knows what (launching a mission, doing random stuff in 3den, etc.)

daring wagon
#

Yeah. Or it secretly copying stuff from error pop-ups into the clipboard notlikemeow

uncut briar
devout wave
#

As far as I know, that only happens if you alt-tab during initial loading on launch. I guess whatever handles changing focus hasn't loaded yet.

alpine tulip
#

Found an issue regarded to BIS_fnc_saveInventory/loadInventory/arsenal, due to how it works it is very likely to lose weapon accessories/magazines that on a stored weapon in the uniform/vest/backpack

#

addWeaponWithAttachmentsCargo and/or setUnitLoadout can resolve this but are added recently and those functions haven't updated to the newer method

near cedar
#

House (Large,Abandoned) windows block grenades (2015)
https://feedback.bistudio.com/T84758

Pennyworth in 2016:

The model shown in the video is u_house_big_01_v1_f.p3d, and the same issue also exists with u_shop_01_v1_f.p3d. Both of these models are missing openings for the windows in their geometry LOD.

PR9INICHEK in 2019:

1.96.146114

Issue still reproduced ๐Ÿ˜ฆ

alpine tulip
#

I do not think the lighting can be fixed anytime soon in this stage since it most likely needs model change, or shader update

#

TBH the lighting reminds me the good'ol OFP shadings ๐Ÿ˜„

west onyx
#

is there a wiki page to see all 2.14 related changes to existing commands?

#

we can see new 2.14 commands here

#

but there are many existing commands with changes too, those dont appear to be listed anywhere

rugged nova
#

I don't think there is, but there should be a new category for it. like "Changes with Arma 3 version 2.14"

alpine tulip
unborn acorn
desert trench
#

there is no crewPosition/vehiclePosition to easily get what position an unit is in right?
like atm you have to iterate through fullCrew to get an unit match, and from the index get the role, or is there something more efficient?

limpid rune
#

if neither return anything valid the unit is Broken and should be destroyed

desert trench
#

not bad ๐Ÿ‘Œ

#

for a more a simple, string (+ turret index) return check:

[Feature Request] Add scripting command vehicleRole
https://feedback.bistudio.com/T171599

unlike assignedVehicleRole, vehicleRole should be easy to work in MP regardless of locality I would assume

desert trench
#

Array index out of range

#

is this a coding mistake or something to report?

#

getting on from

allControls _ctrlGrp
count (allControls _ctrlGrp)

#
17:07:20 ["LIB_System_TargetRadar_Radar_fnc_anim_flat - _ctrlGrp",Control #100]
17:07:20 Array index out of range
17:07:20  โžฅ Context:    [] L110 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L57 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L51 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L55 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L77 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_animate.sqf)
    [] L12 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
    [] L62 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
    [] L65 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_a
17:07:20 ["LIB_System_TargetRadar_Radar_fnc_anim_flat - count",2]
17:07:20 Array index out of range
17:07:20  โžฅ Context:    [] L110 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L57 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L51 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L55 (WW2\Core_f\System_Common_f\perFrame\fn_initPerFrameHandler.sqf)
    [] L77 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_animate.sqf)
    [] L12 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
    [] L62 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
    [] L66 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_a
17:07:20 ["LIB_System_TargetRadar_Radar_fnc_anim_flat",2,[Control #100,Control #-1]]```
#

like it returns results just fine, but getting that "Array index out of range"

#

["LIB_Core_perFrameHandleArray",27]

#

the pFH is also low count

sinful kettle
desert trench
sinful kettle
#

so in the onLoad EH right?

#

I've never queried allControls in onLoad think_turtle

#

but I don't see why it should be broken

gaunt depot
#

Well, I give up. I managed to pinpoint a moment exactly when player breaks after their UAV was disassembled, even made a hack fix script

client_uav_remoteControlBullshitFixer = createAgent ["Logic", [0,0,0], [], 0, "CAN_COLLIDE"];
player remoteControl client_uav_remoteControlBullshitFixer;
// Exactly 1 frame later
objNull remoteControl client_uav_remoteControlBullshitFixer;
```But it works in like 90% cases, I was about to celebrate my victory but nope, Arma happens and it fixes the issue *but not always*.
#

Looks like remoteControl isn't instantly broadcasted but arrives in other non-priority message, thus even in 0 latency server-client test it works most of the time but not always

#

I guess if I knew how I could tell that remoteControl change arrived (or was sent?), I could base my delay on that rather than "1 frame later"

#

Unless I need to write a code that makes every client in the game check until remoteControl getter hack return the player, and once all clients are sure that broken player is remote controlling their client_uav_remoteControlBullshitFixer, then it would be the time to disconnect the remote control to fix the bug

west onyx
#

why u fighting the engine. just put a gun shop in the middle and a random loot box and call it a day

gaunt depot
#

@solid marten Does enableWeaponDisassembly send any messages on command execution?

#

I see that it is global but it seems to be applied with some delay, thus I wonder it its because its effect is not broadcasted right away and I can just do:

[_drone, false] remoteExecCall ["enableWeaponDisassembly", 0];
solid marten
#

It is an AG EG command, what do you think

#

if the argument is remote it prepares the message if local it syncs via update message

gaunt depot
#

When done on remote entity, action disappears after a noticeable delay, thus my assumption that it doesn't send anything right away and state arrives with some generic message

#

I guess it instantly reaches the owner, while owner broadcasts it back to sender in a generic message, thus a delay

#

Also what a stupid decision to have this option global, what if you want to let some players disassemble the drones but not the others

solid marten
#

your local action?

gaunt depot
#

Yes, local action remains for like 3-4 seconds after you do _drone enableWeaponDisassembly false

#

When done on a remote entity

#

But disappears instantly on a local entity

solid marten
#

so you want action cancelled immediately?

gaunt depot
#

Of course, makes no sense to have it available for a few seconds after you forbid diassembly through script

solid marten
#

that can probably easier be done locally for executioner but not for everyone else

gaunt depot
#

If you change this flag where entity is local it still takes plenty of time for the flag to update on other clients

solid marten
#

yes

#

so what is the major concern here

gaunt depot
#

Effect is not instant if entity is remote, while it is instant if it is local

#

Thought maybe I can have it instantly disabled everywhere with [_drone, false] remoteExecCall ["enableWeaponDisassembly", 0]; but it looks like using the command on remote entities simply asks the owner to change the flag, without changing it locally first

#

Wish the command was AL EG instead

#

No messages when done on remote entity, just set the flag and have it reverted when update arrives from the owner

#

So you can instantly change flags locally without waiting for owner to send it when it feels like it

solid marten
#

so make AL EG variant via alt syntax?

#

we cannot mess with backward compatibility

gaunt depot
#

Yeah I get that its messed up already.

#

If I could go back in time, I'd suggesting having this command AG EL, so you can allow\disallow diassembly per player

solid marten
#

can still make it as alt syntax

gaunt depot
#

Perhaps it can be helped with an alt syntax, something like:

ENTITY enableWeaponDisassembly [BOOL (FLAG), BOOL (LOCAL)];
#

having local flag on will just change it locally without broadcasting a message

#

Though to be honest, current syntax should've also set the local flag along with the message

#

I guess with alt syntax having it globally disable the disassembly will look like this:

[_drone, [false, true]] remoteExecCall ["enableWeaponDisassembly", 0];
```Pretty ugly to be honest
#

But you could make it possible to have disassembly enabled or disabled depending on a player by doing each frame sets:

{
    _x enableWeaponDisassembly [_x call canIDisassembleThis, true];
} forEach _statics;
#

Constantly overwrite whatever flag arrived from the entity owner

#

Hacky again

#

Consequences of a bad command design

#

I'd suggest having a local flag that will have power over global flag somehow:

_entity enableWeaponDisassemblyLocal BOOL;
```but how could you tell if global flag should be used instead of local flag?
#
_entity enableWeaponDisassemblyLocal true; // I can disassemble this
_entity enableWeaponDisassemblyLocal false; // No longer can
_entity enableWeaponDisassemblyLocal 0; // Use global flag instead (default behaviour)
```Super ugly again
#

Either way, command dreaming aside, the command is bad already, I need to use it right now, lets not bother about it

#

I'd really appreciate if you could look into remoteControl and UAV Terminals mess, its absolutely terrible

#

If remote controlled unit is deleted (drone disassembled), player unit is forever stuck in "I remote control nothing" state, and there is no way to fix that, my hack fix is not 100% reliable

solid marten
#

imma gunna add some change and ask dedmen to add it to next prof so you can test it. the change should make it faster to apply to all clients and immediately remove action on executing client

#

OK how do I test it, have you got copy paste script?

gaunt depot
#

Quick break with remoteControl:

unit = group player createUnit [typeOf player, getPos player, [], 0, ""];
player remoteControl unit;
deleteVehicle unit;

More complex break with UAV terminals, there is a repro mission that has everything setup and executed automatically: https://feedback.bistudio.com/T171566

#

init.sqf from the repro:

    waitUntil {player == player};
    player allowDamage false;
    player linkItem "B_UAVTerminal";

    if(isServer) then {
        // UAV & Quad creation
        uav = createVehicle ["B_UGV_02_Demining_F", player modelToWorld [0,3,0], [], 0, "CAN_COLLIDE"];
        uav setDir getDir player;
        createVehicleCrew uav;
        publicVariable "uav";

        quad = createVehicle ["C_Quadbike_01_F", player modelToWorld [3,3,0], [], 0, "CAN_COLLIDE"];
        quad setDir getDir player;
        publicVariable "quad";

        // Wait till client connects to UAV and disassemble it after a bit
        waitUntil {isUAVConnected uav};
        sleep 0.5;
        player action ["Disassemble", uav];
    } else {
        // When init is done, connect to UAV and control it
        waitUntil {!isNil"uav" && !isNil"quad"};
        sleep 0.5;
        player connectTerminalToUAV uav;
        player action ["SwitchToUAVDriver", getConnectedUAV player];

        // Wait until UAV is disassembled and get in and out of the vehicle
        waitUntil {isNull getConnectedUAV player};
        player moveInAny quad;
        sleep 0.5;
        moveOut player;
    };
#

This is what you end up with in the repro when its launched

#

Broken player can never exit the vehicles anymore on remote clients, only enter new vehicles

#

remoteControl'ing some dummy entity fixes them, but its not reliable

#

Engine fixes aside, if remoteControl or another new command could let you clear remote control state reliably, we could have script fixed it

#

player remoteControl objNull - break remote control to anything that we were remote controlling

#

Or stopRemoteControl player, but modifying existing remoteControl could be better, the command is really bad right now

solid marten
gaunt depot
solid marten
#

ok

gaunt depot
# solid marten ok

Actually, not very complicated, run this on server:

    uav = createVehicle ["B_UGV_02_Demining_F", player modelToWorld [0,2,0], [], 0, "CAN_COLLIDE"];
    [uav, ["enableWeaponDisassembly false", {uav enableWeaponDisassembly false}]] remoteExecCall ["addAction", 0, true];
    [uav, ["enableWeaponDisassembly true", {uav enableWeaponDisassembly true}]] remoteExecCall ["addAction", 0, true];
    publicVariable "uav";
```And have client select "enableWeaponDisassembly false", observe it takes 3-4 seconds for action to disappear
#

What's funny is that it instantly disappears on server, but takes a while for calling client to get the result

#

Very strange command behaviour

solid marten
#

it is not strange, it immediately reaches the server and is applied on the server because it is local on the server but thats all, the change on the client is due to scheduled update which is not considered a priority

#

so I am making it a priority

#

Jesus, just tried without priority, it is BAD

#

is there a ticket for it @gaunt depot

tacit kettle
solid marten
#

this is not it

gaunt depot
#

Can make one

solid marten
#

nah its ok

gaunt depot
#

I still have a use for a local effect command

solid marten
#

Next prof hopefully

gaunt depot
#

Want to make certain static\drones disassemblable only if you're the one who assembled them or groupmate of one

solid marten
#

there is no local event this is global command and it stays global as it has own update message

#

cannot change that

gaunt depot
#

I can sort of make this work with unary command, just disable\enable the feature if you're close to forbidden entities, but its not ideal and still hacky

gaunt depot
#

on a remote entity*

solid marten
#

yes

#

i mean if you make it local

#

at the moment it is global

#

i am leaving it global

#

it will be much more responsive now

gaunt depot
#

Yeah, current command shouldn't be changed

#

Nevermind then, I'll hack this feature together with a per frame enableWeaponDisassembly false\true;

solid marten
#

lets see how it goes before we decide on anything else

gaunt depot
#

If cursorTarget\cursorObject is a forbidden static\drone, then disable disassembly completely, otherwise enable it back

#

Reason why I started looking into enableWeaponDisassembly is I thought that if I can't fix UAV remote control bugs, I can simply forbid disassembly of drones that are currently being controlled by players, but nope, effect is delayed and there still will be a window to disassemble it and bug the controlling player out

#

Nothing is easy with Arma

solid marten
#

Revision: 150494

paper lichen
#

Would server only need this? Or all clients as well?

solid marten
#

??

solid marten
paper lichen
#

As the command gets send from client to server. And the priority is set on server side I guess? So would server only require perf?

solid marten
#

nothing has changed apart from it should reach all clients immediately

gaunt depot
#

Speaking of disabling actions, I had a draft at how disabling action menu through script items could work for all 3 kinds of actions (Game, User, Config):
#arma3_feedback_tracker message

#

Thankfully Disassemble is disableable with a scripting command

solid marten
#

disable how, just showing up in scroll down list or disable completely

gaunt depot
#

Not showing up in the action list at all.

solid marten
#

the problem is how do you identify which action as they are localised

#

anyway remind me next week I'm done for today

gaunt depot
#

By their config names, GetInDriver is config name of the action from CfgActions

gaunt depot
gaunt depot
#

Seems to be working only on remote entities

#

Interestingly changing locality (taking control of the drone) also transfers underground Z to a new owner

desert trench
#

is this the same as with weapon holders to get beamed into the air when you get close/turn towards them?

gaunt depot
dreamy bane
#

could we please get some way to show script errors in code places where they are normally not shown? Like in eachFrame EH (I think). I suggested earlier making a "real" throw-catch feature which would be good too

#

maybe some command to toggle all errors on?

devout wave
gaunt depot
#

Kind of comments ChatGPT scripters write

west onyx
mint hedge
#

Hey, I have just seen the planned features for createHashMapFromArray and call to give a more object-oriented approach. It is a great extension to the SQF language. Paticularly, the ability to use the new call syntax to build quasi-partially applied functions (something we haven't been able to do first-class within SQF before AFAIK)

I may be a little bit late to the party, but if it isn't too late has it been thought about changing the alternative syntax of call from

hashMapObj call [methodName, arguments]`

to

arguments call [hashMapObj, methodName]

the reason being, then both normal functions and hashmap object methods can be passed into the exact same call command, meaning there is less friction in interchanging them. Of course there may be reasons not to, it's just an idea.

sinful kettle
#

but it looks unnatural

#

we have hashmap get "bla" and hashmap set ["bla", _var] so hashmap call ["bla", args] is more consistent
and it is more similar to the . operator in OOP languages blobdoggoshruggoogly

#

both normal functions and hashmap object methods can be passed into the exact same call command
but still I do like this idea meowsweats

#

call2 blobcloseenjoy

mint hedge
# sinful kettle we have `hashmap get "bla"` and `hashmap set ["bla", _var]` so `hashmap call ["b...

Yeah I guess it depends on what you want to prioritise consistency with. If you want to prioritise consistency with other hashmap commands then as you say the current is the best ordering. However if you want to prioritise consistency with the existing call code then the above described one may be better.

but still I do like this idea meowsweats

Yeah, this suggestion may be slightly biased by my love for partial application of functions / closures in other languages and this giving us the ability to essentially do that in SQF now too

mint hedge
devout wave
gaunt depot
#

Speaking of recent waterDamaged, wasn't there also an issue where you can't control plane landing gear damage apart from setDamage which also changed everything else?

gaunt depot
limpid rune
#

yeah landing gear doesnt have a traditional hitpoint they just... break

#

and the only thing that changes to my knowledge is you can't operate them anymore, as its not like you cna have them hide or something when broken as again, no hitpoint

gaunt depot
#

Yeah, we could use scripting commands to control gear damage state

limpid rune
#

unrelated but it would also be nice if the hard coded 'plane touches water = ded' would be disabled...

gaunt depot
limpid rune
#

from what I remember it bypasses handledamage

#

it's been awhile since I messed with it but that's what I remember, you can have a plain old handledamage that always returns 0 and if you touch water plane explodes, similar to the whole helicopter flipping one

gaunt depot
#

๐Ÿค”

#

I remember helicopter's main rotor damage wasn't passing into HandleDamage but that got changed at some point, perhaps water collision damage could get a same treatment

limpid rune
#

will test it again now, I was experimenting with adding a buoyancy lod to planes to let you belly land them in water and potentially survive and forgot that this was a thing

#

yeah instant dead

#

was going real slow in a A-143 too

#

funny enough when I add the handledamage to the pilot too I can't get out of the plane despite still being alive

solid marten
gaunt depot
#

IIRC water damage wasn't even fixable with setDamage 0 at some point in beta or around that time

gaunt depot
#

Just had that no animation in vehicle bug happen on me in a closed environment

#

It doesn't happen with vanilla assets very often, usually on Mortars, but happens A LOT with RHS assets, making tank crew exposed and easily killable in multiplayer

#

I wonder why it could be and if this can finally be fixed, been plaguing the game for 10 years now

#

animationState returns proper animation yet unit appears in some kind of default one

#

Maybe animation gurus can suggest what could be going wrong and why RHS assets are so much more prone for this bug to happen, unlike vanilla tanks ๐Ÿค”

#

Getting in and out fixes the animation

#

My guess would be something related to streaming?

#

Default animation is used until needed one is streamed in, but never gets changed to proper one in the end?

limpid rune
azure crane
#

maybe it has something to do with inheritance? Static poses mods can behave like that even in editor.

limpid rune
#

as in they have a 'get in -> settle in -> idle'
most modded stuff will at most have 'get in -> idle'

#

from a player standpoint the first is the 'getting into vehicle' animation and the 2nd is the character sitting down in the seat or whatever

azure crane
limpid rune
#

having this extra animation is probably 'fixing' whatever sync issue is happening or rather making it less likely to occur as you're switching to two different animations instead of one

gaunt depot
limpid rune
#

just spit balling tho

alpine tulip
#

You guys sure is not an AnimDataCache issue?

limpid rune
#

nah I've seen it when the animdatacache is fine

#

but idk

#

ive never been able to reproduce the issue reliably

alpine tulip
#

We had similar issue while the SOGPF's dev, sometimes Arma 3 fails to update the Cache and the most reliable way to fix is to delete the folder

gaunt depot
#

I've been experimenting with it on a live server and it mostly happened on first game session, if I simply rejoined it didn't occur (or much less often)

alpine tulip
#

If that's what you guys are facing

gaunt depot
#

On a first game run you usually had plenty of broken players in vehicles in RHS, thus my assumption about animation data streaming

limpid rune
#

I had it hapepn a grand total of once when testing annd when I forced the correct animation again (like _unit switchMove (animationState _unit) it'd fix itself

#

but i see it reported a lot

gaunt depot
#

I think I tried to fix it like this and it didn't work

#
    class Mortar_01_base_F: StaticMortar
    {
        cargoAction[] = {"Mortar_Gunner"};
        getInAction = "GetInMortar";
        getOutAction = "GetOutLow";
#

It does have the actions

#

diag_log'ed animationState each frame, no animation play really:

...
14:45:46 "amovpercmstpsraswrfldnon"
14:45:46 "mortar_gunner"
...
14:45:47 "mortar_gunner"
14:45:47 "amovpercmstpsraswrfldnon"
...
unborn acorn
#

if player in vehicle use arsenal and load his presets the animation will same broken
idk if this can help

gaunt depot
#

Still its better to have this bug fixed in the engine for good

#

Very much gameplay-breaking

sacred river
gaunt depot
west onyx
#

mortar is the only vanilla asset it happens regularly on

#

I use a cheap fix by spamming the animation globally when player enters the mortar

#

its an infrequent event so i dont mind

gaunt depot
#

This bug is a big gameplay breaker for RHS games, I'd really love for it to get fixed

untold sky
untold sky
#

aahhh

untold sky
devout wave
desert trench
untold sky
#

any, where its printed. I don't know if its printed on non-diag

desert trench
#

will verify. i think i see it also with perf/prof with -debug active

gaunt depot
#

If you deploy a drone during client loading (mission downloading?) it never materialises for that client

#

Accompanied by some thick constant spam in RPT

 9:39:10 Client: Object 2:734 (type Type_134) not found.
 9:39:14 Client: Object 2:735 (type Type_263) not found.
 9:39:15 Client: Object 2:734 (type Type_134) not found.
 9:39:15 Client: Object 2:734 (type Type_133) not found.
 9:39:18 Client: Object 2:735 (type Type_470) not found.
 9:39:19 Client: Object 2:735 (type Type_135) not found.
 9:39:20 Client: Object 2:734 (type Type_134) not found.
 9:39:24 Client: Object 2:735 (type Type_263) not found.
 9:39:30 Client: Object 2:734 (type Type_134) not found.
 9:39:34 Client: Object 2:734 (type Type_133) not found.
 9:39:34 Client: Object 2:735 (type Type_263) not found.
 9:39:35 Client: Object 2:734 (type Type_134) not found.
 9:39:38 Client: Object 2:735 (type Type_135) not found.
#

PVar'ing the drone ends up as null on the client

#

Rejoining helps, but still, I wonder how many more vehicles or network objects break like this ๐Ÿค”

#

Pretty sure I can make a repro for this, if anybody is willing to dive deep to fix it

desert trench
# desert trench will verify. i think i see it also with perf/prof with -debug active

Original output filename: Arma3Retail_DX11_x64
Exe timestamp: 2023/04/13 09:25:28

Type: Public
Build: Stable
Version: 2.12.150487

Allocator: C:\Program Files (x86)\Steam\steamapps\common\Arma 3\Dll\tbb4malloc_bi_x64.dll [2017.0.0.0] [2017.0.0.0]

6:32:37 Array index out of range
6:32:37 โžฅ Context: [] L5 (/x/cba/addons/common/XEH_postInit.sqf)
[] L21 ()
[] L17 ()
[] L19 ()
[] L77 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_animate.sqf)
[] L10 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L58 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_anim_flat.sqf)
[] L63 (WW2\Core_f\System_TargetRadar_F\functions\radar\fn_a

#

Arma3_x64.exe" -skipIntro -noSplash -window -name=test4 -noFreezeCheck -noPause -showScriptErrors -debug "-mod=C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CBA_A3;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@Zeus Enhanced;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@IFA3_AIO_LITE"

desert trench
untold sky
# gaunt depot If you deploy a drone during client loading (mission downloading?) it never mate...

Maybe during JIP execution?
I can imagine how that happens.
While client is not "in" mission it ignores network updates.
It processes the JIP queue (it cannot accept network updates, because they need to be processed at the end after the JIP queue). When stuff is pushed to JIP queue, the client doesn't get it because the server already sent the whole JIP "blob" to the client, and now thinks JIP is done.
When its done with JIP, it now opens itself for updates, but the update that came in has already been discarded and forgotten.

That's... quite deep...

devout wave
#

That kinda feels like it could cause problems with....literally anything that happens during JIP, not just drones

gaunt depot
#

Or rather, vehicle assembly message ๐Ÿค”

untold sky
#

I mean they ignore all messages arriving during JIP processing

#

like if you just do a createVehicle in exactly that timespan?

gaunt depot
#

That test on the screenshot involved 3 drones:

  1. One already assembled before join
  2. One assembled during loading\downloading (went missing)
  3. One assembled after joining
#

Yeah, but something tells me createVehicle will work fine, because we would've seen this bug much more often

#

Probably something with assemble\diassemble messages ๐Ÿค”

untold sky
#

assemble really should be a createVehicle under the hood ๐Ÿค”
But maybe its not

gaunt depot
#

The drone was already created by this point but just kept disassembled (as out vehicle)

#

Gonna test if having it disassembled during loading will break it or not

#

Its fine

#

Drone kept in backpack disassembled => Fine
Drone assembled during loading => Missing

untold sky
#

If object didn't exist yet, it does a createVehicle under the hood.
If its in out vehicle, it just resurrects it and informs other client to do so too.
So yeah maybe out vehicles aren't synced during JIP ๐Ÿค”

#

Kinda makes sense that out vehicles wouldn't be synced, because they are gonna be deleted "soon" anyway

gaunt depot
#

Can try making a repro & ticket for this, if you're willing to check it out

#

I probably can make a scripted hack fix like kicking player back to lobby if somebody deployed a drone during their loading, but this doesn't sound user friendly at all

#

4 out of 100 drones failed to appear at their assembled position, in practice they sometimes appear at their out position (some huge coordinate numbers), I've had this happen on me in 0 latency testing environment twice during my time scripting drones into my mission, which pushed me to make this repro

untold sky
#

The moving out/back in code dates back to 1999, together with how these out things are network synced..
That would be some extremely deep digging

gaunt depot
#

My guess is that position update message with out position arrives after assembly is done and drone crew is created (locality shifted to whoever did assembly), maybe this can be fixed by including a flag in position update message that vehicle was out during this, then ignore these message if vehicles is not out anymore?

untold sky
#

How does locality change?

Player1 assembles drone : drone local to player1
Player1 disassembles drone: drone in out vehicles, local to player1
Player1 assembles drone again: drone moved back in, still local to player1

#

Or does different player, pick up backpack after disassemble?

gaunt depot
#

Locality only changes on assembly

untold sky
#

Is the drone crew, not local to the player that assembled it?

gaunt depot
#

Drone crew gets deleted every time vehicle is disassembled, so whoever assembles it creates new local crew and moving it into drone driver seat swifts locality to whoever did assembly

#

So locality switches to player that did assembly if it was local and needs crew

untold sky
#

So, indeed after "Player1 disassembles drone" a different player then goes to the backpack and does the assembly

gaunt depot
#

Some moment 1: Drone owner broadcasts position update message for their out vehicle drone (outside of the map, big coordinate numbers, etc.)
Some moment 2: Remote player assembles the drone, their crew makes drone local to them
Some moment 3: Position update message finally arrives to whoever is now a drone owner, overwriting new drone position and teleporting it back to out position but no longer out

untold sky
#

Pretty sure position updates are independent of locality change.
When locality change is done, server assumes every client has same state.

And then authority switches to different client, which has not the same state, and now continues broadcasting starting from their outdated state.

Fix would be, force a full state update to all clients, before doing the locality change.
Force them to be in sync, then switch ownership. Instead of assuming them to be in sync and switching ownership.
Though the force sync, would send the server's current state, which may not match the actual owning clients state. But that'd be a bit better atleast.

This could also be related to the "naked units" bug on ownership change, where the uniform gets lost ๐Ÿค”

gaunt depot
#

Is naked units bug about ownership change? I think player unit keeps same locality all time, yet they randomly lose their uniform during gameplay ๐Ÿค”

untold sky
#

The bug I mean is naked unit when transferring to headless client.
Several HC scripts have custom workarounds for it (I think just re-applying the loadout)

gaunt depot
#

uniformContainer supply doesn't change locality to anything else either

gaunt depot
gaunt depot
gaunt depot
#

But if I change that coordinate to -100 this bug never happens

#

This is done to simulate far away out position, in real gameplay I had drones teleport back to their out position [15000,15000,15000]-something

#

I know that position updates arrive much less frequently if entity is really far away from the camera, I wonder if these far away updates are different message to normal usual position updates?

#

And these overwrite position regardless of new locality?

untold sky
#

yeah that speaks for the sync thing.
sync time interval is related to distance.
Probably if you'd wait like a minute between position change and thingymabob it would work.

#

They aren't different messages, same thing just sent less frequently (whenever error gets bigger than some value, and error is influenced by basically time*1/distance)

gaunt depot
#

Scratch my theory, it happens just as much with close position

untold sky
#

That may be random luck

gaunt depot
#

1 drone teleported to its pre-assembly\locality change position

untold sky
#

Your weapon disassembly sync issue thing, that sometimes syncs under a second, other times it takes more like 6 seconds, even if less than 2 meter distance

#

probably just depends how lucky you are and are hitting or not hitting the sync

#

Forcing the full sync before sending the "assemble" message may work. But, not in that MP case where you get these 9:39:38 Client: Object 2:735 (type Type_135) not found. messages
A position sync won't make a non-existent vehicle start to appear

#

Adding that forced sync before ownership change shouldn't take too much time (I don't think engine has any code to do that) and then we can see if that fixes it. If not.. uff.

gaunt depot
#

Changed UAV to a static weapon (no crew and no locality change)

#

Worked perfectly in few runs I did

#

So this is a general issue of sync during locality change, just more evident with drones because they're stored very far away and can randomly end up teleporting back to out position after locality change

gray wharf
#

AI involvement may be related to some delays perhaps?

gaunt depot
#

I wonder what else gets moved in and out during game ๐Ÿค” If there is such a thing, it should break for JIP in the same way

#

That Object not found RPT spam is a usual occurrence on a live servers, even with no assembly\disassembly involved

untold sky
#

When I was looking into that uniform naked things, and backpack desync (backpack entities getting lost and never deleted, which also causes object not found spam) that was also out list related

gaunt depot
#

Nice 1999 engine design

hallow sun
#

From someone else
"if you add items to a non-local unit, you get object not found
forceAddUniform ALWAYS prints object not found"

untold sky
#

Can I get a ticket for that forceAddUniform thing ๐Ÿ‘€

drifting canopy
#

is this channel to confirm bug? cause im not sure if this bug or not, do i have permission to post screenshots here?

gray wharf
#

I shalt allow it

untold sky
hallow sun
#

I got that info from someone else, haven't looked into it personally.
Just thought it might be interesting

gaunt depot
#

Or make everything even more unstable thronking

alpine tulip
drifting canopy
untold sky
#

!quote 5

quaint quailBOT
untold sky
#

ah wrong thing, set not get :sad:

alpine tulip
#

There is no command to get...

  • the upper level of the given config
  • the config is not inherited

eg

class a
{
  text = "jaja";
  number = 1;
};

class b: a
{
  number = 2;
};```
```sqf
private _cfg = "b" >> "number";
upperConfig _cfg;  // returns path for "b"
isInherited _cfg;  // returns true```

am i right?
untold sky
alpine tulip
#

inheritsFrom only works for class, not for properties in it

drifting canopy
untold sky
#

What do you mean by inherited

#

in this case isInherited should return false.
Because the number value is NOT inherited from a parent, its set directly/overwritten inside b

alpine tulip
#

eg configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name"
returns bin\config.bin/CfgGlasses/None/name
because the "name" is not defined in
configfile >> "CfgGlasses" >> "G_Sport_Blackyellow"
itself but the parent configfile >> "CfgGlasses" >> "name"

untold sky
#

itself but the parent configfile >> "CfgGlasses" >> "name"
You mean
itself but the parent configfile >> "CfgGlasses" >> "None" >> "name"

alpine tulip
#

And I want to get if
configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name" is defined in
configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" or its parent(s)?

untold sky
#

true, there is no way besides running configProperties with inherit turned off and checking if its in there.
I think I've seen ACE code do that actually

alpine tulip
#

Yes, was my typo

#

Using configPropertiesis kinda overcomplex for this simple job I think

untold sky
#

aka

private _class = configfile >> "CfgGlasses" >> "G_Sport_Blackyellow";
private _entry = _class >> "name" ;
_entry in configProperties [_class, "true", false];
```-> `false` but `true` when you check for "mass"

Result: 0.0034 ms

Seems good and fast enough for me (it got a performance upgrade today). Though probably needs to be listed as example somewhere on wiki as its not obvious
alpine tulip
#

Hm true point

gray wharf
#

isClass or isText or isNumber or . . . ๐Ÿ˜„

gaunt depot
#

Something like CONFIG = propertyParent CONFIG could've been useful though

#

Though I guess in this case it would've returned "CfgGlasses" >> "None", not "CfgGlasses" >> "G_Sport_Blackyellow" ๐Ÿค”

untold sky
#

inheritsFrom a >> b -> a ? if b is a property and not a class
Mh that's weird tho

#

does configHierarchy work?

gaunt depot
#

configHierarchy(configOf player >> "armor") => []

untold sky
#

no it doesn't. returns empty array when given a entry

#

What if we make that work
return [cfgGlasses, None, Name]
for "CfgGlasses" >> "G_Sport_Blackyellow" >> "name"

#

thinking about it a second time, inheritsFrom returning parent class on property sounds wrong, as the property doesn't inherit

gaunt depot
#

inheritsFrom(configOf player >> "armor") => configNull ๐Ÿค”

untold sky
#

lol what, its literally invisible

alpine tulip
#

[,]?!?!?!

gray wharf
#

str configNull?

gaunt depot
#

Yeah, str configNull => ""

gray wharf
#

lul

alpine tulip
#

Yeah figured out the same

#

This is freaking strange

untold sky
#

well that's gonna be fixed soon ๐Ÿคฃ

gaunt depot
#

definedAt, classOf

untold sky
#

Current

  • inheritsFrom (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name") -> configNull
  • configHierarchy (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name") -> []
  • inheritsFrom (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow") -> bin\config.bin/CfgGlasses/None
  • configHierarchy (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow") -> [bin\config.bin,bin\config.bin/CfgGlasses,bin\config.bin/CfgGlasses/G_Sport_Blackyellow]

So how about

  • inheritsFrom (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name") -> bin\config.bin/CfgGlasses/None
  • configHierarchy (configfile >> "CfgGlasses" >> "G_Sport_Blackyellow" >> "name") ->[bin\config.bin,bin\config.bin/CfgGlasses,bin\config.bin/CfgGlasses/None,bin\config.bin/CfgGlasses/None/name]
#

don't really need that inheritsFrom when you can use configHierarchy select -2
and the inheritsFrom sounds wrong anyway.
And with that we don't really need a new command

#

configNull -> <NULL-config> then

gaunt depot
#

str configNull => dedmen was here

untold sky
#

Can I get ticket for all this? ๐Ÿฅบ (I think only configHierarchy change then, and that empty configNull)

gaunt depot
#

We need to force a global network sync of the entity, before we trigger the locality change
Just thought about it, won't think make all assembled drones (that have UAV crew and change locality) revert back to their out positions?

#

Unless updated assembled position arrives to original owner before locality change

#

Also speaking about RPT spam with message types as numbers, why not show us message type names? This could make figuring out what's going wrong much easier. I asked about same thing years ago and got told off message names are hidden due to security reasons, but everyone knows that cheaters make network messages just fine anyways, maybe its time to start showing real message names in RPT?

#

9:39:38 Client: Object 2:735 (type Type_135) not found.
Talking about this

#

I think debugging benefits outweight barely existing security threat of cheaters knowing how messages are called internally

#

Object types too maybe

untold sky
untold sky
gaunt depot
#

If you meant engine programmers, us plebs could find them useful to, to know which network entity broke and assume which scripts led to that

untold sky
#

to know which network entity broke
That info you have there, 2:735 is the netid

gaunt depot
#

Not every netid is an object though

untold sky
#

Even if it weren't, engine doesn't know what object is there. All it has is the netId

gaunt depot
#

This could've been figured if we know what messages types were

#

And in other non-missing object type errors, showing object type and its class if its entity, would've been useful too

#

Sure, to only like 1% of mission designers but still

livid sleet
gaunt depot
untold sky
#

are you setPos'ing on a remote unit?

Could be that you send the setPos, then receive a position update from them, before the setPos arrives at them.
But then it should only flicker back and forth, the next position update you receive should be on the new position ๐Ÿค”

livid sleet
#

This was a year or so back so I'd have to figure out where the script is and see what it was doing but IIRC it was a setPos and that was about it but I do not know the specifics of locality

#

This was in singleplayer.

gaunt depot
#

This looks like attaching to a local (non-network) entity and detaching ๐Ÿ‘€

livid sleet
#

I'll see if I can find it again but yeah it was weird.

gaunt depot
#

All done automatically, just start the game, then have client join

gaunt depot
devout wave
#

I dunno if movement controls are too deep in the engine spaghetti to modify at this point, but if there's any chance of this problem with the analog steering controls getting resolved, that would be...a huge relief. https://feedback.bistudio.com/T78758

desert trench
#

worth to make a ticket about isInRemainsCollector / removeFromRemainsCollector not working with vehicle wrecks (aka setDamage 1 / zero health) vehicles?

#

also on the flipside dead bodies arent getting clean up reliably regardless of the minPlayerDistance setting used..

livid sleet
devout wave
desert trench
#

uff. seems the garbage collector isnt passed on/doesnt track corpses..

solid marten
#

I couldnโ€™t understand nothing in that ticket

#

If you remove the unit before he dies, the corpse won't disappear.

#

no idea

#

But using addToRemainsCollector on said corpse will not do anything:

#

if you do X it wonโ€™t work but if you do Y it wonโ€™t work?

gray wharf
#

the latter, it's "if you try X it doesn't work, and the alternative doesn't work either"
the former, no idea ๐Ÿ˜ฌ

gray wharf
#

if you use removeFromRemainsCollector on the unit, it doesn't get collected, all good
if you use addToRemainsCollector after that, it won't be collected ๐Ÿ™‚

#

if you use add... on the corpse*

solid marten
#

what does ยซย remove the unit before he diesย ยป mean?

gray wharf
#

removeFromRemainsCollector

solid marten
#

and if you donโ€™t remove?

gray wharf
#

it gets collected

solid marten
#

so adding it to corpse doesnโ€™t work?

gray wharf
#
  • have an AI unit that would be collected
  • removeFromRemainsCollector thatUnit
  • thatUnit dies and is not collected
  • addToRemainsCollector thatUnit
  • thatUnit is never collected

seems to be what is said here yes

solid marten
#

dunno if bug or by design need to look at it tomo

fresh hawk
solid marten
solid marten
gaunt depot
#

Not sure if engine or config issue, but might be worth fixing as it might be spamming on other weapons too just unnoticed

gaunt depot
#

It is limited and not very reliable, I've seen it fail lots of times and I'd like to just disable it for good and handle it myself

#

Biggest issue of it is that it creates crew of drone's side, sometimes there isn't a drone of needed side so you have to use other side's drone and moving UAV crew to another group right away or after few frames (if drone is remote) seems to break things randomly. Just let me disable that and create crew myself each time.

outer frigate
#

Is there any chance of a server/mission param controlling time synchronisation across clients?

#

Would be nice to be able to change peoples time to accomodate for lighting or w/e without having to fight the server for it

livid sleet
gaunt depot
#

Probably an issue of render vs simulation time scope, thus the rubber banding

#

It changes a position used in interpolation calculation rather than real position sometimes, or something like that

#

In other words setPos/getPos are crap commands and should never be used

untold sky
outer frigate
#

Mission param would make sense but I'll take server config if it's significantly easier ๐Ÿ™‚
want ticket?

untold sky
#

ju

outer frigate
devout wave
# untold sky low chance yeah

Unfortunate.
Could allowing a full range of motion for the basic left/right binding on an analog axis be easier, compared to making (presumably) fundamental changes to the true analog steering? It's not quite as good, but at least it already works for both wheeled and tracked, and is only missing that last 15-25% of the turning radius.

#

It already has access to the full range of motion when you use it on a digital button :U it's just limited when bound to an analog axis because ???

I'm only asking because driving with keyboard is so incredibly twitchy, especially for tracked vics, and you simply can't make a controller setup that works properly for both. You have to bind for full range on cars and not be able to steer tanks, or bind for steering tanks and not have full range on cars. Or find an extra axis somewhere to bind both separately, which is...not a terrific solution.

gaunt depot
#

@untold sky Been talking with Dwarden about a convenient way to check if something is inside the rock, on a scale of 0 to 10, how hard it would be to have something like BOOL = POSITION inGeometryOf ENTITY that would quickly check if position is inside object's Geometry LOD figures?

#

There must be some kind of method in the engine for such a check already? ๐Ÿค”

untold sky
#

I don't know that such a check exists

gaunt depot
#

Well Geometry LOD figures are convex, thought maybe its done for a fast "inside" check or something, and existence of such method already

#

Welp, I guess manually defining "inArea" arrays for each possible rock variant and script-checking it might be the only way to have such feature then

sinful kettle
#

But the engine must have that already

gray wharf
#

unsure, tbh
it has collision checks, but "in 3D model" check is not guaranteed

sinful kettle
#

Well it's simple

gray wharf
#

(so, a trace checking only one object could do :p)

sinful kettle
#

For a convex component a pos is in it if for every plane you have dot(normal, pos) < d where d is dot(normal, planePos)

gray wharf
#

English only please

sinful kettle
#

Just set point1 and point2 the same

gray wharf
#

huh, no? not a surface?

sinful kettle
#

You don't need one

#

The algorithm for convex shape doesn't need to intersect a surface

gaunt depot
#

Doesn't sound super efficient ๐Ÿค”

sinful kettle
#

It's not meowsweats

#

But it does work meowsweats

gaunt depot
#

Unless I could spawn simple object rock outside of the map, worldToModel'ing and modelToWorld'ing needed position, do the check, delete it back once done or something

#

Not sure faster than just letting the engine crunch with lineIntersectsSurfaces

#
hashMapWithAll3dPositionsIn10cmResolutionPrecheckedForThatRock getOrDefault [_rock worldToModel _position apply {_x toFixed 1}, false]
#

RIP building such hashmap for huge 100 meters rocks

#

1000x1000x100 items or something

uncut briar
regal nimbus
#

If you think the thing is convex, you could use a 2d array :P

gaunt depot
#

Some random rock I checked boundingBoxReal of:
[-13.3496,-6.4789,-7.24466],[13.3496,6.4789,7.24466]

_bb = boundingBoxReal cursorObject; _bb # 1 vectorDiff _bb # 0 vectorMultiply 10 apply {ceil _x}
```=>`[267,130,145]`
That's `267*130*145` or `5032950` hashmap keys ![notlikemeow](https://cdn.discordapp.com/emojis/700311897937018890.webp?size=128 "notlikemeow")
regal nimbus
#

(it's still silly)

tropic jewel
#

polar coordinates give you same number of keys per object?

gaunt depot
#

Depending on angle step and it will get much less accurate the bigger the rock is

#

You probably you can precalculate several huge cuboids inside the rock to use with inArea checks

#

Or just use lineIntersectsSurfaces, that doesn't sound too bad anymore

regal nimbus
#

lol

fresh hawk
#

I can't get Syntax 4 of https://community.bistudio.com/wiki/insert to work (running latest profiling branch):

_test = createHashMap;
_test insert [["player", player]]; // Works
_test insert [false, [["player2", player]]]; // Throws error

_test

Error thrown:

21:24:54 Error in expression <test insert [["player", player]];
_test insert [false, [["player2", player]]];

>
21:24:54   Error position: <insert [false, [["player2", player]]];

>
21:24:54   Error 2 elements provided, 3 expected

Am I missing something?

regal nimbus
#

Nah, it's either bugged or the wiki is wrong.

#

Ok, so this actually inserts all three elements:

_test insert [false, ["player2", player], ["player3", player], ["player4", player]];
#

And this works as "expected":

_test insert [true, ["player2"], [player]];
#

So it's kinda fine except that this throws an error:

_test insert [false, ["player2", player]];
#

So it's bugged and the wiki is wrong :P

#

real syntax is better than the wiki syntax at least

untold sky
#

jup the size check for the true syntax (which requires 3 elements in array), was placed before the check for the splitArray value

untold sky
#

And then yes the wiki is wrong
hashMap insert [true, keys, values]
or
hashMap insert [false, [key, value], [key, value]]

_test = createHashMap; 
_test insert [["player", player]];
_test insert [false, ["player2", player]]; 
_test
gaunt depot
desert trench
#

did anyone dare to look into the Eden Open folder/file scanning?

while i do have ~100 mission.sqm, does it really warrant a ~5s freeze with a modern SSD
the old 2d editor is basically instant in comparison (but doesnt check subfolders)

#

(procmon shows also constant reg check for/by Steam for some reason..)

untold sky
#

Its due to description.ext/mission.sqm config loading

#

Have you tried opening the main menu campaigns menu with all campaigns unlocked? same thing. Disgustingly terrible.
I don't actually know what it needs it for... What does it display in the list that needs to know whats inside the mission, maybe for the name?

vocal abyss
#

No, mission name is in the folder name (e.g. My%20Mission.Stratis).

uncut briar
#

Fun

untold sky
#

I think KK fixed that, making include errors in description.ext not crashing

#

But still loading all of these is just extremely inefficient :/
Especially when not binarized (which description.ext never are)

I wanted to throw more threads at the problem, but can't because configs can execute script

devout wave
#

I think there's a server param to skip loading additional details for the mission select screen, which really speeds it up. Maybe you could leverage whatever does that to do the same for the Editor missions list?

#

Yeah, SkipDescriptionParsing in server.cfg AdvancedOptions

alpine tulip
#

Actually, is there any chance to fix an Workshop scenario's description... more better?

gray wharf
#

especially since this one does have a proper translated overview text (โค๏ธ btw)

alpine tulip
#

no โค๏ธ 4 u

#

u are

uncut briar
#

bbCodeToStructuredText needed xD

gray wharf
#

I could write some BIS_fnc_bbCodeToStructuredText actually ๐Ÿคฃ

uncut briar
#

Shouldn't be too hard.

gray wharf
#

after all, we do have XML parsers sooo

alpine tulip
#

Yeah regexReplace is a thing already thanks to that... dead person

uncut briar
#

"parsers" that support invalid XML without issues FeelsRetarded

#

(stringtable)

untold sky
#

Hashmap = jsonConvert string
string = jsonConvert hashmap
Or

toJson hashmap
fromJson string
?

uncut briar
#
toJson
toHashMap

akin to toString

gray wharf
#

fromJson string prevents having other formats than hashmap ๐Ÿ˜ฌ

untold sky
gray wharf
#

hmm, I got this rpt spam with an undefined string in an editor mission? just loaded, STR_a referenced only in CfgSounds

class strA { name = ""; sound[] = { "", 1, 1 }; titles[] = { 0, "$STR_a" }; };`
```and I get `String STR_a not found` 5ร— per second in the RPT, without stopping
#

previewing/back to Eden makes it OK ๐Ÿ˜

gaunt depot
gaunt depot
#

Most useful usage would be quickly checking if object in inside terrain rocks.
Other usages would be calculating appropriate placement positions and making sure they're not inside other entities, without costly intersect rays.
Another usage would be creating special models just for precise 3d complex area checks, this way you could spawn it in as local simple object, position it, do the check and delete it.

desert trench
alpine tulip
#

Vehicle Respawn module's Expression/Scripted EH upon the respawn, does use spawn to execute so _this will return [_new,objNull] while _this#1 supposed to return old vehicle not null despite the description says

4: CODE - code executed upon respawn. Passed arguments are [<newVehicle>,<oldVehicle>]. The old vehicle is deleted only after this code is completed.

rugged nova
#

However that is some old terrible code

solid marten
gaunt depot
#

Oh wow, true

#

Ticket can be closed then

alpine tulip
limpid rune
#

I noticed something weird with cargoTurrets
they have the property 'showAsCargo' but what this actually does seems very limited. for example when commanding AI to get into the vehicle it only displays the position as 'Passenger' if isPersonTurret is also set to 1

#

while generally speaking cargoTurrets are always isPersonTurret 1 there's are instances where you don't want FFV but want a 'turret' for a passenger

#

so it seems sorta strange that this switch is limited to isPersonTurret and not showAsCargo where it makes the most sense

daring wagon
#

Were some changes done to the debug console? It keeps throwing errors that do not exist.

It's like it has cached a previous script that was executed.

If I type systemChat "Hello" it throws this error

};>
10:18:30   Error position: <};>
10:18:30   Error Missing {
10:18:30 File XXXXXX\t.sqf..., line 117

Which was from a script that no longer has this error

#

It's so confusing

#

If I do loadFile "t.sqf", and inspect the script, the code is fine.

#

Okay, that's weird. If I press CTRL + S in Eden Editor it also throws that error. WTH is going on...

desert trench
#

does the console or Eden have some file execution on key shortcuts?

gray wharf
alpine tulip
#

Not sure I'm following your question there?

desert trench
#

Some console allow to execute external files from scripts folder or custom locations

#

Or some "store" and "execute stored" code

#

from a quick check of the source, the a3 ones doesnt seem to support that

alpine tulip
#

Page Up/Down can store up to 9 or 10 codes history, but that's not what you want I suppose?

alpine tulip
#

Like... press (some) key to quick execute a code?

alpine tulip
#

Speaking of #arma3_scripting , a wild idea: engine-driven alternative sort method that can take any codes

objectsWeHave sort {_x distance player}``` or smth
desert trench
desert trench
alpine tulip
#

Interesting idea actually

#

Maybe we can also try to combine them with Custom Keybinds so possible to execute on the fly

devout wave
#

Advanced Developer Tools does let you save scripts and reload them, though there's no keybinds to instantly load specific scripts

tropic jewel
gaunt depot
#
private _sort = objectsWeHave apply [_x distance player, _x];
_sort sort true;
objectsWeHave = _sort apply {_x select 1};
```Is super ugly
#

ARRAY = ARRAY sortAsc CODE
ARRAY = ARRAY sortDesc CODE

alpine tulip
#

I don't think we will need Asc/Desc commands, but ARRAY sort [CODE,BOOL] or somehow

rugged nova
#

Huh, is arma suppose to crash when you delete a hashmap key?

sinful kettle
#

no

rugged nova
#

Can you reproduce?

sinful kettle
#

not deleteAt

#

you're crashing the UI

rugged nova
#

oof

sinful kettle
#

you shouldn't delete a ctrl in its own event handler

rugged nova
#

huh

#

strange because It works if I don't call updateCartNumber

sinful kettle
#

are you calling that code in the list box's EH like I said?

rugged nova
sinful kettle
#

then how is it getting called?

rugged nova
#

it is a mouse button clicked event

#

not list

sinful kettle
#

well I mean an EH attached to whatever _itemControlsGroup is

rugged nova
#

there isn't a event attached to _itemControlsGroup

sinful kettle
#

so are you sure it's not due to ctrlDelete?

rugged nova
sinful kettle
#

did you comment it out?

rugged nova
#

yes

#

I comment out A3A_fnc_updateCartNumber

#

and no crash

sinful kettle
#

what about ctrlDelete?

rugged nova
#

No crash

sinful kettle
#

well try commenting out ctrlDelete only

rugged nova
#

I did

#

No crash

sinful kettle
#

did you keep that function tho?

rugged nova
#

yes

sinful kettle
#

then just do [_itemControlsGroup] spawn {ctrlDelete (_this#0)}

#

and temporarily hide it instead

rugged nova
#

of course the answer was a one liner

sinful kettle
solid marten
desert trench
#

with minPlayerDistance = 25;

#

corpseManagerMode = 1; // Default: 0 for SP, 2 for MP
corpseLimit = 30; // Default: 15
corpseRemovalMinTime = 60; // seconds. Default: 10
corpseRemovalMaxTime = 300; // seconds. Default: 3600

wreckManagerMode = 1; // Default: 0 for SP, 2 for MP
wreckLimit = 10; // Default: 15
wreckRemovalMinTime = 60; // seconds. Default: 10
wreckRemovalMaxTime = 300; // seconds. Default: 3600

#
    private _allDeadCachedToCleanUp = _allDeadCached select {isInRemainsCollector _x};
    private _allDeadMenCachedToCleanUp = _allDeadMenCached select {isInRemainsCollector _x};
    private _weaponHoldersToCleanUp = _weaponHolders select {isInRemainsCollector _x};
#

are these soft limits?

#

especially in DS env we often see 50-100+ dead not cleaned up

#

BI forum is full of threads of the GC not working properly

#

so I wonder if the setup is not properly understood by players from basic docu available, or if the system is just buggy/has flaws

#

on the flipside it removes destroyed vehicles even if you disable simulation or use removeFromRemainsCollector

#

dunno if dynamc simulation system screws with the system or what it is

desert trench
#

so weapon holders gets cleaned up, but not the bodies

alpine tulip
#

Small issue I've found in p3d side: Persian heads' eyes are not retexturable

solid marten
desert trench
#

we run both dynamic sim and not

#

some missions have scripted simulation / mission progress phases, others use the native system from A3

#

regardless will try to make a simple demo mission - to be seen if complex DS env or Eden SP vs simplified setup still works out the same

desert trench
#

could this be related to 4k texture (amd 5800X with 32BG ram and a 6800XT stock no over clock except ram), or just a generic crash?

sinful kettle
#

well depends how many 4k textures ๐Ÿ˜…

near cedar
#

Probably is related yeah

#

But depends on what you were doing ๐Ÿ˜›

desert trench
#

we have one guy constantly (each session once or twice) crashing with this and similar message

#

he reduced his settings a bit; not sure yet if it helps

#

we have only one other guy with similar crashing issues (but his pc completely freezes) [but quite different hardware]

#

all other [~20] experience hardly to no crashes

sinful kettle
desert trench
#

will check with him. certainly takes some time to get those crashes

uncut briar
#

AMD and shit gpu drivers is quite an iconic duo (although it's getting better). He should make sure he's running recent drivers.

near cedar
#

I mean i have an nvidia GPU and can reliably repro this exact crash

#

Doesn't happen with vanilla Arma but does with GM + very high/ultra textures

#

Changing the default malloc had the effect of preventing crashing but the game would just crawl at 0-5 fps while textures would take dozens of seconds to load

#

When I'm back home for summer I'll use the diagnostic frame capture thing and report back

#

At least 12 identical matches on FT

vocal abyss
#

Weird. Even though I've been playing A3 at 3840ร—2160 with ultra textures for years, I can't recall ever encountering this error. I haven't played that much GM though (completed the campaign, spent ~24 hours in the Editor and played a handful of multiplayer sessions). Maybe I've just been lucky ๐Ÿคทโ€โ™‚๏ธ
Hardware, vendors and drivers varied throughout the years; currently Ryzen 7 3700X, 32 GB RAM and RTX 2070 Super (8 GB VRAM).

gleaming dawn
uncut briar
#

Yeah sure, it got lost somewhere. Added it for our next update. Working with BI to get it added in the steam backend.

gleaming dawn
#

Thanks!

uncut briar
#

I was doing big config search with ADT and got this OOM error. Still 10gb free mem in OS (arma was using 12gb) ;d

gray wharf
#

@untold sky does it have to do with your error log recent changes? I find weird characters in VSCode

#

U+007F and others

uncut briar
#

What exe? Not seeing this on prof

gray wharf
sinful kettle
#

I shouldn't cache stuff during search

#

But still it fails way too soon it seems think_turtle

alpine tulip
#

Just a thought: simple (not regex) string replace command? sqf "ABC" replace ["B","D"]; // "ADC"

lean mica
#

Sounds like more work than googling regex.

alpine tulip
#

Just a thought once again: do actually we have ladder related setter/getter commands or functions?

uncut briar
#

No

#

Besides action

drifting galleon
uncut briar
#

Isn't the window a hitpoint?

alpine tulip
#

I do not think is an issue...

drifting galleon
#

In general, glass stopped disappearing from window frames after using this command

alpine tulip
#

Getter1: Am I on a ladder? If so, which building/which ladder/what's the progress?
Getter2: How long is the ladder on the building?
Setter: Sets the progress of the ladder (can teleport someone to the ladder, or force leave it)

#

At least Getter1 seems reasonable to have

west onyx
#
            _grp setCombatMode 'RED';
            _grp setSpeedMode 'FULL';```
#

would a "Strong" variant of CombatMode and SpeedMode have any effect?

#

@untold sky

solid marten
#

ladder is not an object, it is the beginning and the end position within a building described in config

gray wharf
#

could ladders be obtained with ```sqf
getBuildingLaddersInfo _building; // array of [startPos, endPos]? index perhaps?
_unit moveOnLadder [_building, _index, _progress?];

alpine tulip
#

Not sure if progress should return the meter from start point, or 0-1, or both

#

0-1 is good to have so I can try linearConversion without getting the distance

near cedar
#

So... GM 1.5 has boltcutters. There is documentation to make them compatible with other content https://community.bistudio.com/wiki/Global_Mobilization_Boltcutter
Is it a reasonable request to ask for vanilla fences and razor wire* to support the GM boltcutter? It is BI-published DLC after all, even if it's not 1st party. Not my area of expertise but seems relatively straightforward to add this functionality?

It would bring a long missing feature to vanilla and add greatly to immersion and gameplay.

*I'm tempted to ask for compatibility with lights and utility boxes too but don't want to push my luck ๐Ÿ˜›

desert trench
#

should applying setDamage 1 on already non alive vehicles still have any impact (let alone performance)?

#

test: spawn many vehicles, destroy them all at once, notice fps dump, apply again on destroyed vehicles - notice fps dump again

desert trench
#

hope you know what you are getting yourself into with that tho ๐Ÿ˜›

#

in short:

  1. dead body removal for non player (lead?) groups bugged - only deleted one every 30s (probably the corpseRemovalMinTime value). didnt test if per group or all AI
  2. addToRemainsCollector doesnt work for destroyed vehicles
  3. at times destroyed vehicles get deleted within minPlayerDistance (and below wreckRemovalMaxTime - but hard to pinpoint)
  4. at times destroyed vehicles get deleted despite removeFromRemainsCollector applied (hard to pinpoint)

addToRemainsCollector/removeFromRemainsCollector are weird as they accept arrays. This can be handy, but it seems its not reliable if you apply it frequently for single entities.

alpine tulip
desert trench
#

there might be more issues, but its not easy to really tell whats going on

#

ie at times dead bodies dont get removed at all - not even with the delay and one by one

#

it seems while unconscious there is an attenuation effect (UnconsciousStateEffect), but say3d (and potentially other sqf commands) are not affected.
aka you hear distant sounds and such at full volume. is the audio engine off limits or worth the post a repro?

solid marten
desert trench
#

perf/prof branch

#

with sqf commands on dead i didnt play with due to your fix

#

hm last prof (v4) is fairly old

Exe timestamp: 2023/04/18 13:19:44
Version: 2.12.150512

#

can double check with dev. should be more recent

neon swan
#

Dev will be only be half a day newer

#

Dev will have several more commits though, as Prof only has handpicked changes

gaunt depot
#

Looks like these were added around 1.80, can't seem to find anything else related to Ladder_1_action in the config ๐Ÿค”

#

Checked entire config, all ladders have same 2.5 and this "action" names.

alpine tulip
#

Good question, no idea actually

#

2.5 probably stands for the distance of the action

gaunt depot
#

Thought maybe 2.5 was custom priority for action but by checking in inGameUISetEventHandler its not. Good assumption about 2.5 being distance, makes sense (probably can test with an addon)

alpine tulip
#

Or that, maybe

#

Are they documented somewhere after all? Guess not so that's the question though

#

Since it's weekend it is not good to ping Dedmen to confirm...

gaunt depot
#

(Wrote the message about old format and then noticed new format is described there thronking )

alpine tulip
#

Whut

gaunt depot
alpine tulip
#

Ah, so... basically the geometry is the action area or whatsoever?

gaunt depot
#

Perhaps its a Geo LOD shape where action is visible? So you can't use it from outside or nearby rooms and such

#

Yeah, thought so too

alpine tulip
#

Let me confirm, I have diag exe

#

Just realized I don't know how to confirm ๐Ÿค”

gaunt depot
#

Checked with selectionPosition ["Ladder_1_action", "Geometry", "BoundingBox"]

alpine tulip
#

Ah nice

gaunt depot
#

Speaking of lines, wish 3DEN's thick lines were available to us through a scripting command too.

#

Even if they're only 2D

alpine tulip
#

Thicc line is one of my wish since Alpha

gray wharf
#

that and dat blue tube too

alpine tulip
#

That too

#

Why you're here Lou, your job is to slap Ded's ass to make it happened

gray wharf
#

rawr

#

I am more running after the dream team to document what they have done actually ๐Ÿ˜„

desert trench
#

still same

#

Build: Development
Version: 2.13.150515

#

just because of convenience for testing and SP+hosted+DS compatibility you will ant to check it @solid marten ๐Ÿ˜Ž

#

doing an explicit addToRemainsCollector on the dead bodies didnt help either

#

we figured this is probably due PX simulation keep running when a player is close

#

is there a way to affect PX simulation of terrain objects?
like if you use hideObject[Global] with a player nearby, the PX simulation will remain active and continue to block AI [remote only?]
however if no player is close enough, either PX simulation isnt active at all or simplified, and AI can pass through objects hidden

#

if hideObjetGlobal cannot be fixed, would a new sqf command possible to toggle/disable/refresh the PX state/simulation?

daring wagon
solid marten
daring wagon
solid marten
#

it will have to be setMarkerSize tweak, polyline takes 2 sizes

unborn acorn
#

Can we get new parameters or commands for markers from RscMapControl?

importance
coefMin
coefMax
My goal is

  • to create a marker on a mission that will not increase in proportion to the 2d map zoom
  • the marker should disappear at a certain zoom (just like it happens by auto with markers from RscMapControl on a 2d map)
daring wagon
#

Sure. No problem

solid marten
gaunt depot
#

Could look good if used right

daring wagon
# solid marten ugly

Probably because it's just rectangles. I can achieve the same effect by using area markers and place them along the path =/

stone tree
rugged nova
alpine tulip
#

Whacky visual issue in vehicle: after the group recognizes the KIA, the NVG and backpack will appear out of nowhere

#

I want a way to show NVG and Backpacks in vehicle/FFV BTW...

#

Oh, just found a floating artifact in a Prowler ๐Ÿ˜„

outer frigate
sinful kettle
alpine tulip
outer frigate
#

Yeah I'm yet to find a way to do either in ffv or backpacks in any seats - don't know if it's something they're able to resolve though

outer frigate
#
showNVGDriver=1;
showNVGCommander=1;
showNVGGunner=1;
showNVGCargo[]={1};```
not managed to get ffv to work yet but thats all the valid entries as far as i could find
#

no option for backpacks either which would be very nice

untold sky
#

I just learned that Feedback Tracker had a blog post feature where every user could create their own blog ๐Ÿฟ
Well not anymore ...

untold sky
# alpine tulip Speaking of <#105462984087728128> , a wild idea: engine-driven alternative `sort...

I wanted to have that for a while, but.. Usually you give these things a comparison function that compares A against B and sorts based on that.
Which would be somewhat inefficient for SQF. Such is creating a new array of values and using that to sort (Like Sa-Matra posted below)
With short-circuiting the cost of having a comparison thing is maybe not that high..

But tbh even Enforce Script refused to do it because of "performance", so if even in ultra fast Enforce Script its too slow to be tolerated, maybe it is too slow for us too? XD
(Nah FT ticket please)

untold sky
untold sky
uncut briar
#

;D

untold sky
untold sky
uncut briar
# untold sky Or do I?
  1. Load the game with ADT
  2. Open config viewer
  3. Ctrl+F
  4. Uncheck "Start from current class"
  5. Check "serach in values/properties"
  6. Search for something hard to find / not present at all eg. asdfz

Hashmap goes brrr, ram usage goes Stonks game goes NotLikeThis

daring wagon
#

@uncut briar I've reported that to @sinful kettle a while ago. Not sure how he handles that.

uncut briar
#

It's due to caching in hashmap

#

he knows where's the issue, I assue dedmen might be interested why game dies when there's free mem.

uncut briar
#

I still have around 10gb free mem.

#

I wonder how it will behave with Mimalloc (edit: exactly the same)

gaunt depot
devout wave
#

There are a few ladders that are kinda bad like that. The big factory building from Livonia has one that's a real stinker.
Land_Mine_01_warehouse_F, and I suspect its Altian sibling Land_Factory_Main_F of similar crimes

limpid rune
#

showing backpacks in vehicles would be great - stuff like transport/paradrop planes have been needing something like that for years

gaunt depot
#

Bumping my older ticket, having a need for a command to return default model textures and materials because lots of objects don't have those listed in hiddenSelectionsTextures and hiddenSelectionsMaterials: https://feedback.bistudio.com/T171318

#

Having to manually go through each vehicle and try to figure out its default textures and materials so I can revert them back when needed, when its all in the engine and just lacking a command to get

near cedar
dreamy bane
#

it would be cool feature in 3den if the markers could be toggled renderable in the 3D view. I know marker coords are 2D but it could still render something above the terrain

dreamy bane
vocal abyss
alpine tulip
#

3D Map markers might very hard since there're some arrows and they have to look at one direction

west onyx
#

@solid marten is the "mapFactor" value in getAudioOptionVolumes a modifier of the "effects", or is it just a separate volume slider?

#

getAudioOptionVolumes params ['_effects','','','','','_mapFactor'];

#

so the volume in map is just "_mapFactor" or is it "_effects * _mapFactor"

alpine tulip
#

Just a thought, a CfgPatches param to cancel load the config when a requiredAddons is missing. __has_include actually does but is bulky and slow

solid marten
dreamy bane
#

would this be good idea, pushing back array elements if condition is metsqf _newArray = [1,2,3] applyConditional { if(_x == 2) then { nil } else { _x }; }; //result: _newArray = [1,3]

#

the new command would push everything to new array unless the value is nil

rose cloak
#

select {code} (at least until you transform _x in some way)?

dreamy bane
#

I happen to need apply so I can do _array apply { _x # 5 };

rose cloak
#

#codeGolfContinues _array select {!isNull _x#2} apply {_x#5};, at least if the code in filtering and transforming parts doesn't have much in common :B

dreamy bane
#

its just that , that is two commands instead of one

solid marten
#

might be faster with two than having if then and one command

dreamy bane
#

oh well if that's the case...

gaunt depot
#

Anybody would find use for something like
ENTITY setFuelUsageCoef NUMBER command to have engine make vehicles use less or more fuel?

#

It can be done through script right now but the issue is that it requires per frame handling, as well as accounting for HitFuel damage, would be much more convenient if this was engine feature.

#

Talking about normal engine consumption rate specifically, shouldn't affect fuel leaking

gaunt depot
limpid rune
#

some vehicle sims dont even have that in the config lol

desert trench
#

Bad conversion: scalar
would it possible to get code context for these please

gaunt depot
#

Do you guys know how far GPS zooms out when you run and turn really quickly, as this turning is considered huge speed by the game.

#

It might be a fun little bug but it might have bad consequences in multiplayer and position interpolation.

#

This is also very noticable when players run up stairs inside cargo towers, they appear flying through the walls for other players after such turns

#

I can collect a lot more visual evidence of this being an issue in MP

#

So I wonder, can this be fixed somehow?

#

Did:

onEachFrame {diag_log [vectorMagnitude velocity player, speed player]}
```and checked the RPT, you get numbers as high as

[39.5771,-79.1467]

#

No ticket for this yet (probably is in some form), but thought this would be the best place to discuss

gaunt depot
gray wharf
#

@stone tree we have the message you tried to post about accounts, sorry about the blocking and thanks for the reports!

gaunt depot
#

Watching players on a real server, their speed and vectorMagnitude spike up rather often

limpid rune
#

lol that interpolation shouldn't come to a surprise to me

#

I always assumed it was hiccups in peoples connection not them whipping their mouse around etc

#

explains why people moving up staircases together used to be a fairly lethal endeavour

gaunt depot
#

I'm mostly guessing but player speed increasing unreasonbly when running and whipping the mouse = fact. Remote players phasing through walls and stairs when running and turning = also a fact. So I'm sensing a connection here, maybe if your unreasonably high speed state gets sent to server, everyone gets it and it messes up the interpolation

azure crane
#

some tracked vehicles move faster too when you "wiggle" them because their speed is boosted during turns

west onyx
#

some time ago Dwarden suggested that high ping players shouldnt be allowed on the server

gaunt depot
west onyx
#

yes

azure crane
#

so instead of limiting FPS servers should be able to limit DPI

alpine tulip
#

Workthought: a command to disable an engine-driven animation or entire of them. Disabled animation would be playable by animateSource.

class AnimationSources
{
    class wheel
    {
        source = "::wheel"; // Overriding the existing wheel controller.
    };
};```Similar to this solution but in command.

Usage: to record/play animations. UnitCapture/Play.
alpine tulip
#

Mmmmaybe this would make a possibility to make aimbots for vehicles ๐Ÿค” which Bohemians don't want to

gaunt depot
#

You already can just teleport the projectile or change its velocity to hit anything you want on client side

alpine tulip
#

I know this is kind of a broken logic but they didn't made a command to force some unit aim somewhere

gaunt depot
#

If that was the reason, then it sounds like an excuse

uncut briar
#

The aimbot reasoning always made little sense to me, if somebody can execute arbitrary code all bets are off anyway.

alpine tulip
#

I TBH such kind of โ€œbrokenโ€ logic is also there on accessories' hiddenSelections, Ded said it is bad because make the performance/draw calls worse

#

I never thought there is a computer that both can run Arma 3 and suffer from this feature

untold sky
untold sky
hollow kestrel
#

Hello, I have a few problems with animations, can anyone help?
Within the animation, the door of a house needs to be opened. How can I make it open within the animation?

untold sky
dreamy bane
#

ic, thx ded

untold sky
dreamy bane
untold sky
dreamy bane
#

whatever is beneath

untold sky
untold sky
dreamy bane
devout wave
#

If area markers could show their bounds, trigger-style, when selected that would be amazingly convenient

dreamy bane
#

yes needs support for both texture and area markers

desert trench
untold sky
#

Mh could be config script maybe, but.. do.. mh. I think in Diag configs should also have context. Maybe not configured right

#

Can't really track it down without knowing what it is (so me reproing) and then seeing why there is no context on that path

desert trench
#

It happens usually quite quickly (after 1-2min since mission start) - requires 15 GB download tho

unborn acorn
stone tree
gaunt depot
#

Even lighting fix around Apex didn't fix them

#

Just increase the numbers for light sources, its not that hard

#

Arma 3 Alpha

#

Current (and for like 10 years since beta or so)

devout wave
#

The GM flares are really good. If they could find out what settings those use and stick 'em on vanilla, that would be awesome

gray wharf
near cedar
#

My favourite is when you fire enough flares together (9?) and street lamps go out ๐Ÿ˜„

#

Also when you throw enough IR strobes and world lighting starts flickering inverse to the state of the IR grenade

gaunt depot
untold sky
gaunt depot
untold sky
#

number of light sources is not a config entry. Intensity is not number of sources
yes making brighter flares is really easy, so easy that we had a ticket open for that since march last year, or atleast the ticket that refers to it, I think there was another even older one

desert trench
#
    timeToLive = 45;
    brightness = 125;
    intensity = 1000000;
    affectedByWind = false;
    flareAirFriction = 0;
#

this is what we use

gaunt depot
untold sky
#

the intensity

#

for flares. you wouldn't want to increase light sources in general

gaunt depot
untold sky
#

The flares in game are signal flares. They shouldn't be so bright. You want us to add illumination flares.
Which I think is tasked up somewhere

untold sky
gaunt depot
#

These shots always were illuminating flares though, including up to some point in A3

#

Its Armaverse though

unborn acorn
limpid rune
#

i figured the reason for the change was because it made the lighting look like crap with it bleeding through walls etc

devout wave
west onyx
limpid rune
#

probably

west onyx
#

like difficultyOption "" is [['name',value],['name',value], ...]

solid marten
rancid tapir
hallow sun
#

My mouse moves on it's own while dialogs or for example the escape menu are open.
Looks like there is a massive delay for the mouse movement repeating the last movement.
If i didn't move the mouse for a while it stays still.

  • No other input devices plugged in, no mods loaded.
  • Tried with different branches.
  • Only appears to happen ingame (Editor doesn't has the issue).
  • No problems in any other games or apps.

Repro:

  1. Place unit in editor, control/play it.
  2. Move your mouse around for a while and then hit ESC and stop moving the mouse.
  3. Open and close ESC menu and watch your mouse moving on it's own.
solid marten
#

Could you try a different mouse and report back?