Page MenuHomePhabricator

1.86 Version of fn_getArea.sqf Breaks Mission
Acknowledged, NormalPublic

Description

Since 1.86 update, mission loads but AO marker does not generate thus interrupting the rest of the script.

This is the error thrown per .RPT file:

11:37:19 Error in expression <s, rectangular _this, -1]};
if (_this isEqualTypeArray [[], 0, 0, 0, false]) e>
11:37:19 Error position: <isEqualTypeArray [[], 0, 0, 0, false]) e>
11:37:19 Error isequaltypearray: Type String, expected Array
11:37:19 File A3\functions_f\Misc\fn_getArea.sqf [BIS_fnc_getArea], line 30

It should be noted that BIS_fnc_getArea is NOT called anywhere in the user mission. Line 30 is the updated line in 1.86.
On the server, I replaced JUST the new "fn_getArea.sqf" file in "functions_f.pbo" with the previous version and the mission runs perfectly. All other 1.86 files do not effect the mission.

Details

Severity
Major
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Category
Scripting
Steps To Reproduce

Play the mission in 1.84, it runs fine. Play it in 1.86 and code that assigns location of AO fails. Mission works in 1.86 when "fn_getArea.sqf" file is reverted to 1.84 version.

Event Timeline

Wulf added a subscriber: Wulf.Thu, Dec 6, 10:36 AM

Hello.

Thank you for the report. What mission are you talking about? Is this a custom mission you created or an official BI mission in the campaign?

It's a custom mission but one that is popular among players called "Invade and Annex". As stated, the mission loads and plays but hangs when creating the main AO thus interrupting everything downstream. A custom "fn_getAO.sqf" script chooses a random location using a "call BIS_fnc_getCfgData" function. Since the update, it throws the error mentioned above. By removing the two lines of code added to "fn_getArea.sqf" with the 1.86 update, everything runs perfectly as before. The call for "fn_getArea.sqf" does not appear anywhere in the entirety of all files that make up the mission which is the frustration.

I don't expect "official" help for a custom mission (which I have already got working by removing those two lines of code) but wanted to give warning that the change is throwing errors for an unknown reason. Some forum posts since the 1.86 update indicate that I am not the only one with the issue. Just bringing it to your attention.

Thanks!

Wulf changed the task status from New to Acknowledged.Fri, Dec 7, 10:18 AM

Ok, thank you for the reply and letting us know.

dedmen added a subscriber: dedmen.EditedWed, Dec 12, 11:46 AM

Had 3 cases in Arma discord where this was caused by people supplying wrong arguments to BIS_fnc_randomPos, they all had a "out" parameter in their blacklist.
Same with Invade&Annex
https://github.com/iamlegend23/invade-annex/search?q=bis_fnc_randomPos&unscoped_q=bis_fnc_randomPos

"out" is not a valid blacklist parameter, thus it falls back to using BIS_fnc_getArea to retrieve the area from a marker called "out". But such a marker doesn't exist.

No idea why everyone has the same error copy-pasted everywhere.

Edit: Seemed like the out parameter existed in 2015, but before may 2017 it was removed. So that code has been wrong for almost 2 years now.
So not really BI's fault that they now properly check for errors.

Replaced all [“water”, “out” ] statements with [“water”] and it now works with version 1.86/1.88. This file has been playing over two years so the existence of the parameter makes sense.

For others having the same problem, the solution by dedmen works and we have not noticed any detriment to the rest of the file.

Thank you for your assistance!