#arma3_feedback_tracker
1 messages · Page 11 of 1
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
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)
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..
That would probably be doable, in the tooltip.
But would any player actually figure out that is a thing, and ever use it. Would it be worth the effort?
I am not at my pc right now so can't check. I was more thinking about get3DENCamera add3DENEventhandler...
Will do ticket later.
we already have a 2 way to check current rounds count by white strip as old way and by counter in tooltip from 2.14, I don't think it's much more useful
so why not create a same info for IR lasers/flashlights?
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
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)
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.
I've updated this ticket with more context. Thanks for the feedback.
https://feedback.bistudio.com/T177407
It shouldn't be 🤔
I would think one of the keys doesn't have a "English" entry
I haven't heard of case-sensitivity issue there
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?
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
19:58:40 Unsupported language english in stringtable
That msg though 😄
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
yeah should be "missing English definition (for key XXX)"
the condition order probably matters a good deal too. i'd assume the distance check first might exclude most units and thus should be most efficient
https://feedback.bistudio.com/T178426 @untold sky do3DENAction "toggleVegetation";
[Feature Request] WaypointCompleted group eventhandler
https://feedback.bistudio.com/T178427
i’m curious if it is worth it to have server side script command for apocalyptic scenarios
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
it is direct render flag, set it on set it off easy peasy just don’t forget to reset on mission over
Yeah, looks kinda nice
Would AI vision be properly affected, and the leaf bursts when shooting through it etc.?
I'm assuming yes because it's just a render flag. collision testing is done on other LODs
Did you mean no, it wont get affected as it wouldn't know the leaves are gone?
* target obstruction for lock-on weapons, laser targeting and ranging, and script command raytracing, would also be important to handle properly
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```
I would love to have that for screenshots. Diag exe only would make me sad, but I guess I can see why.
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 
Would be really nice, had this exact issue a few days ago trying to get decent screenshots where everything maintained res 1
FPS improving script addon by forcing everything to its lower resolution 
Finally those people who remake OFP missions in A3 can get the authentic experience
Well technically Extreme video settings can already does relatively similar?
I'd have it only on specific objects
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
Well I can understand why you need that, but I think that is an art's responsibility?
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
then make a ticket!!!! Don't know if there still is a room/teams to tweak P3D/graphical asset at this point tho
Yeah, don't think it can get fixed at this point
Not sure if reyhard is willing to touch that
Issue illustrated
Does that have less stairs at the higher LOD...?
Gosh, dunno who thought this is a good idea while you can see and shoot through the opened window
They're are 45' degrees ladder texture at lower LODs but actual yet flat geometry at higher LODs which makes them less visible at these angles
They're target practice for marksmen
Well yeah it shouldn't know, because it's a render flag
Players doesn't hear projectile incoming sounds if shot was fired from a distance more than a ~1000m
https://feedback.bistudio.com/T159917
I just updated ticket with more clear repro
https://feedback.bistudio.com/T165776
Updated ticket with new info, don't think sounds hard to hear but can be easily adjusted if need
Easy to verify with checkVisibility
BI has something like this in internal build
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.
IIRC CTRL + ] or [ to switch LODS
could be nice for something under cheats? instead of type fps type lod or smth
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
A new command, just for one eventhandler usecase :U
It's addEventHandler, my bad
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
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
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
Structured text would need to be re-rendered each frame.
ui2texture can render just once in this case
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."
What happens to the other players near the vehicle who are not the caller? Do they die?
Will do! I tested the old version and we all flew through the air 🫡
good to hear 👍 what about a private ticket to make suggestions?
[Optimization] Extend unit collection sqf commands with more filters for less fps footprint
https://feedback.bistudio.com/T178492
Tried to include all meaningful commands. Its quite a list - potentially doing for multiple in one go, reduces the effort overall tho. 🙏
doesn't need to be a private ticket I think
alright - a summary ticket or rather one by one as normal?
That would be neat.
@sinful kettle https://feedback.bistudio.com/T178496
#dev_rc_branch message
Oof I was worried that some actions would be broken. I only checked a few and they worked fine tho 
(except for some that depend on anims)
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
https://feedback.bistudio.com/p/vandana/
Spam account
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
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
I did. Connected terminal, open terminal windows, contolled UAV unit, always false on both server and client
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
Added info block regarding MP locality
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 🤔
it does work
nakedUniform
vanilla is supposed to have randomised underwear but the hidden selection in the config is wrong
Not sure if it will recolor underwear with hiddenSelectionsTextures
Yeah I remember seeing that ancient script. Having side-specific underwear would make more sense.
A soldier being of a side doesn't necessarily mean it's being used to represent a particular faction though. Do Pacific CSAT or Spetsnaz also wear brown? What about BLUFOR guerrillas, Gendarmes, NATO units being used as a base for some custom faction?
I'd prefer to leave the generics in place and add some multicoloured classes for people who want to use them
Good solution too. B_Soldier_universal_green_F, B_Soldier_universal_black_F, etc. for a underwear variation
you can define nakedUniform per unit - we did it in spearhead so the US units have different underwear vs germans etc
Doesn't SOGPF also has different underwear for US vs VN?
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
cant remember tbh
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
Pretty much everything in here tbh https://forums.bohemia.net/forums/topic/180646-list-of-all-hidden-texture-inits/
Yeah, wish we could get it available in the game properly.
There are also remnants of what seems to be civilian\MP Hunter but it was scrubbed back in alpha
And perfect fit to the environment
oshkosh_riotpolice_alpha_ca.paa
hunter\data\oshkosh_base_riotpolice_co.paa
Open the archives! 
I will need a repro, works for me
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
We do, they're bit different.
Camera's don't have any EventHandler support in general... So... That makes it a bit more annoying than expected.
And beyond adding eventhandler support to it. There also isn't a simple place to detect movement.
And considering you can workaround this by just EachFrame checking the camera position.
That sounds like a "won't do" unless you can give me a really good reason.
Looking like binding a key to Collective Raise (Analog) (HeliCollectiveRaiseCont) gives you 20% better lift than with Collective Raise (HeliCollectiveRaise)
Well make ticket
@daring wagon https://feedback.bistudio.com/T174947
modded compositions not showing in Zeus. Mine do? 😕
scopeCurator is a nice idea anyway tho
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
https://feedback.bistudio.com/T79868
Been reported for a long time it seems
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?
Ok so at first I thought it was an issue w/ my x55, however Ive tried xbox 1, and x360 controllers as well, and all of these controllers only register 50% range, doesnt matter how I configure them. Ive tested all three in other games such as Elite, KSP, DCS and their full range is registering 1:1...
Interesting. I will check our config setup again when I am back home. @desert trench for awareness.
All good. I thought that because the camera has an attribute window it should have basic support for it and adding an EH for it would be simple.
As apparently not I'll stick with each frame eh.
Thanks for looking into it.
This isn't necessarily exclusive to collective btw.
I think most air controls aren't affected [any more?], I can reach 100% throttle with an analogue throttle for example, but there's something funky about analogue bindings for car steering and I think it's similar
Anywhere else where it gives you a gameplay advantage?
Car throttle?
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
No idea.
Car throttle might be affected but I really don't remember for sure.
did you figure out a better way by now? or how do you handle dead bodies and their weapon containers? just very aggressive cleanup?
Nope, no way to force stop the dead body, you have to wait until engine feels like it
looks like something that was intended for the "turbo" key
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
It is actually the same way with how a helipad cuts grass
So more of a P3D + Engine thing
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 😬
I remember these cutters slowing down the game quite a bit back in OA
do they still "work" with simulation disabled on them (after init)
so many grass cutters to have less grass = worse fps because rendering? dont get it
more grass cutters = more CPU time to find which grasses to cut = worse FPS
it's not an object property. it's a model property
ticket plz
Will do later
btw, some years ago making grass cutters simple objects was saving performance; maybe something can be done this way? (if not too expensive ofc)
can the grass cutters be deleted after the effect is applied or are they needed for JIP clients?
dunno. maybe. 😅
grass cutters use the thing simulation. I wonder what happens if I change it to house?
Well they still do work with house sim. I guess there's no need for disabling simulation or changing them into simple objects to save performance?
Your call and what would be the easiest / smartest, I do not know the recipe here ^^
if it shaves 90% off already I would say that is an improvement already!
any desire for allMissionObjects <array>?
_list = (allMissionObjects 'StaticWeapon') + (allMissionObjects 'LandVehicle');
_list = allMissionObjects ['StaticWeapon','LandVehicle'];```
Command is slow as shit, unusable during game anyway. If you can bear it freezing up the game once, its already fine to call it twice
No
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
ran a dedi server test with the grass cutter (which was deleted afterwards) and when I joined the grass was still there so yeah looks like the cutter object needs to be created for each client
you might be using it differently than I am ... i dont get freezing or anything, using it only serverside and scheduled tho
Sure its a tiny freeze, but if you ask me any such hiccup on server side is unacceptable
Maybe it is acceptable in smaller and slower scenarios
But in PvP where fractions of a second matter, its not
afaik there is a big difference between server and client for that function
I wonder what the difference is between allmissionobjects and filtering allobjects ...
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
As far as I understand allObjects pulls from internal entity lists while allMissionObjects does some kind of full map search
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]
];
filterObjects seems unnecessary, just <array> allObjects <collection>
like we have _allGroundWeaponHolders = "GroundWeaponHolder" allObjects 0;
so just ['LandVehicle','Air','Ship'] allObjects 0
allObjects doesn't have filters\collections for sides\alive state and others though
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
yea i had to do that today... always needing apply with it
_objects filterObjects createHashMapFromArray [
["side", blufor]
,["alive", false]
,["sort", {player distance _x}]
];

Coming up with scripting command ideas is my favorite past time
allDeadMen sort [{_x getEntityInfo 3},false]
allDeadMen sort {-(_x getEntityInfo 3)}

actually would be nice if allDeadMen had native sort by age
It probably pulls from internal order-less list
the entity creation order list
So its always perfectly maintains creation order?
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
allPlayers filterObjects createHashMapFromArray [["side", blufor]]
allPlayers in even worse state, it still contains logics, not just players
premadeFilterSoItDoesntBuildItEachTime = createHashMapFromArray [["side", blufor]];
...
allPlayers filterObjects premadeFilterSoItDoesntBuildItEachTime;
Speaking of which, at this point it is possible to maintain your own players list with OnUserSelectedPlayer and EntityRespawned
Doing sort of that to combat that issue with random players having no group\side
Happens in each and every game actually
glad to hear im not the only one ..
Players randomly appear without a group, that group doesn't exist on a client either
any ideas why? and would you say its worse in recent years?
I think its all fine on server side though (and player side too) but others see a player without a group
Seen this as far as back in 2011 when I started scripted, so its probably a very long going issue
Feels to be happening at around the same frequency
how often are you network syncing your player list?
publicVariable each time it updates
maybe a bit excessive and clients can build their own lists but its not that much data
i guess it is important
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
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 ...
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
server would randomly get a client to eval other clients
Might uncover and fix nearby issues or issues that trigger because of it too
Might be a big stability improvement
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
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
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
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
ticket
it prevents healing as soon as you touch any water
made a ticket about new target EH https://feedback.bistudio.com/T178591
polling nearTargets each frame makes the game lag so this EH is badly needed
@dreamy bane whats the difference to https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#KnowsAboutChanged and https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#EnemyDetected
there can be - but you need to specify
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;
}];
Instead of nearTargets just use targets
thats faster?
yes
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
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
- 1000000 is pointless to use - beyond viewdistance AI forgets anyway
- you should at least reduce the check frequency to say once per second and cache the targets in between
- KnowsAboutChanged you can use as event when to refresh the list
- forgetTarget only works if the group wont spot it again anyway, plus there is a difference between "currently seen targets" and "known targets"
problem is unless i call forgetTarget each frame the vehicle will shoot at the target at some point
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
@sinful kettle thx man , much less lag using targets. still hoping for EH though 🙂
so what you actually need is _source ignoreTarget _target - like setCaptive but with only an A to B relation
that command doesnt exist, right?
nope
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.
that wouldnt work for me because I want to disable the AI only on certain targets, not all... or maybe i understood wrong
Btw for grass flattening (not cutting away), it iterates over all vehicles in the world.
I recently made that multithreaded. Though only in experimental builds still.
It does. GrassCutters are "Thing". Which does simulate
Its not, its simply Roadway LOD.
It scans all Roadway LOD's in grass area, both for roads and grass cutters
I think we could change the simulation type in config 
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
yes. roadway is a "model property"
(I mean it's not per object. it's per model)
But there are also things called "Model properties" and roadway is not that 😄
I already tested it and it works fine with "house". but not sure how much faster than "thing"
afaik house is just as fast as simple object
at least according to wiki. never tested it myself
It could catch terrain objects, which allObjects cannot.
Though I also see it filtering out terrain objects.. So maybe it can indeed?
yeah it iterates thru all objects and discards terrain objs :harold:
I thought I had sortBy on some todo list. But cannot find it so I guess not.
Problem with that would be that it would've been slow in the past. But with SimpleVM it could be usably fast
Put that code into the ticket if that information is relevant.
low chance.
Dedmen can you have a look at that IR Laser issue pls https://feedback.bistudio.com/T172970
I think I'm gonna hate the word "gummies" for the rest of my life 
Shouldn't it be easy to detect this common used words of all this scam/advertisement attempts and block it instantly ?
Like if post contains "CBD gummies" block the post/account and done.
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 
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
tbf even the ability to disable the beam and have a dot in IR would already help a ton
On that subject, is it too late to have the swimming speed and ladder climbing speed based on unit weight? Or at least two commands to customize their speed?
Something like ```sqf
setAnimSpeedCoef
setSwimSpeedCoef
setLadderclimbSpeedCoef
You can script all that, we do that in KotH
It doesn't affect ladder climbing speed though
Perhaps this should be changed
Its the same amount of work for one parameter, as for half dozen.
I have seen it before, and probably ignored it because "wtf I don't know"
But now I know what's going on.. And I hate it.
Just up your view distance please, thank you
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.
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
Sad but fair
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
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 😅
so MaxiBoost is the new spam hey (don't worry @sinful kettle , gummies are still going strong)
Is that what gets the fps going faster
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
It works for swimming, but not for ladders, you're always moving as same rate and I'd guess its a bug
It's not a bug. It's just defined in a different config than anim or RTM itself
So a command to customize that config would be quite useful, so we can script our way into a weight based climbing speeds 😉
Shouldn't that multiplier also multiply that speed even if it is defined elsewhere?
Sounds like a bug to me that speed is decoupled from animation that supposed to be in sync with that speed
I'm pretty sure it actually should not be in render scope
it should use simulation scope
Its only checked where helicopter is local though
Unlike before where each client checked each helicopter in the world regardless of locality 💀
the game always checks everything in simulation scope, not render scope
render scope is for visual things
damage is not a visual thing
But shots are checked in render scope too, aren't they?
no
Otherwise you wouldn't be able to hit anything because remote entities sim scope updates irregularly
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
Well, in that perspective it apparently is a bug indeed
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
well everything else still does use that, so... 
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
sim is sim, we get confused with terminology. sim has properties like update frequency and precision
render visual state usages even for actions
well that is a visual thing
they both visual, one is render visual another is future visual
I'm not talking about engine terminology 😅
the script command name is confusing so let’s just leave it there
^^^^
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)
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?
changed to future visual, view from pilot
...
this is also how physx collision looked like tho
well it's not related to damage but still
just something to keep in mind
Yeah physx simulation is running ahead of rendering I think. Some magic voodoo
im guessing this is detected by a special physx component for the rotors?
I don't think it's physx, but KK knows better since he's working on that rn 😅
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
from what KK showed earlier, it's just a single tail rotor covering all the rotors
ah he didn't post it here 
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
neat
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"
what on earth
Has that head always clipped through the hatch? 😄
Nope, used the SDV for many hours and saw plenty of players using it and this never happened ^^
It would be nice if we had the ability to toggle this feature (globally or on a per vehicle basis) and have commands to manually trigger the rotor shear event in the case someone would want to implement their own behavior for rotor collisions
I agree, personally I'd disable it as we run a rather casual mission and people got used to not caring about the rotor
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
you could get killed previously too
nothing's changed in that regard
rear rotor also ignored damage enabled 🙈
ticket 
iirc vet made one a while ago already
I haven't added it, it has been implemented from the start, The way to disable it would be to set the rotor radius to 0 in config
handledamage shoud work now too
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
i will double check, it should work after last commit but if not I will add it explicitly
It works just fine, you can allowdamage false and it wont kill player
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
Well, the rotor would break, and nothing changed in this regard
Also allowdamage false on helicopter disables it, again it was always possible
@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.
Ref https://feedback.bistudio.com/T178427
You asked for return value _timedOut, but I don't know what that means. What should the engine be doing with that return value?
fixd
I don’t want to disable all damage on the helo, I specifically want to disable the rotor shear behavior and only that
main/tailBladeRadius = 0;
I hope it doesn't damage the players the same way proper helicopter does?
Btw was this rotor self-damage (breakage) fixed to go through HandleDamage?
insta kill
jk, but really player gets killed by some other collision mechanism in small drones, before the rotor can do damage, was like this before
only damage for player
So helicopter now triggers HandleDamage on other damaged unit, but the rotor itself breaking off doesn't go through HandleDamage?
the damage to player goes through handle damage, the rotor breakage was never going through any handle damage
Yeah, that's the problem I was asking about, thought maybe you also fixed it
Before you ask, no I wont spend time on it sorry
Oh well, going back to resetting rotor to repaired state each frame to bypass it instead
not a bad solution
unless this is something really simple
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
Probably is, likely it is done where helicopter is local, instead of instantly breaking the main rotor, fire HandleDamage first and act on its return value.
why not allowdamage the whole chopper in safe zones?
So it can still crash from collision but not take damage from friendy or enemy fire
Otherwise you'll end up with upside down invincible helicopters
not quite safe innit?
Its a pilot's fault if they flipped it, but it won't let enemies or griefing friendlies damage it
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
Will do
Do you guys get a bonus per ticket resolved? 
I get a Maserati for each ticket dunno about others
Condolences for all the upkeep costs you have to pay
Thats why I make no money
Why does it not do what you need.
EnemyDetected is basically "newTarget". Or is it bad that it filters enemy only?
I'll put the "NewTarget" EH, onto the code that adds the target into the nearTargets list. So it will catch everything that nearTargets returns.
But I thought the other one would already do that doesn't it?
@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
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?
cant you (as scripter or in engine - not sure whats better) do the knowsAbout check for NewTarget - and if high enough, then you proceed
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
https://feedback.bistudio.com/T178060
Please change project from AR to A3
Thanks
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
SO handledamage doesnt react to setHitxxx ?
No, engine-driven damage
Is that something that should go through handledamage?
Repro mission spawns a working heli by a flag pole which instantly destroys heli's rotor, despite there being HandleDamage that always returns 0
I tested EnemyDetected using forgetTarget there to prevent the AI from firing but it still fired. only by using EachFrame to forgetTarget I was able to prevent the AI from firing. so I thought EnemyDetected triggers on other things than nearTargets
@dreamy bane what about knowsAboutChanged EH?
Scripted damage? No it shouldn't, HandleDamage should fire on engine-driven damage
I can repro this is not a problem the problem is more global whether or not setHitxxx should go through handledamage
Is there a script that does this rotor destruction through setHitxxx command? 
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
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
sethit directly sets damage on hitpoint
tried that too
the rotor damage does the same
isn't there a disableAI that disables firing weapon?
Or maybe that was a feature request I saw recently
Would that do what you need
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
Im only limiting the targetting of certain targets (air targets but I want the AI to shoot ground targets normally)
maybe something like ignoreTarget could be useful
Like "hey this unit, never let its knowsAbout go higher than 0"
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
that might work
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
I think there was something for ignoreTarget. Plase check if there was already ticket for or not. I'll look on monday
no results with that keyword (ignoreTarget)
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.
nothing has been changed in the way blades are hit
This is correct, when engine destroys the rotor it sets the damage to 1, hides the rotor (I don't think you can do that with scripts) and instantly kills RPM to 0 (you can't do that with scripts either)
and you fall down like a rock
My heavy soda can says otherwise /s
where with setHit* you would start losing RPM, rotor slowls stops, you lose lift, etc.
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)]
[Feature Request] Add SQF command ignoreTarget
https://feedback.bistudio.com/T178693
i thought to remember an existing ticket but wasnt able to find one. so made that one @dreamy bane
Bullshit HitHead fire in HandleDamage doesn't have instigator in it despite all other events having it
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
It is a collision damage
was there anything further on something like disableAI medical btw
Huh? But it also fires from an explosion, how can it be a collision?
there is only one call that leads to this damage and it is a collision
Man::OnCollide
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
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
if there is source it passes it over
but those velocity shakes have no source maybe
what happens if you ignore this damage
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)
Yeah, but why it does it only in some cases
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
Created a ticket in case it ever was considered
[Feature Request] Add SQF command setRotorShearState
https://feedback.bistudio.com/T178698
16:13:51 "[B Alpha 1-1:1 (KK_DEV),""main_rotor_hit"",1,2aac5652b00# 3: vr_block_02_f.p3d,"""",4,<NULL-object>,""hithrotor"",true,2]"
@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?
Might wanna check that this doesn't break ACE's fake hitpoint method.
seems risky to change that - at best should be opt-in imo
it already skips hit points with 0 damage, I’m taking about total damage that sometimes calls the handler with 0 damage and this strange head hit that is also can fire with no change in damage
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.
yes this is handy
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
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)]
Wont it break context numbers order?
I think I'd pick not to remove it and leave it as is
there is no order, but yeah even though I think it is safe should probably add an option
would there be a way to get this as a setter on the unit? would be super nice to have more granular control than setcaptive for ai stuff
That sounds very useful for AI control and stealth mechanics
If it could accept Side, Group, and Array as well that would be a convenient bonus, obviously not essential though
yeah its like perfect for what i need for imposters rewrite
or being able to cap off knowsabout of a unit or something
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
@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
It is a niche command for specific uses, Im not against it, maybe if @untold sky fancies changing it
How about an option to get rid of these useless HitHead events too?
get rid how, not pass it over to EH or ignore them in engine completely?
Ignore completely, I think this event does nothing at all
have you tried to return 0 in EH for them, what happens?
Unit dies from normal HitHead
what about setVelocity death?
Is it any different from normal damage apart from not having source?
Just tested, doesn't seem so
What this event fire does:
If you get HitHead damage and total is:
- Less < 1, then it does nothing. Pointless because it doesn't even set the damage
-
= 1.01, then it kills you. BUT you'll also get >=1.01 in normal
HitHeadwhich 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
About 3 results (0.23 seconds)
```probably not
ok will add ignoreFakeHeadHit option
I don't think it's easier to remember
you have to remember the case too
if anything, it should be an array of pairs for case-insensitive comparison
but imo it's not worth it. just use #defines
you can't change just one flag though
Its not a big deal all in all though
well you can:
#define OPTION1 0
#define OPTION2 1
_o = getMissionOptions;
_o set [OPTION2, _value];
setMissionOptions _o;

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)
whats the design scope for setMissionOptions ?
It was actually the fake general damage hit (bleeding?) that caused the one-shots in Antistasi. Other hitpoints couldn't kill you.
EL if that's what you are asking
@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?
Sound dampening when using map too often
https://feedback.bistudio.com/T177253
this sounds like the wrong baseline is used - so multiple map switching multiplies the effect
@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?
Please add script commands to overwrite config's timing for magazine reload and time between each shot
https://feedback.bistudio.com/T178415
that would be very nice yeah
Ah, I thought it was head damage. At least bleeding damage does something in the game compared to it.
I guess you'll have to check if any hit part is going to 1 or above including parts that depends on it
So nothing new regarding it
ah k
getting inside a vehicle and it having ```sqf
isHidden vehicle player
Must be a bug right?
isHidden player ```
Returns FALSE just fine...
A better question is... can vehicles be hidden? If they can then they should process the command as intended. (PS: What about Ai driven vehicles?)
vehicle player hideObject true
``` works
It is certainly a bug
isHidden is not isObjectHidden
But a vehicle is not an object is it?
A vehicle is an object. Not sure what is your initial question after all
I am not asking any question, I am pointing the fact that a NON HIDEN vehicle returns isHidden = TRUE;
Okay, what do you mean by "hidden object" here
vehicle player hideObject true
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
isHidden is not a command to get if it is hideObject'd. You're trying to use a wrong command for wrong purpose
I don't know what Arma 1 tried to do with such commands tho
probably something similar to the cover commands
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
I also had this with LnB, didnt make a dedicated repro for it
I guess there is some rounding going on that messes it up?
ctrlSetPixelPrecision didn't help it last time I tested
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?
Can't really fix that without pixelgrid I'd assume. Rounding will always be present and it adds ups with each row.
Hi, who can I ask to delete my account on the BI feedback tracker site
#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
Would be near if MouseOver could have this information but I guess it needs to calculate it as well.
you may be able to close it yourself, but you can also just not use it, why?
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.
if you don't mind, I will disable it for you (deleting it may break some things on db side)
sure. it's harith_s. Would that (disabling) mean that if I try logging back on it would reactivate the account?
I think not, you would need to ping us to reenable it
can you make a post confirming that it is your account indeed?
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)
Nice, thank you
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.
Looking at a 300 MB/hour rpt file because of exactly that issue now 😄
Any desire to remove instant reveal of shooter when AI gets hit?
https://feedback.bistudio.com/T75747
https://feedback.bistudio.com/T71788
https://feedback.bistudio.com/T150882
https://feedback.bistudio.com/T80218
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
cant you do that (#1) already
i swear the way cba does it is able to be extended easily
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
i mean cba does it in a method that can easily be adapted/added on to
im pretty sure anyway
Well yeah, the main point is to softcode in config
@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.
Related: https://feedback.bistudio.com/T82653
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
Don't know if it is possible to get corresponded default tex/mat despite there is no corresponded selection
These commands are about hiddenSelections, so you already have the selections
But selections are not always have one tex/mat, they can have multiple
To add one: I think blend mode can be a GOOD addition for GUI, yeah, of course if it is feasible. Addition, substract, difference, overlay, softlight etc
That's why I suggested a more complex version which returns all textures and materials for selection
this way you could build these defaults yourself once
Does this still happen tho? I remember numerous occasions when I was shooting at AI or my AI being shot and they would not know who or where is the shooter as long as distance was maintained, even if shooter missed or didn't kill anyone at first
I have 100% hit, missed and killed AI at range and the AI have not known where I was
Hm looks a boom reveals me?
Isn't that like a super old bug where explosives reveal you instantly?
Wasn't actually aware
Makes sneaky ambush missions a pain.
2013
what if you're prone, or behind cover?
Prone or cover also do this
it was revealed in Arma 1 iirc, and thought it got solved around OA / Arma 3?
someone broke it again then 
Dedmeeen! ✊
[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
Spam account
new record, thanks
I don't know if it's a good idea
E-mail notifications wins in this battle 
another one 🤣
COGNITIVE DISSONANCE
…I know, I know - sorry about that
fixed
was fixed in late A2:OA - might not have been merged to A3
@untold sky plox?
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
Put on ticket.
I assume you mean something like "ignoreForTargeting _unit"
Put on ticket, with usage example
I do fancy changing it. But time is not in abundance currently.
yeah or something like the other bit i mentioned like _unit setKnowledgeLimit 0 for example but expect that'd be too much effort for this stage in development
Ticket and I may look at it in a month or so
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?
@untold sky ↑
I thought it already existed
I'd love to have that too, a good flashbang remanence SFX
Oh you mean new effects.
Don't we have DOF already?
Oki then we can probably port the DOF and make it available. ticket
yay
I already posted similar ticket?
https://feedback.bistudio.com/T163827
dedmen set Ref Ticket to AIII-55603.
I think I can imagine L4D's adrenarine effect 🤣
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
Blame KJW for not knowing about that ticket
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)
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
nvidia photo mode go brrrr
You love to ruin my policy to make screenshots in Arma 3 🤣
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 😎
But yeah, this is bad after all
indeed
i just want it for better nv realism and more ways to make people trip out on ppfx
Why not? There is no way to revert setObjectTexture right now if you only have hiddenSelections without the textures defined
iirc #reset for setobjecttexture was being considered at some point but not like they have vbs' code to refer to any more
I thought we already implemented some reset thing into it
you did not lmao
I mean exposing the default texture. Also not sure if they can be packed in the model or something?
Resetting it can be done via a magic word as said above
If its too much hassle then having #reset ported from VBS, it will mostly solve issue I'm having (reverting vehicles to their default model-defined texture)
But since we have so many model operating commands, having one to return textures and materials for selection could be very useful
I certainly didn't. But I remember talking about it with others
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
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...
@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
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
For some reason its forced to lowercase.
You youre using special composeText thingymabob...
It is case sensitive, it can't be forced to lowercase.
For setObjectTexture and model textures it was adjusted to keep its case.
Maybe whatever that "image" command there is doesn't respect that and forces it to lowercase
Same issue with parseText. Can procedural texture be changed to check parse properties case-insenstively?
What about...what was the command name...setTextAttribute or whatever it was?
No. The uniqueName needs to be case correct too
So well yes I could make the properties insensitive, but then the property values might be broken/wrong. So that doesn't help us much
Well it operates with text so I guess it shouldn't matter as you make it with image or parseText in the first place
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..
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
config entries are case insensitive
I guess if I used original ui as structured text I would've also had same issue?
ye
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
I fixed it. But that'll be a couple months till release still
Very smol
because I'm using 512x256 gun UI pictures in 18px high text line and the look horrible
Field manual for ants
Creating TONS of new render targets for these UI's might not be that great though
I planned on precaching all these pictures during loading
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
If you make them 2kx4k textures they probably won't stay in cache
So say if you use 512x256 texture in that procedural texture of 64x32 size it uses MIP#3 as base
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
🤔
Issue pictured, trying to have these icons less aliased
Yeah UI really sucks at scaling images
does it make any sense to have KnowsAboutChanged to trigger of old and new knowsAbout are 0?
Maybe rounding?
nvm - script design prob..
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
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
kind of a curiousity/readability, but what about
foreach _allItems do
{
hint str _x;
};
```?
slower
due to the additional do I know, but I do not see any other way to make a "normal" forEach
well, _allItems forEach { code } would have been fine?
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
I believe color and intensity are considered to prioritize to render lights. But attenuation isn't?
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
No idea what defines this light to be honest, I only see intensity in config
"'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
If I correct Dedmen said this is a flares for signals not for illumination 
Maybe because there're two ways to define intensity?
And someone forgot to consider both
You know what, you're totally right
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
Well, dedmen is wrong, it should be a flare but it got broken by an engine addition and nobody cared to check how it affected the flares
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
lol yeah
Tried it and 100000 is still nowhere close to what A2OA and early A3 had
1000000 (1 million)
Looks closer to real photo now
Million intensity
Summarized all this in the ticket, PLZ FIX
Isn't all posts here can summarized into that 6 characters
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
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
Only ever used it on the unit, seemed to be reliable there
Adding it to containers seems to be 2.14 feature, maybe bugged?
Yeah it works ok on units other than swapping weapons/items only triggers 'take'
apart from being slower as veteran said, you also need to create a new type FOREACH 
you mean eachFor? 
Add _forEachIndex into apply 
actually forEachDo makes sense 
Or DoForEach 😄
I remember asking for it years ago, it should be called _applyIndex then to maintain backwards compatibility
Unless someone used exactly this variable name and their script will break 
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
_applyIndex and _selectIndex 😄
I sometimes want that kind of incremental variable NGL, though
Track leaks have been fixed once before
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...
I don't like spamming commands. Especially when it adds minimal value.
Yeah can imagine that it is the issue
Yeah, thats a lot of commands that do almost the same thing. Though I had a good use case for setRet a lot of times, maybe resizeRet to quickly turn 3D vector into 2D vector. Others not really.
can make apply alt syntax array, array
in fact make a ticket this should be useful
array apply [index, value]
instead of setRet?
yeah no need adding a new command just for that, apply makes sense
Gonna get very confusing because of naming
How about ret? Return and set in one word 
Can't edit existing commands because backwards compat.
Suddenly scripts that are supposed to return nil, return an array
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
Sounds like SQF 2.0
Was that persistent, or just that one frame capture?
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
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
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?
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.
how is apply confusing? apply a value at index in array and since it is apply we know it returns array
you don’t want to make a ticket, no problem
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?
I just think that having another apply named command that is very from from current apply that is array iterator is a bad idea
foreach is array iterator, apply is array copy modifier that has iteration ability.
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
https://feedback.bistudio.com/T178841
Made the ticket
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
are you sure this was ragdoll or only a guess?
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.
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.
i was driving a tank, and the mission has various other tanks.
the chance for an infantry to ragdoll in that situation was very low
oh, that. Yeah I don't know what it was in your case. PhysX is certainly capable of eating that sort of time though.
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
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?
Is there a command to get the latency (ping) of a player ?
If not, could we get one?
getUserInfo contains ping, but it's server execution
Interesting. Thanks 🙂
I didn't say reconstruct the array
just return it back
Performance will be exactly the same
The only difference is instead of returning nothing you just return the original array
Which can be done using this, without breaking backward compatibility
The issue is that functions that supposed to return nil will not return array and isNil will be false and this might break some scripts somewhere
Like I said it can be done using my workaround
Just had another idea for command name - setN
set N number of elements
ARRAY = ARRAY setN [INDEX1, VALUE1, INDEX2, VALUE2, ..., INDEXN, VALUEN]
- Returns the array/hashmap so it can be used with other stuff in same statement
- Lets you set several elements in one go
- No confusion with other commands and no backwards compat issues
probably can also cram hashmap's set insertOnly flag there
Yes, but now you can just tell the engine to not even fire these events
ignoreFakeHeadHit flag
Could work if other array/hashmap commands started returning what they operated
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.
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
I meant "return it back"
Prof/dev/stable?
legacity 🫠
all could be done with alt syntax to apply the single and multiple set, array or hashmap
But current apply iterates through array and calls the code and creates new array, it is barely related to set. Suggested command doesn't iterate, returns existing array. I don't see apply name fitting here at all.
Need to check that, it might create a copy anyway for the return value.
edit: prof in this case (as diag_logslowFrame and such isnt working in internal 😦 )
to me the name apply and current understanding to what it does fits perfectly with proposed changes. Personally I find it useful for said one liners, not tragic of course to keep doing it the old way. I'll just look at other tickets until there is a consensus
Nope
I wonder why this wasnt done before
Can't unitTurret be made into a unary command? Its not like one unit can be in two vehicles at once 🤔
may be for viv?
the array that command returns is a turret path. What the use of the turret path if you dont know what vehicle it is?
Usually you know the vehicle from context of your script, but in case you don't you can easily get it off unit with objectParent.
how is this an improvement to the existing one?
Less stuff to pull and send into a scripting command while the engine already knows what you'll send there.
cool cool
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
there is a ticket https://feedback.bistudio.com/T178856
What are you saying
First contact makes a sound. Following impacts don't.
iirc leopard already fixed it
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
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
"returning and array means constructing one"
In this case not. Because the array is already there in the input parameter
We currently don't have a need for tons of new idea's that only bring tiny value.
It is const. We dont have a single command that takes const array, unconst it and then returns back
set command is const?
But it can't be, it modifies the array already
Hence my question why it wasnt done before, was there a reason or just oversight
set is as old as setDammage
yes set also takes const array then unconst it
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.
true
Oh its from 2002 😄
wrooong :p
setDammage: OFP 1.00
set: OFPR (1.75)
set change note says 1.44
wasn't 1.46 released after 1.75?
2021-04-14? = OFP v1.46 according to https://archive.org/details/ofp_upgrade_4_v146
2022-06-28 = OFP:R (1.75)
hmmm
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
is it possible to get hiddenselections added to uniforms at this stage of development? just want selections for nikos uniform
@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
dang, close
@gaunt depot my personal record of user-creation/ban time
Speedban
@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.
Too hard
Typical problem it creates:
- Running over people with a vehicle does
source=player instigator=nulldamage - When you blow up some vehicle with a tank, it will be destroyed with
source=tank instigator=player - But explosion that vehicle creates will produce
source=player instigator=nullkind 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
- Running over people with a vehicle does source=player instigator=null damage
should be better in next dev

