Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Is there issues with CBA, RHS and CUPs maps
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2956673906&searchtext=COOP+08+Force+Recon
1. It creates infinite amount of HIG_Wall objects. I found it out by counting and dumping allMissionObjects "All" to the .RPT My FPS went to 2-5 per second after reaching ~30k of the wall objects.
2. For some reason it causes to fire "KnowsAboutChanged" event on enemy groups 10-30 times per second spamming script scheduller wirh 3000-6000 of new threads (spawn-ed) with event handler spawned. And the target unit (_this select 1) for that event is a... wall (wtf?).
3. After code review I found that your code has some flaws like defining (and redefining) functions inside the loop (_sect_fn and _srfce_chkr_fn) on each loop iteration, not disabling simulation for the wall, not privatizing local variables with the "private" keyword, and not using lazy evaluation in the expressions. These commands are used to diagnose: diag_activeScripts, diag_activeSQFScripts
Is there way to enable texture for the wall for debug purposes?
this setObjectTexture [0, "#(rgb,16,16,4)color(1,0,0,1)"]
in the wall INIT doesn't work (probably there's no hidden selection with index 0)
1 & 2. Could indeed be mission incompatibility, or see the above.
3. Good spot on functions defining within a loop (well, one of the secondary loops) - I repent this sin :) I may refactor them when I get back to my A3 PC, although the performance hit in their scheduled enviro is probably negligible (in a non-schduled enviro it would be less so).
I used underscore for private vars so they do not clash outside their threads.
Lazy evaluation- breaks and continues :)
4. No way to enable texture for the wall. You may substitute HIG_wall with something like Land_CncBarrier_F - the dimensions will be off, but it should probably do the job otherwise.
same problem with the Lato's "HUNTER SIX 2 The Malden Crisis" mission. It is the mission of the week but after playing it several hours I have noticed that this command
count (allMissionObject "All");
was returning more and more objects. I have dumped all objects to .RPT with this
{
diag_log (format ["OBJECT: %1 | TYPE: %2", _x, typeOf _x]);
} forEach (allMissionObjects "All");
and found out this record literally spammed the .RPT
21:32:57 "OBJECT: 6055cb80# 634238: hig_barriergi.p3d | TYPE: HIG_mywall"
So, basically the mod spawned several thousands HIG_mywall objects when I had fixed amount of AI on the map (284 of AI units). And the count of HIG_mywall is constantly increasing causing the performance leakage.
At this moment I decided to turn ACSTG off from using it on regular basis (as core mod for all missions) because of that, but this is not very nice because the mod is very cool and it makes the gameplay more consistent.
The diag log may not necessarily give the true picture as the log would and should be spammed by numerous HIG_mywall objects. They are spawned at a changing fast rate, but they are also DEspawned/deleted at a different changing fast rate. The logs may not reflect the deletion part. tldr, as I have said above, turn the logs off.
Alright, I have found the root of the problem. Incorrect local variables privatisation. In particular _createWall variable is being created in badly manner. I made every single local variable private according to its scope and the problem with the lost pointers to the objects (created by createVehicle []) gone. There is no more thousands of thousands abandoned HIG_wall objects after 5-20 hours of gameplay.
I strongly recommend you to read the article dedicated to PRIVATE command on arma 3 wiki especially the red framed part (with the warning symbol at the left side). Thanks for the reply anyway, I thinkg you can fix it by yourself in the next update. At least for me it's again "must have" core modification!
Also I suggest you to create HIG_wall with disabled simulation (or even using createSimpleObject) but it needs some testing to make sure the AI still can't see through the wall.
And the last thing :) S.O.G. Prairie Fire DLC has #CLN_Forest surface with dense grass and it is not in the list of surfaces for creating the wall (_srfce_chkr_fn function and _cur_surf variable). It is Cam Lao Nam world. I didn't check the other one but probably it has its own forest / grass type also. Gonna report back after the checking.