Page MenuHomeFeedback Tracker

Arsenal incorrectly lists items as not belonging to a DLC when they do
New, NormalPublic

Description

The kart uniforms, marksmen uniforms and kart helmets in the arsenal are marked as not belonging to a DLC when in fact they are, screenshot.
When playing in-game they are listed as belonging to a DLC and show adverts for the DLC, screenshot.

The arsenal uses configsourceaddonlist in the function it uses to get the DLC.
The return of that command when using kart or marksmen uniforms is,

configsourceaddonlist (configfile >> "CfgWeapons" >> "U_O_FullGhillie_ard")
>>> ["A3_Characters_F","A3_Characters_F_Mark"]

The arsenal then uses the first item in the array to get the DLC that the object belongs too. In this case it is getting the base game rather then the marksman DLC.

This is the return when used on an item that is properly listed as under a DLC,

configsourceaddonlist (configfile >> "CfgWeapons" >> "U_O_T_Sniper_F")
>>> ["A3_Characters_F_Exp"]

The item version of the uniforms does return the correct output,

configsourceaddonlist (configfile >> "CfgVehicles" >> "Item_U_O_FullGhillie_ard")
>>> ["A3_Characters_F_Mark"]

Details

Severity
Major
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Operating System Version
N/A
Category
Virtual Arsenal
Steps To Reproduce

Open the arsenal and see that the uniforms and helmets are listed as not belonging to a DLC.
Load into a mission with them equipped and see that they start showing adverts for their DLC.

Additional Information

["Arma 3","Arma3",195,145729,"Development",false,"Windows","x64"]

Event Timeline

Asaayu created this task.Jun 5 2019, 6:42 PM

Maybe those items are free for everyone? IDK since I have the DLCs, so I can't test it myself

@LuizBarros99
The second screenshot shows that they are still premium items and still show adverts on the screen.

Turns out I accidently left this comment as a draft and forgot to publish it almost a year ago. whoops.
This is my current work around that solves the issue. Although it won't be the exact fix for this issue and there is probably a more optimized version, it does show how I've gotten around the issue.

params [["_config",configNull]];

private _dlc = "";
private _addons = configsourceaddonlist _config;
if (count _addons > 0) then
{
	private _mods = configsourcemodlist (configfile >> "cfgpatches" >> (_addons#0));
	if (count _mods > 0) then
        {
		_dlc = (_mods#0);
	};
};
private _configdlc = getText (_config >> "dlc");
if (!(_configdlc isEqualTo "") && {(tolower _dlc) in ["","a3","officialmod"]}) then { _dlc = _configdlc };
_dlc

Basically if the dlc returned is either " ","a3" or "officialmod" (aka. the base game files), then it will check to see if the config has a dlc listing within it. It then replaces the base game dlc string with the correct name from the config.
I've tested it in-game and this fixes the above issues without interfering with the original output.