[APEX] Independent faction missing capabilities with APEX for sandbox gamemodes
Acknowledged, NormalPublic

Description

I'm developing and tweaking for a arma community with quite successfull wasteland servers with a big playerbase.

The popular wasteland gamemode (as well as some other gamemodes) use all the 3 arma sides (BLUFOR, OPFOR, INDEP). it is important for the gamemodes to work to be able to use this 3 factions.

When testing/developing our mission for apex i noticed that BLUFOR and OPFOR got new thermal shielding uniforms. they will be quite powerful and important in the green hell of tanoa..
The issue is that INDEP has no access to this kind of uniform- as the arma engine isn't allowing players to pick up uniform of different sides and i couldn't find a thermal shielding uniform for INDEP. It seems that even if you force the stealth uniforms on an INDEP player via script commands they stop shield heat signatures.

this is a serious issue for balancing and limits the possibly to use this new cool assets for all sides.

A second, connected issue is that INDEP got no ghillie suit with tanoa cammo.

This issue is only a problem for uniforms. all other items can be used by any side.

Possible solutions:
A.) Add thermal shielding uniform and ghillie for INDEP
B.) Add an additional hidden copy of BLUEFOR or OPFOR uniforms - usable by INDEP
C.) Allow via missionparameter to disable the side checks for uniforms

Details

Severity
Tweak
Resolution
Open
Reproducibility
Always
Operating System
Windows 7
Operating System Version
ANY
Category
Engine
Steps To Reproduce

Use Arma 3 RC Build. Look in virtual arsenal for all thermal shielding (stealth) uniforms. drop them to the floor. try to pick them up with an INDEP soldier. this is blocked by the engine.

Additional Information

Feedback for Arma3Update162RC

+1 I am also interested in a solution :)

This comment was removed by AgentRev.

+1

For what it's worth I would love to see option C

+1

I agree 110%!!!! How about it BIS? BIS going to answer this HUGE ISSUE?

@BI: It would be a pleasure if you could add a description parameter to allow wearing of enemy uniforms!

Alwin claimed this task.Feb 20 2017, 4:28 PM
Alwin changed the task status from "New" to "Reviewed".
Alwin added a comment.EditedFeb 20 2017, 4:40 PM

Hi, @wikingat

I understand what you written here. The whole problem is based on one thing. It may not seem at first glance but both INDEP factions (AAF, Syndicate) sometimes have no access to advanced equipment - especially Syndicate (weapons, gear and vehicles) because (as you know) they´re a quite obsolete or low budget armies. NATO and CSAT are very modern armies developed by rich states.
I understand that It could be problem when you want to create gameplay with all 3 factions with balanced opportunities. Basically they can´t be balanced because even in real there are not always answer to what your enemy have in his arsenal.

You´re right that impossibility to wearing uniform by killed enemy is very odd. We will discuss about it and see what we can do with it.

In any case, thank you for your report and sorry for delay.

AgentRev added a comment.EditedFeb 20 2017, 5:27 PM

@Alwin : Bohemia employee "Dan Musil" has previously stated that the impossibility to wear uniform of killed enemy is deliberate because apparently "it is against the Geneva Convention". That particular point makes no sense because you can commit an awful lot of other things in the game which are against the Geneva Convention, like bombing hospitals and execute POWs in inhumane ways. For custom missions, it would be nice to have an option in description.ext to allow anyone to wear every uniform in the game. I know certain uniforms can already be worn by all sides, like U_C_Poloshirt_blue.

If this option is not implemented, at the very least it would be nice if Bohemia could clone the config entries for BLUFOR full ghillies & stealth suit for the Independent side. The config entries are:

U_B_FullGhillie_ard, U_B_FullGhillie_lsh, U_B_FullGhillie_sard, U_B_T_FullGhillie_tna_F, U_B_CTRG_Soldier_F

What we are looking for:

U_I_FullGhillie_ard, U_I_FullGhillie_lsh, U_I_FullGhillie_sard, U_I_T_FullGhillie_tna_F, U_I_CTRG_Soldier_F

You don't have to include these in the Singleplayer campaign if you don't want to, but we need those entries for multiplayer.

Alwin changed the task status from "Reviewed" to "Acknowledged".Feb 21 2017, 8:53 AM

@Alwin

thanks for your answer. i think the easiest solution which would provide the most possibilities to mission creators would be the following:

  • disable the uniform check altogether via parameter (e.g. via description.ext parameter as @AgentRev suggested).

this would not only resolve the problem but give new possibilities for game mods like wasteland, altis life, ...
there would also be no change whatsoever to other gamemodes/missions/single player because there are no changes as long as the parameter is not set.

the implementation might be as easy as disabling the uniform check when the parameter is set - but i don't know how hard this is to be accomplished in the engine/arma3.

I think that a description.ext flag would likely be the best solution, as it would allow content creators the flexibility to balance the factions as needed without disrupting the core game, or other missions at all.

@Alwin : Look at this, somebody even made a mod that unlocks all uniforms for all sides: http://www.armaholic.com/page.php?id=25418

So you guys cannot tell me this ain't possible. It's so easy, all it does is set modelSides = {3,2,1,0}; on all CfgVehicles units.

PiepMGI added a subscriber: PiepMGI.EditedMar 26 2017, 12:09 AM

Typical problem where BI made some hard coded choices for the engine despite the wishes of the script writers. See how much it's difficult to switch on/off lights on a car regardless of the behavior of the crew...
IMHO, the too preemptive engine makes things easier for official scenarios (I hope!) and doesn't care with custom ones.
I pleaded for allowing the wear of civilian uniforms and the short answer was: use forceAddUniform... Yeah, while in game, it's so easy!!

Anyway, if you are not afraid to script with some commands spending resources just to make things normal - in real world if a guy wants to wear civilian clothes (or lights on his car), it's his own problem-, just consider scripts such as:

fnc_otherUnif = {
  private _idc = ctrlIDC (_this select 0);
  private _selectedIndex = param [1];
  private _text = lbText [_idc, _selectedIndex];
  private "_selectedContent";

  _uniformConfigs = ("getText (_x >> 'displayName') == _text" configClasses (configFile >> "CfgVehicles"));
  if (count _uniformConfigs >0) then {
    _uniforms = (("true" configClasses (_uniformConfigs select 0 >> "TransportItems")) apply {getText (_x >> "name")});

_index = _selectedIndex;

    if (count _uniforms > 0) then {
      if (["U_",_uniforms select 0] call BIS_fnc_inString) then {

       closeDialog 602;
       [_index] spawn {
        params ["_index"];
        _currentUnif = uniform player;
        _currentInvent = uniformItems player;

        _selectedUnif = if !(pl_container isKindOf "man") then [{everyContainer pl_container select _index},{[uniform pl_container, uniformContainer pl_container]}];
        _cntUnifSel = if !(pl_container isKindOf "man") then [{{_x == _selectedUnif select 0} count itemCargo pl_container},{1}];
        _selectedInvent = [];
        if !(pl_container isKindOf "man") then {{_selectedInvent pushback _x} foreach itemCargo (_selectedUnif select 1)};
        _openContent = if !(pl_container isKindOf "man") then [{itemcargo pl_container},{uniformItems pl_container}];

        _recipe = [];

        player forceAddUniform (_selectedUnif select 0);
        {if (player canAddItemToUniform _x) then {player addItemToUniform _x} else { _recipe pushBack _x}} forEach _currentInvent + _selectedInvent;

          _g0 = createVehicle ["weaponHolderSimulated", (player modelToWorld [0,1,1] ), [], 0, "CAN_COLLIDE"];
          _g0  addItemCargoGlobal [_currentUnif,1];
         {_g0 addItemCargoGlobal [_x,1]} forEach _recipe;
         _g0 addItemCargoGlobal [_selectedUnif select 0,_cntUnifSel - 1];

        if !(pl_container isKindOf "man") then {
          deleteVehicle pl_container
        } else {
          removeUniform pl_container};
      };
    }};
}};

player addEventHandler["InventoryOpened", {
    params ["_unit", "_container"];
    pl_container = _container;
    if (local _unit && playerSide != civilian && {!(pl_container isKindOf "ReammoBox_F")}) then {
      [] spawn {
        waitUntil {!(isNull (findDisplay 602))};
        ((findDisplay 602) displayCtrl 632) ctrlSetEventHandler ["LBDblClick", "_this call fnc_otherUnif"];
      };
    };
}];

You must DOUBLE CLICK on wanted unif in inventory.

Yeah that's not really reliable thought, have 2 guys do it at the same time and it gets cloned.

place it in initPlayerLocal.sqf (or make it local for each playable units)

Yes, I know how to run it, but it doesn't meet my quality standards. I don't want item cloning, preventing it would require a server-based token system.

i also think hat the solution @PiepMGI is suggesting will lead to problems in multiplayer as @AgentRev mentioned.
even with a server based token system (which doesn't exist as a scripting implementation for arma so far afaik) server performance may break the functionality of the scripts.

so instead of such complicated and error prone workarounds a simple engine change to allow mission makers and server owners to set the behaviour is a much much better solution.

@Alwin do you already have any feedback from your colleges if this change can/will be done? is yes - is there already any target release for it?

Corrected slightly my script to avoid some duplications. For those who would like a workaround (MP compatible), waiting for BI changing their mind...

  • you can pick up any uniform on corpse;
  • you can pick up uniform on ground;
  • for uniform in crate, you need to drop the uniform on ground, close/reopen inventory for grabbing it on ground. Just because, too many cases of uniforms containing some items, then inside a crate.

If uniform, on ground or on corpse, contains some items, the player will wear the new uniform, fitted with his own items and any possible grabbed uniform items if remaining room.

Lex removed a subscriber: Lex.Jun 23 2017, 2:16 AM

Add Comment