#arma3_feedback_tracker

1 messages · Page 11 of 1

untold sky
#

nearEntities iterates through ALL vehicles on the whole map. Even if you check a tiny area.
inAreaArray, guess in your example does the same.
But every iteration it checks if the value is an array (position) or an object. Which I guess is expensive?

#

I think I tried inAreaArray, and found it to be fast enough already.
But, this value type checking that the trigger variant does, might have more benefit. I'd need some benchmark

#

But I just recently made these type checks more efficient

#

No, it isn't. Making it MT would literally just be adding "MT" into one line of code though, that would then make it MT if there are more than 256 vehicles
But I'd need a benchmark to test that

#

yes, ticket with benchmark mission in it

unborn acorn
#

Adding the requested info as text on cursor 'text box' in inventory is UI/HUD work?
Means texts shown when player move cursor on inventory's e.g. scope slot (name, description, IR Laser state: ON/OFF)

untold sky
#

It says it crashed. For crash we need .mdmp file. RPT is useless

#

So you want to add that, we could do that with ticket

#

Is that the camera that the eden 3D uses/looks through?
So using WASD would edit it and trigger EH?

#

I think the attribute changed EH was global was it? I don't reeally want to spam that with the camera..

untold sky
daring wagon
daring wagon
unborn acorn
gray wharf
#

or even better, just a white dot on/off, no translation needed

unborn acorn
# gray wharf or even better, just a white dot on/off, no translation needed

adding a white dot is UI/HUD change, no?

translations already in arma stringtables for example can be applied:
str_a3_rscattributetargetstate_title
str_a3_rscdisplayconfigure_ca_mouseacceleration_on
str_a3_rscdisplayconfigure_ca_mouseacceleration_off

tooltip expample:
IR-Laserpointer
Strahlt im Bildverstärkungsmodus (Nachtsicht) sichtbares Licht aus.
Status: Ein

gray wharf
#

yyyeah but using different translation keys is a very bad practice
on/off could be working in English but not in another language (as e.g free = free spot and free = for free)

desert trench
#

Unsupported language english in stringtable
Alright. From the looks of it, its a string comparison issue tho? English vs english

Is there a chance for different processing of official tools with xml when packing vs third party?

Structurally i cant see a difference between A3 xml and ours. And using regex, cant find a string definition without English either in xml mentioned in rpt.

native tulip
untold sky
daring wagon
#

The wording would better fit kjus assumption.

#

Why would it throw an error if English is missing except there is a special handling for that language.

#

@desert trench can we pin point the issue to a specific pbo?

desert trench
#

it happens for all our xml

#

19:58:40 Unsupported language english in stringtable
19:58:40 ➥ Context: WW2\SPE_Structures_c\stringtable.xml

#

-debug tells you where

#

ok seems i/my regex was wrong.. my bad

daring wagon
#

19:58:40 Unsupported language english in stringtable
That msg though 😄

desert trench
# untold sky nearEntities iterates through ALL vehicles on the whole map. Even if you check a...

does the engine cache vehicle subsets beyond "vehicles" ? i would guess https://community.bistudio.com/wiki/allObjects is all there is (pretty much), right?

so seems only way to speed up things would to extend these commands with some more basic checks to avoid doing them in sqf like

  • alive
  • simulatedEnabled
  • not isObjectHidden
  • not INCAPACITATED
  • isKindOf (and not isKindOf)
  • side/friend check
  • exclude caller (if object given instead of position) //NTH
desert trench
desert trench
daring wagon
desert trench
solid marten
untold sky
#

We had other requests for that too before.
I think I looked into it but it was too much work.
Would be cool to have. Probably a description.ext entry

solid marten
#

it is direct render flag, set it on set it off easy peasy just don’t forget to reset on mission over

daring wagon
#

Yeah, looks kinda nice

devout wave
sinful kettle
#

I'm assuming yes because it's just a render flag. collision testing is done on other LODs

solid marten
devout wave
alpine tulip
#

Wild workthought: a diag command (prolly diag exe only) to force resolution LOD, maybe an alias for diag_drawMode so you can force show a desired visual resolution, maybe Pilot or something can be set too. It probably is useful to have a way to use it to an object only too

hunter diag_drawMode 1100; // show Pilot resolution for the object
diag_drawMode 6; // every objects will be rendered in resolution 6 or similar one```
devout wave
alpine tulip
#

This tho 😭

#

But I don't really think make it a command for actual game is a good idea/reasonable too yeah, what we're doing is just debug troll

outer frigate
#

Would be really nice, had this exact issue a few days ago trying to get decent screenshots where everything maintained res 1

gaunt depot
devout wave
gaunt depot
#

Wish there was a way to force something to higher resolution though

#

higher LOD*

alpine tulip
#

Well technically Extreme video settings can already does relatively similar?

gaunt depot
#

Cargo Towers for example, they don't have windows on low LODs so you can't see players peeking through them yet they can see you

alpine tulip
#

Well I can understand why you need that, but I think that is an art's responsibility?

gaunt depot
#

Yeah, it is defeinitely an asset issue, but being able to selectively correct stuff like that could be a use case for a scripting command

alpine tulip
#

then make a ticket!!!! Don't know if there still is a room/teams to tweak P3D/graphical asset at this point tho

gaunt depot
#

Yeah, don't think it can get fixed at this point

#

Not sure if reyhard is willing to touch that

#

Issue illustrated

devout wave
alpine tulip
#

Gosh, dunno who thought this is a good idea while you can see and shoot through the opened window

gaunt depot
gaunt depot
sinful kettle
unborn acorn
unborn acorn
solid marten
uncut briar
#

would be neat to have it somewhere, I'm pretty sure all model encoders would appreciate not needing to put color coded boxes to see what LOD is being loaded etc.

uncut briar
outer frigate
#

could be nice for something under cheats? instead of type fps type lod or smth

untold sky
#

We want to expose more internal build things to diag binary anyway. Just not finding the time to do it.
This would be a good choice

untold sky
untold sky
#

Wha

#

I thought its a global event. Like the recent lots new ones I added
I think there was also a global attribute changed thing there? Don't remember.
Well entity EH no problem then. Its just missing the trigger and I know why

daring wagon
#

The one you added I think is. But this one existed since the beginning

#

Well entity EH no problem then. Its just missing the trigger and I know why
Awesome

azure crane
#

so structured text in drawIcon3d, is there any official reason why it couldn't be supported there?

#

using a custom display sounds like an overkill to show two-three lines of text over a unit's head, thought of ui2texture but never seen anyone using it in such case

untold sky
#

Structured text would need to be re-rendered each frame.
ui2texture can render just once in this case

sleek scaffold
#

BIS fnc unflipThing -> " Can be used to unflip vehicle without transition. The caller is made invincible during flipping and the original isDamageAllowed state is set afterward."

sleek scaffold
solid marten
#

in excruciating pain

#

open dev-> try

sleek scaffold
desert trench
desert trench
untold sky
desert trench
#

alright - a summary ticket or rather one by one as normal?

alpine tulip
sinful kettle
#

Oof I was worried that some actions would be broken. I only checked a few and they worked fine tho meowsweats
(except for some that depend on anims)

unborn acorn
#

A unit that makes 3D sounds (injuries, breathings, screams, moans, etc.) is heard only by him and not by other players (no SP/MP dependence)
But sounds of falling and movements/interactions work as should
ticket: https://feedback.bistudio.com/T178500

stone tree
gaunt depot
#

Had a look, here it is:
deadSetTime - on death it differs between clients a bit due to latency. JIPs get useless value that is very close to time but a bit less, probably also affected latency and loading speed
lastEntityCausingDamage (and time) - only updates locally, never syncs, no JIP. Doesn't get set when isAllowedDamage = false BUT remote damage still sets it where vehicle is local if remote doesn't have no damage flag.
isUpsideDown - fully local calculation
upsideDownTime - JIP can end up with value that is close to time similar to deadSetTime, but it updates to local timer once flag flips again
isStopped - updates from true to false on each client when it sees vehicle move, but flips back to true only where vehicle is local.
hasTerminalOpened - always false, couldn't get to return true no matter what I did.

#

Is that isStopped used for anything in the engine? Wondering if remote entities always remining isStopped = false could affect performance somewhere

#

Tried doing awake false or setVelocity [0,0,0] or remote vehicle and didn't make it flip back to isStopped = true

solid marten
#

hasTerminalOpened - always false, couldn't get to return true no matter what I did.
use n player when uav terminal is open

#

SO you could update biki that is has local effect

gaunt depot
solid marten
#

basically local command

#

I will check pretty sure it returned true for me

gaunt depot
#

Hint shows per frame return of getEntityInfo for both server and client

#

UAV is connected, value remains false when terminal is opened and when UAV is controlled

#

Oh wait, I have to check against UAV crew

#

Nevermind, doesn't matter, same picture for UAV and crew

#

hasTerminalOpened is always false

gaunt depot
gaunt depot
#

Wondering if its not too late to request each side to have their own underwear color. Could tell you which side soldier was even without uniform. The functionality is there, textures are there, just needs some config changes.

#

Green for BLUFOR (so it fits combat fatigues tee), brown for OPFOR, blue to INDFOR, white for CIVs, perhaps black for guerilla units (INDFOR)

#

Game already supports having unique underwear color per class

#

Actually, I'm not sure if it really does, never tried it, just seen config values 🤔

limpid rune
#

it does work

gaunt depot
#

nakedUniform

limpid rune
#

vanilla is supposed to have randomised underwear but the hidden selection in the config is wrong

gaunt depot
gaunt depot
devout wave
gaunt depot
limpid rune
#

you can define nakedUniform per unit - we did it in spearhead so the US units have different underwear vs germans etc

gaunt depot
limpid rune
#

but yeah the only thing the vanilla underwear model needs to work with hiddenselections is

    class Underwear_F: B_Soldier_F
    {
{"camo1","insignia"};
        hiddenSelectionsTextures[] = {"\A3\Characters_F\Common\Data\basicbody_black_co.paa"};

camo1 needs to be camo

limpid rune
gaunt depot
#

Speaking of unused content, there are also lime and woodland combat fatigues in the game that perfectly fit appropriate vests and backpacks

#

Perfect fit to the rest of vanilla content

gaunt depot
#

There are also remnants of what seems to be civilian\MP Hunter but it was scrubbed back in alpha

gaunt depot
gaunt depot
#

hunter\data\oshkosh_base_riotpolice_co.paa

#

Open the archives! meowtrash

solid marten
hallow sun
# gaunt depot Wondering if its not too late to request each side to have their own underwear c...

Would also be nice to able to enable randomization for that in the config like for some vehicles if possible.

class B_Soldier_F;
class Underwear_F: B_Soldier_F
{
    hiddenSelections[] = {"camo"};
    hiddenSelectionsTextures[] = {"\A3\Characters_F\Common\Data\basicbody_black_co.paa"};
    textureList[] = {"\A3\Characters_F\Common\Data\basicbody_blue_co.paa", 0.2, "\A3\Characters_F\Common\Data\basicbody_brown_co.paa", 0.2,"\A3\Characters_F\Common\Data\basicbody_grey_co.paa", 0,2, "\A3\Characters_F\Common\Data\basicbody_green_co.paa", 0.2,"\A3\Characters_F\Common\Data\basicbody_black_co.paa", 0.2};
};

https://community.bistudio.com/wiki/CfgVehicles_Config_Reference#textureList.5B.5D

uncut briar
untold sky
gaunt depot
#

Looking like binding a key to Collective Raise (Analog) (HeliCollectiveRaiseCont) gives you 20% better lift than with Collective Raise (HeliCollectiveRaise)

sinful kettle
#

Well make ticket

untold sky
#

scopeCurator is a nice idea anyway tho

gaunt depot
#

Also binding two different buttons to Collective Raise (non-analog) makes you gain lift faster too

#

oh you get same lift as analog collective when you bind digital collective to two different keys

#

and press them as the same time

#

1 button vs 2 buttons vs 3 buttons

#

no more advantage from more than 2 buttons

gaunt depot
#

HeliCollectiveRaiseCont doesn't need you to bind and press several buttons to it, you get max lift with it with a single button

#

HeliCollectiveRaise needs two keys bind and pressed to get max possible lift

#

Commented with a script I used to measure lift and how quickly you gain it

#

Apparently this has been a thing since A2 or something

#

If this will get fixed, I'd recommend for normal collective raise to give you what advantaged collectives do

#

tl;dr;
HeliCollectiveRaiseCont gives you 20% better lift than HeliCollectiveRaise
But if you bind 2 keys to HeliCollectiveRaise and press both, you get same 20% increase as analog collective

#

Apparently binding HeliCollectiveRaiseCont to a real analog device wont give you that 20% increase, but I cant test it

#

Considering that most pilots know about this exploit and use it normally all the time, maybe it better to just have this highest collective as norm?

daring wagon
daring wagon
devout wave
gaunt depot
#

Car throttle?

desert trench
#

anyone aware of a ticket of NVG slot having hardcoded AI buff for visibility in night time? tried to find one, but didnt

context: couple of mods use the slot for other purposes where that buff is not desirable

devout wave
desert trench
#

did you figure out a better way by now? or how do you handle dead bodies and their weapon containers? just very aggressive cleanup?

gaunt depot
west onyx
daring wagon
#

Question. How does the grass cutter hide the grass in Eden Editor?

#

Is this connected to an event.

#

The issue is, that grass doesn't get updated if grass cutter is removed or moved only when placed.

#

It seems that this only triggers on RegisteredToWorld3DEN

#

I wonder if it's possible to extend that to Dragged3DEN and UnregisteredFromWorld3DEN

alpine tulip
#

It is actually the same way with how a helipad cuts grass

#

So more of a P3D + Engine thing

daring wagon
#

I see.

#

Would be kinda cool to have a scripting command for that

#

Could turn every object into a grass cutter with an attribute then 😬

gaunt depot
#

I remember these cutters slowing down the game quite a bit back in OA

desert trench
#

do they still "work" with simulation disabled on them (after init)

sinful kettle
#

It has nothing to do with simulation

#

As long as it gets rendered

desert trench
#

so many grass cutters to have less grass = worse fps because rendering? dont get it

sinful kettle
#

more grass cutters = more CPU time to find which grasses to cut = worse FPS

desert trench
#

ok that makes sense

#

so dont use @daring wagon unless really critical 🙏

sinful kettle
daring wagon
#

Will do later

gray wharf
daring wagon
#

I can add more information tomorrow if needed.

dreamy bane
#

can the grass cutters be deleted after the effect is applied or are they needed for JIP clients?

sinful kettle
#

grass cutters use the thing simulation. I wonder what happens if I change it to house?

sinful kettle
gray wharf
#

if it shaves 90% off already I would say that is an improvement already!

sinful kettle
#

I haven't tested the performance yet 😅

#

but house sim should be faster than thing

west onyx
#

any desire for allMissionObjects <array>?

#
_list = (allMissionObjects 'StaticWeapon') + (allMissionObjects 'LandVehicle');

_list = allMissionObjects ['StaticWeapon','LandVehicle'];```
gaunt depot
sinful kettle
#

I did want filterObjects command tho

#

So you could filter an array of objects by any criteria you want, type, side, etc.

#

I guess it's time to put it on my to-do now

dreamy bane
west onyx
gaunt depot
#

Maybe it is acceptable in smaller and slower scenarios

#

But in PvP where fractions of a second matter, its not

west onyx
#

afaik there is a big difference between server and client for that function

#

I wonder what the difference is between allmissionobjects and filtering allobjects ...

gaunt depot
#

Sorry if my comment was too harsh, didn't mean anything personal. The command is very slow already, cutting down several commands to just one will still be bad

gaunt depot
#

I wonder if allMissionObjects can be redone to use these internal lists instead of whatever it is doing

#

filterObjects sounds very useful, maybe its a good use case for hashmap arguments too

#
_objects filterObjects createHashMapFromArray [
     ["side", blufor]
    ,["alive", false]
];
west onyx
#

filterObjects seems unnecessary, just <array> allObjects <collection>

#

like we have _allGroundWeaponHolders = "GroundWeaponHolder" allObjects 0;

#

so just ['LandVehicle','Air','Ship'] allObjects 0

gaunt depot
#

unless you meant introduce new collections

#

nearEntities been getting some cool new stuff by @solid marten recently

#

Speaking about filtering, what always bothered me is sort, where you have to build and then reduce an array in case you want something sorted that is more complex than a number of a string

#
private _sort = _objects apply {[player distance _x, _x]};
_sort sort true;
_objects = _objects apply {_x select 1};
#

instead of say

_objects = _objects sort {player distance _x};
#
_objects = _objects sort {-(player distance _x)};
``` for desc sort
west onyx
#

yea i had to do that today... always needing apply with it

gaunt depot
#
_objects filterObjects createHashMapFromArray [
     ["side", blufor]
    ,["alive", false]
    ,["sort", {player distance _x}]
];
#

Coming up with scripting command ideas is my favorite past time

west onyx
#

allDeadMen sort [{_x getEntityInfo 3},false]

gaunt depot
west onyx
#

actually would be nice if allDeadMen had native sort by age

gaunt depot
#

It probably pulls from internal order-less list

west onyx
#

the entity creation order list

gaunt depot
#

So its always perfectly maintains creation order?

west onyx
#

havent checked tbh

#

how do you think about a command to get players by side... like players west and players east

#

closest we have rn is units west

gaunt depot
#
allPlayers filterObjects createHashMapFromArray [["side", blufor]]
west onyx
#

allPlayers in even worse state, it still contains logics, not just players

gaunt depot
#
premadeFilterSoItDoesntBuildItEachTime = createHashMapFromArray [["side", blufor]];
...
allPlayers filterObjects premadeFilterSoItDoesntBuildItEachTime;
gaunt depot
#

Doing sort of that to combat that issue with random players having no group\side

west onyx
#

interesting

#

have you had issues with players having group issues?

gaunt depot
#

Happens in each and every game actually

west onyx
#

glad to hear im not the only one ..

gaunt depot
#

Players randomly appear without a group, that group doesn't exist on a client either

west onyx
#

any ideas why? and would you say its worse in recent years?

gaunt depot
#

I think its all fine on server side though (and player side too) but others see a player without a group

gaunt depot
#

Feels to be happening at around the same frequency

west onyx
#

how often are you network syncing your player list?

gaunt depot
#

publicVariable each time it updates

#

maybe a bit excessive and clients can build their own lists but its not that much data

west onyx
#

i guess it is important

gaunt depot
#

Considering how often this group issue happens, really wish devs could make a build with some kind of measuring to try to catch why it happens

west onyx
#

i wonder if we can do anything in the meantime like with the uniform desync bug

#

test clients for null group

#

and have them rejoin their own group if theres a null

#

unfortunately these sort of bugs only manifest on busy MP server ...

gaunt depot
#

Yeah, I thought about it, regularly poll clients to see if there a discrepancy and recreate a group for that bugged player maybe

#

Really hope this can get finally fixed properly in engine

west onyx
#

server would randomly get a client to eval other clients

gaunt depot
#

Might uncover and fix nearby issues or issues that trigger because of it too

#

Might be a big stability improvement

west onyx
#

not sure how to filter out bad results, like from a bugged client, wouldnt want them polling other clients

#

would almost need like a "bugged" var, and after a few other client machines verify, then a group rejoin is forced

#

assuming a group rejoin would fix

gaunt depot
#

Each X seconds have all clients check all players and see if they have a group. If check for certain player fails twice in a row, have that player to recreate their group

#

Assuming this recreation\rejoin fixes it, yeah

west onyx
#

well ill probably write something to test that tomorrow

#

id probably distribute the testing schedule from server instead of having all clients test at the same time

#

different player every 5 seconds or something

azure crane
#

standing in water prevents player from self-healing, which makes first aid broken on swampy areas or maps like Tria. Any chance to adjust the "depth" checkers so player can heal themselves as long as they can crouch while in water?

#

I assume right now the minimal Z value is comparable to the one allowing player to go prone

sinful kettle
#

ticket

azure crane
sinful kettle
dreamy bane
#

polling nearTargets each frame makes the game lag so this EH is badly needed

desert trench
#

there can be - but you need to specify

dreamy bane
# desert trench <@499851213638991873> whats the difference to https://community.bistudio.com/wik...

have to admit I didnt know EnemyDetected existed but its not doing what I need. this is my code so far using EachFrame ```sqf
addMissionEventHandler ["EachFrame",
{

_gunner = units aag # 0;

private _targets = (_gunner nearTargets 1000000);

{
_x params ["_tpos","_type","_side","_subjectiveCost","_target","_positionAccuracy"];

hintSilent format ["Ignoring target %1 %2",_target , time];

aag forgetTarget _target;

} foreach _targets;

}];

sinful kettle
#

Instead of nearTargets just use targets

dreamy bane
#

thats faster?

sinful kettle
#

yes

dreamy bane
#

ok

#

will try

#

EH would be even faster though

#

hmm targets is weird because the targets remain in the list even when I do forgetTarget

vocal thistle
#

I hate to bring up the same thing again but it's been a while since I did - any chance this could get looked into? It would save me a ton of effort and lines of code in my project 😦
https://feedback.bistudio.com/T175507

desert trench
dreamy bane
desert trench
#

EnemyDetected is only for first time "seen" from what i recall - a TargetDetected/Seen could rather have repeating events for the same target. depends how the engine handles that if its even easy to cause an event

dreamy bane
#

@sinful kettle thx man , much less lag using targets. still hoping for EH though 🙂

desert trench
dreamy bane
desert trench
#

nope

regal nimbus
#

Maybe a simpler command that'd work for most use cases would be a way to disable automatic spotting of a unit, which you could then override with reveal.

dreamy bane
#

that wouldnt work for me because I want to disable the AI only on certain targets, not all... or maybe i understood wrong

untold sky
untold sky
untold sky
untold sky
#

Or make eden place them as simple objedcts yeah

#

There might be a cheaper one than House

#

The Roadmap stuff is cached tho. Don't know what causes updates to that cache

sinful kettle
#

(I mean it's not per object. it's per model)

untold sky
#

But there are also things called "Model properties" and roadway is not that 😄

sinful kettle
sinful kettle
#

afaik house is just as fast as simple object

#

at least according to wiki. never tested it myself

untold sky
sinful kettle
#

yeah it iterates thru all objects and discards terrain objs :harold:

untold sky
untold sky
unborn acorn
sinful kettle
#

I think I'm gonna hate the word "gummies" for the rest of my life notlikemeowcry

hallow sun
sinful kettle
#

idk meowsweats

#

Dedmen might know

outer frigate
#

is holding shift when swimming w/ diving suit being slower than not intentional? think it should be the other way around?

#

tho your legs do move faster in the anim thonk

sinful kettle
#

ticket
I guess it's due to slow movement speed in the rtm

#

what's the anim name?

outer frigate
#

nvm, cant seem to replicate it again... odd

#

while on the topic of underwater things though -- is there any chance of getting grenades throwable underwater again? used to be a thing but was disabled for some reason -- chemlights underwater would be nice

vocal thistle
sleek scaffold
#

Something like ```sqf
setAnimSpeedCoef

#
setSwimSpeedCoef
setLadderclimbSpeedCoef
gaunt depot
#

It doesn't affect ladder climbing speed though

#

Perhaps this should be changed

untold sky
untold sky
devout wave
#

This is 100% idle daydreaming/speculation, but I'm curious about the feasibility of commands to leverage the system TTS voice.
I know it's possible in principle for applications to do this on Windows, and even apply filters to the output sound (see: EDDI for Elite Dangerous), but I don't know how practical it is in Arma. I also don't know if Mac and Linux have an equivalent API for whatever TTS voices they may have - obviously having commands that don't work on those platforms would be a huge blocker.
If it could be done, it would be a really neat capability for generating - maybe even automatically localising - computer-type voices (aircraft systems for example) without needing bulky audio files.

untold sky
#

Easy to do. We are using it for some other project.
Problem with that is, it depends on what system languages you have installed.
A German voice speaking english text sounds horrendous. And I assume with other windows languages it might be even worse.

You might not have any voices installed at all, in which case it simply doesn't work.
It also doesn't work in Proton (already tried).

Very good for prototyping and testing things. But unusable for production

devout wave
#

Sad but fair

untold sky
#

Someone is working or already made a Extension/mod for Arma with that.
Recently talked about it in ACE discord. Has exactly the mentioned limitations
I don't know if its released, I think ilbinek was doing that. I also posted my sample code for that in ACE github, or I have it on my gist I think

sleek scaffold
# gaunt depot It doesn't affect ladder climbing speed though

In my testings increasing setAnimSpeedCoef doesn't make you climb faster nor swim faster. The animations play faster but you move at similar speeds to regular animSpeed values, and also increasing setAnimSpeedCoef to higher levels looks goofy 😅

gray wharf
#

so MaxiBoost is the new spam hey (don't worry @sinful kettle , gummies are still going strong)

near cedar
#

Is that what gets the fps going faster

solid marten
#

More improvements to rotor collisions. One problem was that check was performed not in render scope resulting in some predicted damage rather than actual. Also it now goes through handle damage, though the heli is the one deciding the damage @gaunt depot

gaunt depot
alpine tulip
#

It's not a bug. It's just defined in a different config than anim or RTM itself

sleek scaffold
#

So a command to customize that config would be quite useful, so we can script our way into a weight based climbing speeds 😉

alpine tulip
#

I wish yeah

gaunt depot
#

Sounds like a bug to me that speed is decoupled from animation that supposed to be in sync with that speed

sinful kettle
#

it should use simulation scope

gaunt depot
#

Unlike before where each client checked each helicopter in the world regardless of locality 💀

sinful kettle
#

the game always checks everything in simulation scope, not render scope

#

render scope is for visual things

#

damage is not a visual thing

gaunt depot
#

But shots are checked in render scope too, aren't they?

sinful kettle
#

no

gaunt depot
#

Otherwise you wouldn't be able to hit anything because remote entities sim scope updates irregularly

gaunt depot
# sinful kettle no

I can't believe it, sim scope updates every so often, while render scope is result of extrapolation\prediction and your shots always hit what you actually see, not where last update message pointed to.

#

Unless I'm just mixing up the terminology here

#

Speaking of sim vs render, I hate the bug which doesn't update render scope position for remote units inside vehicles, very annoying for making icons over players, been an issue since OA, not sure if its even reported

#

It does update the render scope position but poorly, it is usually equals to sim scope

alpine tulip
solid marten
# sinful kettle I'm pretty sure it actually should not be in render scope

future visual state predicts next position based on speed and acceleration, so when you land chopper it projects the next position of the rotor lower than it is which may or may not intersect with some player. before it was making this player ghost unit by applying damage where player was remote, so it didn’t matter to player. Then when player was getting proper hit it became obvious

sinful kettle
#

well everything else still does use that, so... blobdoggoshruggoogly

solid marten
#

not everything, there are a lot of render visual state usages even for actions, you need prediction when it actually makes sense to account for the latency

solid marten
sinful kettle
solid marten
#

they both visual, one is render visual another is future visual

sinful kettle
#

I'm not talking about engine terminology 😅

solid marten
#

the script command name is confusing so let’s just leave it there

desert trench
#

is it intentional, a limitation or a bug that you cannot turn off playable AI slots in hosted or solo play?
(disable all button is missing too - however per slot is still there but does nothing)

untold sky
#

Above thing about render scope.
Where the heli is local, visual and future visual state should be equal. Prediction is only for remote objects.
And the heli should only be doing the rotor damage checks where its local. So it shouldn't make a difference?

solid marten
sinful kettle
#

this is also how physx collision looked like tho

#

well it's not related to damage but still

solid marten
#

just something to keep in mind

untold sky
#

Yeah physx simulation is running ahead of rendering I think. Some magic voodoo

limpid rune
#

im guessing this is detected by a special physx component for the rotors?

sinful kettle
#

I don't think it's physx, but KK knows better since he's working on that rn 😅

limpid rune
#

yeah just wondering how it works with modded content etc
also curious if planex could also get it for prop planes ie. the apex civilian one

also makes me wonder how the quad rotors handle it lol

sinful kettle
#

from what KK showed earlier, it's just a single tail rotor covering all the rotors

#

ah he didn't post it here meowsweats

solid marten
# limpid rune yeah just wondering how it works with modded content etc also curious if planex ...

collision? it pseudo simulated, before it was drawing random line at random position and random direction within the radius of rotor, now it does what you see in video, consistently checks all around, no silly randomness. It needs rotor position center from config and radius of the rotor. when it detects person it hits 3 times 0.33 damage at a time so you can survive and bleed. if you walk into a rotor it is suicide unless the chopper was moving then pilot gets credit. you can cut ropes with rotors, destroy parachutes. other objects will break rotors on collision. small drones deal damage based on speed, but there is another mechanism that does damage on impact too, so i’m not touching that

limpid rune
#

neat

solid marten
#

Ah no my mistake 0.25 at a time so 4 hits

#

might take a second or two for full kill

untold sky
#

bonk 🥖 , bonk 🥖, bonk 🥖, splat 🤯

#

Much better than killing right away.
That gives you the "ooooooh holy mackarel shoots bagoots, how the bingus did I survive that" heart attack. Instead of a "A crap, welp"

outer frigate
#

what on earth

daring wagon
#

Has that head always clipped through the hatch? 😄

hallow sun
livid sleet
gaunt depot
west onyx
#

i too dont think it adds anything to gameplay at this point. if it was implemented early in A3 then it would be fine, but now it would frustrate and annoy more than anything

#

maybe just a knockdown effect instead of kill

sinful kettle
#

nothing's changed in that regard

outer frigate
#

rear rotor also ignored damage enabled 🙈

sinful kettle
#

ticket meowsweats

outer frigate
#

iirc vet made one a while ago already

solid marten
#

handledamage shoud work now too

devout wave
#

It's funny how many people don't know rotor damage is already in the game. It got someone at one of our sessions a few months ago, and it was a complete surprise to some of our regular helo pilots who've been playing for years

solid marten
solid marten
#

It works just fine, you can allowdamage false and it wont kill player

livid sleet
#

Specifically I’m not talking about player damage but a physics collision between the rotor and a wall or something, previously there was no way to prevent it because the engine logic for that ignored any EH or damage handling

solid marten
#

Well, the rotor would break, and nothing changed in this regard

#

Also allowdamage false on helicopter disables it, again it was always possible

untold sky
#

@desert trench the WaypointCompleted EH.

A move waypoint works like this

  • Move until inside completion radius
  • Switch to "Sync" state, Loops waypoints "Condition" script until it returns true
  • Switch to "Countdown" state. Waits a random time (waypoint timeout)
  • Switch to "Next" state. It executes the waypoints completion script, plays sound effects and such
  • Switch to "Unlock" state. If the Waypoint is not locked (group not allowed to proceed), then it increments Waypoint index onto the next one.
  • Turn over into next WP.

Now I wanted to ask you where in that chain the EH should trigger.
But...
In the "Next" state there is already a WaypointCompleted eventhandler... https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#WaypointComplete ...

#

You wanted parameters.

parameters:
_group // ref
_waypointType // string
_waypointIndex // int
_lastWaypoint // bool
Group and waypointIndex are there.
The other two you can just fetch by script inside the EH. I don't see a need to provide that as parameter.

livid sleet
solid marten
#

main/tailBladeRadius = 0;

gaunt depot
gaunt depot
solid marten
#

jk, but really player gets killed by some other collision mechanism in small drones, before the rotor can do damage, was like this before

gaunt depot
solid marten
#

the damage to player goes through handle damage, the rotor breakage was never going through any handle damage

gaunt depot
solid marten
#

Before you ask, no I wont spend time on it sorry

gaunt depot
#

Oh well, going back to resetting rotor to repaired state each frame to bypass it instead

solid marten
#

not a bad solution

solid marten
gaunt depot
# solid marten not a bad solution

Looks bad in MP though, engine goes to 0% RPM for remote clients while on owner it remains 100% RPM and you end up with a helicopter flying without any sound and rotor rotation until engine goes to 100%

#

but this only happens in safe zones so its an acceptable oddity

#

Armanormal activity

gaunt depot
solid marten
gaunt depot
#

Otherwise you'll end up with upside down invincible helicopters

solid marten
#

not quite safe innit?

gaunt depot
#

Its a pilot's fault if they flipped it, but it won't let enemies or griefing friendlies damage it

solid marten
#

i will have a look if simple I will do it if it requited the whole new system I won't

#

@gaunt depot in the mean time regardless of the outcome I would appreciate a ticket

gaunt depot
#

Do you guys get a bonus per ticket resolved? hmmyes

solid marten
gaunt depot
solid marten
#

Thats why I make no money

untold sky
desert trench
# untold sky <@165398963648724992> the WaypointCompleted EH. A move waypoint works like this...

@daring wagon 😇

I guess the weird complete instead of completed made us miss it 😬

return value _timedOut
@untold sky AFAIK from testing some of the waypoint types have a timeout - ie SAD or SENTRY - i believe also GUARD, DESTROY or GET IN/OUT.
aka the AI tries to find enemies/react to enemies/get in/out of vehicles but after a timeout stops and the WP is considered completed.

from a quick check seems not documented here https://community.bistudio.com/wiki/Waypoints (or else) - if it could be documented which WP types have a timeout and its the only way to complete that type (dont know if/how these "timeouts" interact with the WP condition - if its an either-or or both must be met), the combo of the existing EH + type check should be enough i think

the idea was to script a "follow-up" behaviour for these to avoid AI standing around doing nothing

untold sky
#

Ah darnit.
nearTargets iterates through the groups targets. But only returns ones the unit you provided as argument actually "knows about".
The group already registers targets through walls and stuff. But because it didn't see it, it just puts it into the target list, with a "known" value of zero.

I can detect when a unit is added to target list, but not when its already in the list and its knowsAbout value just changes (there is already a EH for knowsAbout changing though I think)

So the NewTarget handler will give you stuff in the list, but it often won't yet appear in nearTargets.

#

forgetTarget also doesn't "forget" a target and removes it from the list. It leaves it in the list and just sets the knowsAbout to zero...

#

ugh

#

Returning when something was added to nearTargets, is not feasible.
Question then is, would it be useful for you to have "something was added to target list"..
I don't think it is.

If you run your script just on NewTarget, so you only check nearTargets when you actually need. That won't work.
For example enemy is behind wall. NewTarget already triggers because the unit is added to targets list. But the unit isn't actually known. So it doesn't appear in nearTargets.
enemy walks past wall and is seen. KnowsAboutChanged triggers, the unit is now known and is in nearTargets, but NewTarget doesn't trigger again.

Considering that, I assume the EH is useless and you don't want it anymore?

desert trench
#

cant you (as scripter or in engine - not sure whats better) do the knowsAbout check for NewTarget - and if high enough, then you proceed

untold sky
#

Yes.

But.
Enemy behind wall - NewTarget knows about 0.
Enemy comes infront of wall. is seen. NewTarget doesn't trigger.

Now there is a target that appeared, and NewTarget never triggered

#

And there is already KnowsAboutChanged EH. That probably can be used maybe

stone tree
untold sky
#

Thanks

desert trench
#

https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#KnowsAboutChanged should only trigger once >0 from what i recall (can re-test)
so the difference would be on target list but not yet known - i guess the former can be useful at times

the intended purpose from gencoder8 was more of an ignoreTarget anyway - i would assume that can be handled with KnowsAboutChanged+forgetTarget somewhat efficiently. KnowsAboutChanged gets triggered a lot, yet his check/code would be cheap - would need testing

if that wont work, i think he was more about "[new]EnemySpotted[Again]" / "EnemyInSight" or maybe "NewAttackTarget/NewAssignedTarget" to do a forgetTarget no?

At least these seems useful to me, but depends if the engine can even easily raise an event for that

solid marten
gaunt depot
solid marten
#

Is that something that should go through handledamage?

gaunt depot
#

Repro mission spawns a working heli by a flag pole which instantly destroys heli's rotor, despite there being HandleDamage that always returns 0

dreamy bane
desert trench
#

@dreamy bane what about knowsAboutChanged EH?

gaunt depot
solid marten
gaunt depot
solid marten
#

the rotor is destructed by applying damage to hitpoint, just like sethit does but since none of setHitxxx goes through handledamage this one doent go either

gaunt depot
#

But this damage is driven by engine checks, not scripts that end up calling setHit*

#

It also checks for allowDamage flags like engine damage supposed to, scripting commands don't care about allowDamage as they should

solid marten
#

sethit directly sets damage on hitpoint

dreamy bane
solid marten
#

the rotor damage does the same

untold sky
#

Would that do what you need

gaunt depot
#

I don't think this damage makes it any different from normal environmental damage you get by collisions which are going through HandleDamage

#

Its just a special case of a more advanced damage type

dreamy bane
untold sky
#

maybe something like ignoreTarget could be useful
Like "hey this unit, never let its knowsAbout go higher than 0"

gaunt depot
#

Honestly if you ask me, instant helicopter destruction by collision should also go through HandleDamage, but I want it remain as is in this case

dreamy bane
#

that might work

gaunt depot
#

Or perhaps it should go through different event handler, but there are many cases of such special environmental damage, can't have an event handler for each of them

#

The ones that come to mind:

  • Jets gear damage from collision (I think this one goes through HandleDamage but can't be repaired with setHit*?)
  • Jets/Helis blowing up from collision
  • Helis getting their rotor destroyed by rotor collision
untold sky
#

I think there was something for ignoreTarget. Plase check if there was already ticket for or not. I'll look on monday

dreamy bane
livid sleet
# solid marten the rotor damage does the same

Does it? Last I checked the behavior was a bit different but I could be misremembering, when you have a main rotor shearing event the blades instantly stop and effectively the helicopter drops like a rock whereas damaging the rotor via scripting has the behavior of an engine failure or damage from an explosion causing an autorotation event.

solid marten
#

nothing has been changed in the way blades are hit

gaunt depot
#

and you fall down like a rock

livid sleet
gaunt depot
#

where with setHit* you would start losing RPM, rotor slowls stops, you lose lift, etc.

livid sleet
#

I know y'all probably won't do it but it would be appreciated if there was the ability to trigger or effect the state that Sa-Matra is describing without having to do weird hacks to get it into that state
Something of the likes of
vehicle setRotorShearState [selection string (or maybe int/bool to select main/tail rotor), shear state (bool)]

desert trench
#

i thought to remember an existing ticket but wasnt able to find one. so made that one @dreamy bane

gaunt depot
#

Bullshit HitHead fire in HandleDamage doesn't have instigator in it despite all other events having it

dreamy bane
#

cool. but I may need the EH still because the idea is to deny attack in some ranges and then re-enable attacking again. not sure if ignoreTarget would be good for that

#

EH approach sounds easier to implement

outer frigate
#

was there anything further on something like disableAI medical btw

gaunt depot
solid marten
#

there is only one call that leads to this damage and it is a collision

#

Man::OnCollide

gaunt depot
#

But this event fires from all kinds of damage

#

Bullet hits, explosion hits, fall damage

#

Also whats interesting is that there is no source for bleeding (context=4) for fall damage for some reason, yet its proper when bleeding is done by direct bullet hit and explosion

#

HD#9 is that new _context parameter in HandleDamage on screenshot

solid marten
#
12:37:10 "[quadD,"""",35.8765,<NULL-object>,"""",-1,<NULL-object>,"""",true,4]"
12:37:10 "[quadD,""head"",26.2168,quadD,"""",2,<NULL-object>,""hithead"",false,3]"
12:37:10 "[quadD,"""",59.625,<NULL-object>,"""",-1,<NULL-object>,"""",true,4]"
12:37:10 "[quadD,"""",3.49515,quadD,"""",-1,<NULL-object>,"""",false,0]"
12:37:10 "[quadD,""face_hub"",18.4821,quadD,"""",0,<NULL-object>,""hitface"",false,1]"
12:37:10 "[quadD,""neck"",22.7381,quadD,"""",1,<NULL-object>,""hitneck"",false,1]"
12:37:10 "[quadD,""head"",15.7747,quadD,"""",2,<NULL-object>,""hithead"",false,1]"
12:37:10 "[quadD,""pelvis"",71.753,quadD,"""",3,<NULL-object>,""hitpelvis"",false,1]"
12:37:10 "[quadD,""spine1"",71.753,quadD,"""",4,<NULL-object>,""hitabdomen"",false,1]"
12:37:10 "[quadD,""spine2"",55.1158,quadD,"""",5,<NULL-object>,""hitdiaphragm"",false,1]"
12:37:10 "[quadD,""spine3"",33.6542,quadD,"""",6,<NULL-object>,""hitchest"",false,1]"
12:37:10 "[quadD,""body"",71.753,quadD,"""",7,<NULL-object>,""hitbody"",false,1]"
12:37:10 "[quadD,""arms"",32.8901,quadD,"""",8,<NULL-object>,""hitarms"",false,1]"
12:37:10 "[quadD,""hands"",43.722,quadD,"""",9,<NULL-object>,""hithands"",false,1]"
12:37:10 "[quadD,""legs"",71.753,quadD,"""",10,<NULL-object>,""hitlegs"",false,1]"
12:37:10 "[quadD,""body"",71.753,quadD,"""",11,<NULL-object>,""incapacitated"",false,2]"```
all damage done by simply accelerating player with setVelocity [0,0,1000]
#

so as you see 2 times the head damage even though no collision

#

it calls collision on shake I suppose

gaunt depot
#

It has proper source and instigator for explosion damage

solid marten
#

if there is source it passes it over

#

but those velocity shakes have no source maybe

#

what happens if you ignore this damage

gaunt depot
#

This damage doesn't do anything in practice

#

if its below 1.01, nothing happens, if its >= 1.01 you die (you would've died from normal HitHead damage either way)

gaunt depot
#

Direct bullet hit: Only source no instigator
Explosion hit: Both source and instigator
Fall damage: No source or instigator (yet other EHs have source)

#

This EH fire is complete bullshit and by seeing what it does (nothing), I'd just remove it completely

livid sleet
solid marten
solid marten
#

@gaunt depot noticed some calls to handledamage are made with no change in damage, i.e. previous damage - 0, new damage -0, imma gonna filter those out, as they only spam the handler, any objections?

regal nimbus
#

Might wanna check that this doesn't break ACE's fake hitpoint method.

desert trench
#

seems risky to change that - at best should be opt-in imo

solid marten
regal nimbus
#

It won't break my stuff, but that's really all I can say. HandleDamage was always wack and people did terrible things to work around it.

west onyx
#

along with a way to determine when the firer has begun attacking a new target. a "LookingAt" or "AimedAt" event for when that switches targets

#

allows us to, for instance, change what shell a tank gunner uses, based on the target. since vanilla does not switch to HE from AP

west onyx
#

requested other delete <array> functions

#

maybe also a more generic "delete" function which can handle a range of data types... delete <array> such as delete [object,group,string (map marker)]

gaunt depot
#

I think I'd pick not to remove it and leave it as is

solid marten
#

there is no order, but yeah even though I think it is safe should probably add an option

outer frigate
devout wave
#

If it could accept Side, Group, and Array as well that would be a convenient bonus, obviously not essential though

gaunt depot
outer frigate
#

or being able to cap off knowsabout of a unit or something

gaunt depot
#

A ticket with repro to see that damage instigator ends up being used as source for Killed because engine only stores one entity in lastEntityCausingDamage

gaunt depot
#

@solid marten Maybe use hashmaps for setMissionOptions? This way you could change only a single value, its easier than remembering indexes and a good use for hashmaps.

#
setMissionOptions createHashMapFromArray [["someoption", 123]]
#

or have it return hashmap while taking in hashmap-like array

#

no real reason but I just thought it would fit here great

solid marten
#

It is a niche command for specific uses, Im not against it, maybe if @untold sky fancies changing it

gaunt depot
#

How about an option to get rid of these useless HitHead events too?

solid marten
#

get rid how, not pass it over to EH or ignore them in engine completely?

gaunt depot
#

Ignore completely, I think this event does nothing at all

solid marten
#

have you tried to return 0 in EH for them, what happens?

gaunt depot
#

Unit dies from normal HitHead

solid marten
#

what about setVelocity death?

gaunt depot
#

Just tested, doesn't seem so

#

What this event fire does:

If you get HitHead damage and total is:

  1. Less < 1, then it does nothing. Pointless because it doesn't even set the damage
  2. = 1.01, then it kills you. BUT you'll also get >=1.01 in normal HitHead which will also kill you, so its pointless yet again

#

Its pointless either way, it only has a potential to confuse scripted damage systems because you'll think you just got same HitHead damage twice in a row (Antistasi instant death bug because it thought you got hit in the head twice in a row)

#
    HeadHitLimit1Threshold = 0.5;
    HeadHitLimitThreshold = 1.01;
    HeadHitLimit2Threshold = 1.01;
```I assume once upon a time in pre-alpha it used to kill you faster if you got hit in the head
#

But then got changed to 1.01 making this feature practically disabled because any HitHead damage above 1.0 kills you anyway

#

I'm guessing that helmets were too OP in pre-alpha or something, so BI experimented with making head hits kill you quicker, guess its 10 years too late to ask whoever did this weird system

#

Honestly I believe nothing will change in the game if this useless event fire was removed from the game completely

#

Unless some weird mod somewhere changes this value for some reason

gaunt depot
solid marten
#

ok will add ignoreFakeHeadHit option

sinful kettle
#

but imo it's not worth it. just use #defines

gaunt depot
#

Its not a big deal all in all though

sinful kettle
#

well you can:

#define OPTION1 0
#define OPTION2 1
_o = getMissionOptions;
_o set [OPTION2, _value];
setMissionOptions _o;

hmmyes

#

the whole thing can be a macro

#define ignoreNoDamage 0
#define ignoreFakeHeadHit 1
#define SET_MISSION_OPTION(x,y) call { private _o = getMissionOptions; _o set [x, y]; setMissionOptions _o; }

SET_MISSION_OPTION(ignoreNoDamage, true)
desert trench
#

whats the design scope for setMissionOptions ?

regal nimbus
solid marten
desert trench
#

@solid marten was curious more in the sense what else could be added - the command has a very generic naming and design approach, does it not?

#

this sounds like the wrong baseline is used - so multiple map switching multiplies the effect

west onyx
#

@gaunt depot i havent been following the developments with HandleDamage ... what is the best way to intercept prior to death? is there a better way with the new params?

unborn acorn
limpid rune
#

that would be very nice yeah

gaunt depot
gaunt depot
#

So nothing new regarding it

west onyx
#

ah k

sleek scaffold
#

getting inside a vehicle and it having ```sqf
isHidden vehicle player

Must be a bug right?
#
isHidden player ```
Returns FALSE just fine...
gaunt depot
#

Do vehicles even process hidden state?

#

This looks like AI command

sleek scaffold
#
vehicle player hideObject true
``` works
#

It is certainly a bug

alpine tulip
#

isHidden is not isObjectHidden

sleek scaffold
alpine tulip
#

A vehicle is an object. Not sure what is your initial question after all

sleek scaffold
alpine tulip
#

Okay, what do you mean by "hidden object" here

sleek scaffold
alpine tulip
sleek scaffold
# alpine tulip Then this

by using other command doesn't change the fact that isHidden is lying.... If it is not intended to work on vehicles it should give always FALSE instead of always TRUE

alpine tulip
#

isHidden is not a command to get if it is hideObject'd. You're trying to use a wrong command for wrong purpose

limpid rune
#

isHidden is some old AI jank

alpine tulip
#

I don't know what Arma 1 tried to do with such commands tho

limpid rune
#

probably something similar to the cover commands

alpine tulip
#

So not quite a big issue, but found out that ListBox's sizeEx is slightly off. This is why my assumption which item you right click returns wrong value in some cases...
The BGs are h = 0.05 and LB has sizeEx = 0.05, but as you can see it is off

gaunt depot
#

I guess there is some rounding going on that messes it up?

#

ctrlSetPixelPrecision didn't help it last time I tested

alpine tulip
#

Looks like yeah, UIScale Very Large (aka getResolution#5 == 1) does not have this issue

#
import RscListBox;
import RscBackground;

class displayTest
{
    idd = -1;
    enableSimulation = 1;
    class controls
    {
        class BG: RscBackground
        {
            x = 0;
            y = 0;
            w = 1;
            h = 0.05;
        };
        class BG2: BG
        {
            y = (0.05)*2;
        };
        class BG3: BG
        {
            y = (0.05)*4;
        };
        class BG4: BG
        {
            y = (0.05)*6;
        };
        class BG5: BG
        {
            y = (0.05)*8;
        };
        class BG6: BG
        {
            y = (0.05)*10;
        };
        class BG7: BG
        {
            y = (0.05)*12;
        };
        class BG8: BG
        {
            y = (0.05)*14;
        };
        class BG9: BG
        {
            y = (0.05)*16;
        };
        class LB: RscListBox
        {
            idc = 1;
            x = 0;
            y = 0;
            w = 1;
            h = 1;
            sizeEx = 0.05;
            onLoad = "for '_i' from 0 to 50 do {_this#0 lbAdd str _i ;};";
        };
    };
};```Think this is enough for repro I guess
#

Also, not quite sure who would suffer from this issue but I've just found out that onLoad does not fire if idc is not defined (0 or -1 works, I mean it is not defined like at all, to repro remove idc = 1; there)

#

Oh, just found out that... Using pixelH does fix this issue

#

pixelH * 55

#

So yeah, I guess this is a round issue?

daring wagon
#

Can't really fix that without pixelgrid I'd assume. Rounding will always be present and it adds ups with each row.

alpine tulip
#

Yeah understandable

#

I was always wondered why it can be so off

exotic pelican
#

Hi, who can I ask to delete my account on the BI feedback tracker site

alpine tulip
#

#arma3_gui message
Also figured out that this gap is equal to ctrlPosition _ctrl#3 mod _rowHeight

#

So it is very possible to calculate which item you're mouseovering, you just need pixelH and enough calculation

daring wagon
#

Would be near if MouseOver could have this information but I guess it needs to calculate it as well.

gray wharf
exotic pelican
#

I had hundreds of accounts on various sites that I never used, and im just cleaning up my online presence. Anyway the delete option is greyed out for me.

gray wharf
exotic pelican
#

sure. it's harith_s. Would that (disabling) mean that if I try logging back on it would reactivate the account?

gray wharf
solid marten
exotic pelican
#

Ok, sure

#

Just in the Arma 3 tracker or something?

#

I don't want to clog it. If it's more convenient I could add (to delete) to the name of my account?

#

Ok I've added it (a post to the A3 tracker)

exotic pelican
#

Nice, thank you

daring wagon
#

An option to change row and column count for CT_TOOLBOX controls would be much appreciated 🙏

https://feedback.bistudio.com/T178768

Perhaps one of the commands I listed could be extended.

warm chasm
#

Looking at a 300 MB/hour rpt file because of exactly that issue now 😄

turbid terrace
alpine tulip
#

GUI related quick thoughts:

  • A configurable Pause menu (so basically a way to add a button in OPTIONS button, without hardcode the function, maybe a way to add another category too)
  • A way to apply some effect into a control, like Saturation, Hue switch, blur or something. Cool if we have a way to ctrlCommit it

Just sayin', ye

outer frigate
#

cant you do that (#1) already

#

i swear the way cba does it is able to be extended easily

alpine tulip
#

Well... what if I say I can't rely on CBA? What if the usecase is for a CDLC? (I'm not saying I do, that could happen I mean)

#

Also for the Mods like RHS, it also is nice to have so not really need to think about Mod overwrap/conflict I guess

outer frigate
#

i mean cba does it in a method that can easily be adapted/added on to

#

im pretty sure anyway

alpine tulip
#

Well yeah, the main point is to softcode in config

gaunt depot
#

@sinful kettle Since you were working with selections and bones, can you please have a look at https://feedback.bistudio.com/T171318 which is needed to return model-defined textures and materials for selections. Right now its impossible unless they're defined in hiddenSelectionsTextures which is not always the case.

#

Both features would complement each other

#

"" shouldn't reset the texture\material though because empty texture is also a feature, probably just porting VBS's #reset would be good enough

alpine tulip
#

Don't know if it is possible to get corresponded default tex/mat despite there is no corresponded selection

gaunt depot
alpine tulip
#

But selections are not always have one tex/mat, they can have multiple

alpine tulip
gaunt depot
#

this way you could build these defaults yourself once

azure crane
outer frigate
#

I have 100% hit, missed and killed AI at range and the AI have not known where I was

alpine tulip
#

Hm looks a boom reveals me?

daring wagon
#

Isn't that like a super old bug where explosives reveal you instantly?

alpine tulip
#

Wasn't actually aware

daring wagon
#

Makes sneaky ambush missions a pain.

daring wagon
#

2013meowsweats

azure crane
alpine tulip
#

Prone or cover also do this

gray wharf
#

it was revealed in Arma 1 iirc, and thought it got solved around OA / Arma 3?

azure crane
#

someone broke it again then hmmyes

gray wharf
#

Dedmeeen!

alpine tulip
#

[88850] Fixed: AI was sometimes able to reveal a unit which has detonated a satchel (https://dev-heaven.net/issues/11610)Yeah found this in OA's changelog

stone tree
gray wharf
gray wharf
#

wait 😄

gray wharf
sinful kettle
stone tree
gray wharf
#

another one 🤣

azure crane
#

COGNITIVE DISSONANCE

gray wharf
gray wharf
desert trench
gray wharf
desert trench
#

Ondra (Suma) was still providing long term support for OA, with A3 on different branch already
from what I remember @waxen tundra tried to push and coordinate fixes from that time to get merged to A3 eventually.
either this one was missed out or other engine changes in A3 broke it again/differently

untold sky
untold sky
untold sky
outer frigate
untold sky
outer frigate
#

also i assume there's no chance of getting new scripted ppfx? would be nice to have depth of field for nv/flashbang/other stuff but think thats probably pretty far out there?

gray wharf
untold sky
#

Oh you mean new effects.
Don't we have DOF already?

outer frigate
#

new scripted ones -- we have DOF as a graphics option but not a scripted effect

untold sky
#

Oki then we can probably port the DOF and make it available. ticket

outer frigate
#

yay

alpine tulip
#

I already posted similar ticket?

outer frigate
#

oo sharpness would be nice too

#

i see many more cursed things i can do

alpine tulip
#

I think I can imagine L4D's adrenarine effect 🤣

outer frigate
#

im thinking of things for my chem warfare

#

set depth of field so everything is really blurry then crank the sharpness up

#

tripping balls on sarin gas

untold sky
outer frigate
#

i assumed there would already be one and if it was from somebody noteable that they would chime in anyway

#

(besides we had like 4 tickets for angularvelocity until i eventually annoyed you into doing it)

alpine tulip
#

The reason why I suggest this is pretty much artistic purpose, as you might already assume

#

And yeah, simply DOF in Arma 3 is too poor to blieve, it only uses 4 (four!) samples to emulate the blur

outer frigate
#

nvidia photo mode go brrrr

alpine tulip
#

You love to ruin my policy to make screenshots in Arma 3 🤣

outer frigate
#

hee hee!

#

i love to ruin everybodys policies

#

i couldve saved leopard hours of work if i had just toughed it out with setvectordirandup but i wanted angular velocity 😎

alpine tulip
#

But yeah, this is bad after all

outer frigate
#

indeed

#

i just want it for better nv realism and more ways to make people trip out on ppfx

gaunt depot
outer frigate
#

iirc #reset for setobjecttexture was being considered at some point but not like they have vbs' code to refer to any more

untold sky
#

I thought we already implemented some reset thing into it

outer frigate
#

you did not lmao

sinful kettle
#

Resetting it can be done via a magic word as said above

gaunt depot
#

But since we have so many model operating commands, having one to return textures and materials for selection could be very useful

untold sky
#

When we added that thing where you can give name of the selection to the command

#

But might be that there was a problem with it

#

Or maybe it was done but not documented

turbid terrace
# azure crane Does this still happen tho? I remember numerous occasions when I was shooting at...

This is a can of worms but what is concrete is that AI knowsAbout raises to 1.5 minimum when hit. It's targetKnowledge errorMargin gets as low as 0.22 (accurate) from 1000 (not accurate). https://i.imgur.com/zJ78kGH.jpeg
I thought of shooting away from AI and it's knowsAbout goes to ~0.73 instead of 1.5 while still having an accurate targetKnowledge errorMargin of 0.22. https://i.imgur.com/OWKZCNl.jpeg
Maybe 0.73 would be a better number for when hit? Since when you're hit you still only heard the shot, you didn't actually see the bullet.
edit: I think code wise would be "do nothing", since AI is already aware of bullets flying around. Just set to Combat? Idk...

gaunt depot
#

@untold sky Finally tried using uiEx, lots of errors even for example texture:
#(rgb,2048,4096,1)uiEx(display:RscDisplayFieldManual,uniqueName:testName,viewportX:-0.5,viewportW:2,bgColor:#ff000000)

13:38:38 UiEx procedural texture syntax error: 'Unknown property' at -> 'uniquename:testname,...'
13:38:38  ➥ Context: #(rgb,2048,4096,1)uiex(display:rscdisplayfieldmanual,uniquename:testname,viewportx:-0.5,viewportw:2,bgcolor:#ff000000)
13:38:38 UiEx procedural texture syntax error: 'Unknown property' at -> 'viewportx:-0.5,viewp...'
13:38:38  ➥ Context: #(rgb,2048,4096,1)uiex(display:rscdisplayfieldmanual,uniquename:testname,viewportx:-0.5,viewportw:2,bgcolor:#ff000000)
13:38:38 UiEx procedural texture syntax error: 'Unknown property' at -> 'viewportw:2,bgcolor:...'
13:38:38  ➥ Context: #(rgb,2048,4096,1)uiex(display:rscdisplayfieldmanual,uniquename:testname,viewportx:-0.5,viewportw:2,bgcolor:#ff000000)
13:38:38 UiEx procedural texture syntax error: 'Unknown property' at -> 'bgcolor:#ff000000'
13:38:38  ➥ Context: #(rgb,2048,4096,1)uiex(display:rscdisplayfieldmanual,uniquename:testname,viewportx:-0.5,viewportw:2,bgcolor:#ff000000)
#

Tested like this:

hintSilent composeText [" ", image "#(rgb,2048,4096,1)uiEx(display:RscDisplayFieldManual,uniqueName:testName,viewportX:-0.5,viewportW:2,bgColor:#ff000000)"];
#

Latest dev

gaunt depot
#

It still displays it but changing uniqueName doesn't refresh it, so I guess its all ignored and it uses and empty string due to these errors

untold sky
gaunt depot
sinful kettle
untold sky
gaunt depot
untold sky
#

image= structured text, has a forced text lowercase in its code.
That is nonsense because the function it passes the lowercased thing to, already does its own lowercasing. So its doing it twice..

gaunt depot
#

Hmm, I guess I didn't notice this casing issue with original ui because I always kept unique name lowercase.

#

Display names were with different casing though

untold sky
#

config entries are case insensitive

gaunt depot
#

I guess if I used original ui as structured text I would've also had same issue?

untold sky
#

ye

gaunt depot
#

I indeed only used it on textures

#

Sounds like time for ui2texture inside ui2texture again, lol

#

lowercase ui in structured text, then proper uiEx inside it as one big ST_PICTURE

#

Actually my original intent was to try to downscale UI pictures with uiEx to see if it would yield less aliased compression

untold sky
#

I fixed it. But that'll be a couple months till release still
Very smol

gaunt depot
#

because I'm using 512x256 gun UI pictures in 18px high text line and the look horrible

#

Field manual for ants

untold sky
#

Creating TONS of new render targets for these UI's might not be that great though

gaunt depot
#

Hoping it wont get flushed and you'd end up with a micro freeze next time they appear

#

I still wonder if there could be a procedural texture that tries using a mipmap closest to texture size

untold sky
#

If you make them 2kx4k textures they probably won't stay in cache

gaunt depot
#

So say if you use 512x256 texture in that procedural texture of 64x32 size it uses MIP#3 as base

untold sky
#

The engine doesn't handle tons of render targets well. Lots of O(N) loops all over the place.
So having tons of them might be bad for performance, even if they are not actually rendering

gaunt depot
#

🤔

gaunt depot
limpid rune
#

Yeah UI really sucks at scaling images

desert trench
#

does it make any sense to have KnowsAboutChanged to trigger of old and new knowsAbout are 0?

desert trench
#

nvm - script design prob..

daring wagon
#

17:56:29 Performance warning: SimpleSerialization::Write 'params' is using type of ',TASK' which is not optimized by simple serialization, falling back to generic serialization, use generic type or ask for optimizations for these types
Is there any way way to figure out what script is causing that? -debug parameter already in use

untold sky
#

That line already prints context if context is available

#

Is that from a server?
Maybe context is only available on the client that originally sent that

#

Oh fuck 😄 I left some debug code in there in 2020 and we released that. whoops. Hopefully noone noticed random number.txt files on their O: drive..

#

Actually that could help you

#

Make a O: drive, then it will write to a file the contents of that serialization message.
Maybe that helps you track it down

desert trench
#

😮

daring wagon
#

Nice.

#

Guess not many folks have O: drives 😄

gray wharf
#

kind of a curiousity/readability, but what about

foreach _allItems do
{
  hint str _x;
};
```?
uncut briar
#

slower

gray wharf
# uncut briar slower

due to the additional do I know, but I do not see any other way to make a "normal" forEach

regal nimbus
#

well, _allItems forEach { code } would have been fine?

gaunt depot
#

https://feedback.bistudio.com/T76756
Can we please have flares fixed? Been almost a year since I last asked, maybe its finally the time to tweak few config numbers and bring back cool gameplay mechanic into the game.

#

Pictured: Now vs Alpha, same flare

alpine tulip
#

I believe color and intensity are considered to prioritize to render lights. But attenuation isn't?

gaunt depot
#
    class rhs_ammo_flare_m485: F_40mm_White
    {
        intensity = 100000;
#

RHS solves it very simply, just adds a 0 to intensity

#

which is 10000 in vanilla

gaunt depot
#
"'intensity' in (configProperties [_x, 'true', false] apply {toLower configName _x})" configClasses (configFile >> "CfgAmmo") apply {[configName _x, getNumber(_x >> "intensity")]}
```=>`[["FlareBase",10000],["Flare_82mm_AMOS_White",10000]]`
#

Only two places where intensity is defined

#

super easy fix

unborn acorn
alpine tulip
#

Maybe because there're two ways to define intensity?

#

And someone forgot to consider both

gaunt depot
#

I just tested it

#

intensity = 0 => no light at all

#

delete intensity; => proper bright light like in alpha and A2OA

#

Looks like intensity overwrites brightness that was used early in A3 and back in A2

#
class CfgAmmo {
    class FlareCore;
    class FlareBase:FlareCore {
        delete intensity;
    };
    class Flare_82mm_AMOS_White:FlareCore {
        delete intensity;
    };
};
```Config used
#

Current build without intensity

gaunt depot
#

getNumber(configFile >> "CfgAmmo" >> "Flare_82mm_AMOS_White" >> "brightness") => 2
getNumber(configFile >> "CfgAmmo" >> "F_40mm_White" >> "brightness") => 12

#

Yeah, config is all over the place

#

Back in OA flares had brightness = 2; so I guess it was bright enough for that lighting system

#

RHS also does

brightness = 10000;
```but I guess this was ignored because seeing how bright 2->12 difference is 10000 would probably lit the whole map
gaunt depot
#

1000000 (1 million)

#

Looks closer to real photo now

#

Million intensity

gaunt depot
#

Summarized all this in the ticket, PLZ FIX

alpine tulip
#

Isn't all posts here can summarized into that 6 characters

desert trench
#

just making additional variants to keep "backwards compatibility" - its not much config work

#

Evidenced by the count of the array returned by (allMissionObjects "#track") increasing gradually over time.

#

shouldnt the original problem get addressed as well? aka the "garbage collector" bugging out as it seems

limpid rune
#

has anyone else played around with Put/Take eventhandlers on containers? I tried adding it to a vehicle and while the 'take' would fire when I took a weapon out of the vehicles inventory it wouldnt fire for items, and put never fired

#

magazines and weapons fire 'take' but never put, items never fire

gaunt depot
#

Only ever used it on the unit, seemed to be reliable there

#

Adding it to containers seems to be 2.14 feature, maybe bugged?

limpid rune
#

Yeah it works ok on units other than swapping weapons/items only triggers 'take'

sinful kettle
sinful kettle
alpine tulip
#

Add _forEachIndex into apply whiskers

sinful kettle
#

actually forEachDo makes sense think_turtle

gaunt depot
#

Unless someone used exactly this variable name and their script will break thronking

#

But I had a need for indexes in these iterators quite a few times over the years, they're very useful

#

_countIndex, _findIfIndex, etc.

#

_selectIndex

#

I wonder how slower these commands will get if engine will start adding these index variables

#

Anyone else would find setRet, deleteAtRet (deleteRet), resizeRet and similar commands that would return array/hashmap they operated useful?

#

So you could do:

_object setPosATL (getPosWorld player setRet [2, 100]);
```instead of
```sqf
private _pos = getPosWorld player;
_pos set [2, 100];
_object setPosATL _pos;
#

or one-lining turning 3d coordinates into 2d coordinates:

getPosWorld player resizeRet 2; // [X,Y]
#

appendRet, pushBackRet, reverseRet, insertRet, pretty much all commands could use such a version

gray wharf
alpine tulip
#

I sometimes want that kind of incremental variable NGL, though

untold sky
untold sky
# alpine tulip Add `_forEachIndex` into `apply` <:whiskers:921787076809228349>

The limitation with that was performance for setting the variable.
With simpleVM that is basically gone though, so... could..

I also wanted to just add that as a command. Since break/continue commands, we can refer to the parent loop.
So we can make a loopIndex/Iteration command that works in any loop (including while actually). Without paying the overhead of setting a variable even if its not used. Problem just that calling that command to get the value is slower than reading the variable. But this way all the loops that don't use it, don't have to pay for it
But time...

untold sky
alpine tulip
#

Yeah can imagine that it is the issue

fresh hawk
gaunt depot
solid marten
#

can make apply alt syntax array, array

#

in fact make a ticket this should be useful

#

array apply [index, value]

gaunt depot
solid marten
#

yeah no need adding a new command just for that, apply makes sense

gaunt depot
#

Gonna get very confusing because of naming

#

How about ret? Return and set in one word meowtrash

sinful kettle
#

I'd say just make set return back the array

#

same for resize

untold sky
#

Can't edit existing commands because backwards compat.
Suddenly scripts that are supposed to return nil, return an array

sinful kettle
#

well I have an idea:

enableArrayReturn -1;
[] set [0, 1] set [2, 3]
#

similar to forceUnicode

#

enableArrayReturn count (count is how many more commands can use it)
negative = no limit
zero = disable
one = next command only

desert trench
#

28ms for EpeFR - seems not right?

regal nimbus
desert trench
#

cant tell. didnt happen every frame at least - but thats to be expected

#

we would need aa tool to parse frameCaptures and making graphs/counting/averages/min-max and such for that

regal nimbus
#

It's well-known that the ragdoll physics is extremely slow. Not actually sure if that's physX though.

#

Ever try killing 200 AIs at the same time? :P

azure crane
#

can we get a tiGoggles/tiGogglesOff action since there's already one for NVG? I didn't notice any appreciation of adding an EH or any other function to enable or disable TI for player without using camCreate so maybe an action at least?

twin hornet
#

Hi, I know a lot of tasks are waiting in the feedback tracker. 😔
Would it still be possible though if you could check if the fix of T178445 is just as easy as fixing a number rounding problem (as I suspect)?
https://feedback.bistudio.com/T178445
If it is more complicated than that drone jamming and other electronic warfare mods might just be too niche to justify the effort.

Why is the problem relevant to those mods?

  • The Contact jamming antenna has a rather small frequency span of just 7MHz (see screenshot). If you have a congested electromagnetic spectrum (e.g. lots of drones and their control signals) zooming in to the spectrum becomes relevant. But zooming in too much will get you into the stated problem.
  • Another application for zooming in would be jamming of player radios (Vanilla, TFAR, ACRE) on nearby frequency channels whilst avoiding electromagnetic fratricide.

I can provide more testing and/or information on the intended application if necessary.

solid marten
#

you don’t want to make a ticket, no problem

solid marten
# sinful kettle I'd say just make `set` return back the array

in addition to what dedmen said performance of the command would change. Set is fast because it just modifies an element, resize is fast because it just modifies the n of elements. returning and array means constructing one, maybe not that noticeable on small arrays but will be on the bigger ones.

#

also « again »? was it returning array before?

gaunt depot
solid marten
#

foreach is array iterator, apply is array copy modifier that has iteration ability.

gaunt depot
#

Yeah, but its still very far from set that also returns the array, I don't like it being called apply at all.

#

Not for personal sake, i'll be okay, but not to confuse others

unborn acorn
#

Can be throwables modified to make sounds every time they hit surface? i.e. after impact wall, the floor fall will make impact sound
For now grenade impact sound will only on 1st surface impact, 2nd (and others) impacts will be w/o sound
аsking if this is even possible in a3 before FT ticket

desert trench
regal nimbus
#

It lasts a good couple of seconds, so I'm not sure what else it could be. Other processing should be same-frame?

#

There's weapon dropping as well, but I'd expect that to be relatively cheap.

gaunt depot
#

Just had a need for a merge that returns a hashmap. Also wrapping right operand hashmap into array so it overwrites and faster which is not by default feels very ugly.

desert trench
regal nimbus
#

oh, that. Yeah I don't know what it was in your case. PhysX is certainly capable of eating that sort of time though.

gaunt depot
# gaunt depot https://feedback.bistudio.com/T178841 Made the ticket
    private _hit_info = ["", "weapon", "muzzle", "mode", "ammo", "magazine"] createHashMapFromArray _fired;
    _hit_info set ["vehicle", _fired_extra get "shooter_class"];
    _hit_info set ["headshot", _is_headshot];
    _hit_info set ["distance", _distance];
    _hit_info set ["travel_time", _travel_time];

could turn into single statement of

    private _hit_info = ["", "weapon", "muzzle", "mode", "ammo", "magazine"] createHashMapFromArray _fired
        ret ["vehicle", _fired_extra get "shooter_class"]
        ret ["headshot", _is_headshot]
        ret ["distance", _distance]
        ret ["travel_time", _travel_time];
#

Hmm, what if new command allowed several sets at once 🤔

#
    private _hit_info = ["", "weapon", "muzzle", "mode", "ammo", "magazine"] createHashMapFromArray _fired ret [
         "vehicle", _fired_extra get "shooter_class"
        ,"headshot", _is_headshot
        ,"distance", _distance
        ,"travel_time", _travel_time
    ];
#

might not look as good for arrays though

#

this could also support insertOnly for hashmaps, if number of elements is uneven then last one is the flag

desert trench
#

9:19:49 ["_unit in (units player)",1604.41,false,R US Area 5 Patrol 2:1,GUER,240.488,[R US Area 5 Patrol 2:1,"head",0,<NULL-object>,"",2,<NULL-object>,"hithead",false,3]]
9:19:49 ["_unit in (units player)",1604.41,false,R US Area 5 Patrol 2:4,GUER,238.647,[R US Area 5 Patrol 2:4,"head",0,<NULL-object>,"",2,<NULL-object>,"hithead",false,3]]

#

@gaunt depot these one can always ignore right?

#

(fake head)

#

UNIT,"body",0.000100058,<NULL-object>,"",11,<NULL-object>,"incapacitated",false,2]]

#

this looks like damage by interaction with terrain/objects while unconscious?

daring wagon
#

Is there a command to get the latency (ping) of a player ?

#

If not, could we get one?

fresh hawk
daring wagon
#

Interesting. Thanks 🙂

sinful kettle
#

just return it back

#

Performance will be exactly the same

#

The only difference is instead of returning nothing you just return the original array

sinful kettle
gaunt depot
sinful kettle
#

Like I said it can be done using my workaround

gaunt depot
#

set N number of elements

#
ARRAY = ARRAY setN [INDEX1, VALUE1, INDEX2, VALUE2, ..., INDEXN, VALUEN]
#
  1. Returns the array/hashmap so it can be used with other stuff in same statement
  2. Lets you set several elements in one go
  3. No confusion with other commands and no backwards compat issues
#

probably can also cram hashmap's set insertOnly flag there

gaunt depot
#

ignoreFakeHeadHit flag

gaunt depot
#

But the idea here is to use as less commands as possible, flipping flag back and forth with two additional statement kinda defeats the purpose.

sinful kettle
#

You just set the flag once

#

At the beginning of your script

gaunt depot
#

Oh, its script-wide

#

Still, I like the idea of a new command that lets you set several elements at once AND return the array/hashmap

sinful kettle
fickle root
#

legacity 🫠

solid marten
gaunt depot
solid marten
desert trench
solid marten
solid marten
#

I wonder why this wasnt done before

gaunt depot
#

Can't unitTurret be made into a unary command? Its not like one unit can be in two vehicles at once 🤔

outer frigate
#

may be for viv?

solid marten
gaunt depot
solid marten
#

how is this an improvement to the existing one?

gaunt depot
#

Less stuff to pull and send into a scripting command while the engine already knows what you'll send there.

solid marten
#

cool cool

gaunt depot
#

Current syntax has a small usage of being able to also check if unit is still in certain vehicle, but this feels more like a side effect

#

But often if you know what's going on, you already know the unit is in the vehicle anyway

#

Not a big deal but having an unary version would make sense

#

In my specific case by the time units list reaches the function I no longer have the vehicle but only the unit list. Sure I can get vehicle off one of them, send it alongside units or something else but thats a tiny extra overhead when I'm 100% sure units are in the vehicle.

#

So pedantic about all of this and trying to cut down on extra microseconds because my stuff runs in Fired and HitPart event handlers, trying to optimise as much as possible

naive mountain
daring wagon
#

First contact makes a sound. Following impacts don't.

outer frigate
#

iirc leopard already fixed it

sinful kettle
#

I didn't

#

Can be fixed but I didn't get to it

#

Also grenade impact sounds need to be fixed by reyhard. since it was config related

gaunt depot
#

Still need this to filter out HitPart impact spam, when a shot touching an entity each frame without exploding because it didn't travel its fuseDistance:
https://feedback.bistudio.com/T176015

#

Should be an easy scripting command, gonna solve a lot of headache for anyone trying to track damage through HitPart

untold sky
untold sky
solid marten
untold sky
#

set command is const?
But it can't be, it modifies the array already

solid marten
#

Hence my question why it wasnt done before, was there a reason or just oversight

untold sky
#

set is as old as setDammage

solid marten
#

yes set also takes const array then unconst it

untold sky
#

Ugh because of the script values being by ref... mess...

#

Doesn't need to be unconst for return. We can return const.
Could just return first parameter instead of nil.

solid marten
#

true

untold sky
#

Oh its from 2002 😄

gray wharf
untold sky
#

set change note says 1.44

gray wharf
gray wharf
gaunt depot
#

I wonder if its possible to make SmallSecondary and other scripted explosions have setShotParents with vehicle that did them?

#

Possible as in will setShotParents have any effect since its an explosion that lasts one frame

#

and if its a good idea in general

outer frigate
#

is it possible to get hiddenselections added to uniforms at this stage of development? just want selections for nikos uniform

solid marten
#

@gaunt depot 14:15:24 [bob,"head",0.0885458,tank,"B_127x99_Ball_Tracer_Red",2,kk,"hithead",true,3]

#

The instigator was missing yet known

gray wharf
#

dang, close

gray wharf
gaunt depot
#

ah

#

ban speedruns

alpine tulip
#

Speedban

gaunt depot
#

@solid marten Is expanding the engine to store both source and instigator that hard of a deal instead of single lastEntityCausingDamage? This will make a lot of things much easier if vehicle explosions will have proper source and instigator.

#

I guess this part was just forgotten to be expanded when shot parents were extended to include both source and instigator, correcting it would make sense.

solid marten
#

Too hard

gaunt depot
#

Typical problem it creates:

  1. Running over people with a vehicle does source=player instigator=null damage
  2. When you blow up some vehicle with a tank, it will be destroyed with source=tank instigator=player
  3. But explosion that vehicle creates will produce source=player instigator=null kind of damage which is easily mistaken for roadkill damage
#

Sure that damage has different ammo to tell it apart from roadkills but its still a confusion

#

I guess very few people cared about such nuances over the years

solid marten
#
  1. Running over people with a vehicle does source=player instigator=null damage
    should be better in next dev