Page MenuHomeFeedback Tracker

Zeus broken on JIP
New, NormalPublic

Description

I noticed reports about issues with the game master module. Today i experienced the problem myself and did some tests to investigate the problem and create the best workaround.
The problem occurs when game master modules are placed in the editor with a valid owner property. If one of the units is occupied by a player who joins while the mission is already running the assignment of the curator module does not work correctly.
In my tests I always used C_Soldier_VR_F (VR Entity) as units but according to other reports the issues seems independent of the unit type used.
I also used multiple game master modules so i can not confirm if the issue occurs on a mission with a single game master module.

The issue seems to be in the game at least since 12/2016 but i could not find any bug reports on the feedback tracker related to zeus and JIP using the search.

If you need more information let me know.

Details

Severity
None
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Category
Zeus - General
Steps To Reproduce
  1. Start the attached mission in MP (host locally)
  2. Select one of the slots and start the game
  3. Verify the zeus is working properly
  4. Start a second client and join the server
  5. Select the remaining slot while the mission is already running
  6. Try to open the curator interface
Additional Information

Debug information:
allCurators lists both curator logics: [L Zeus:1,L Zeus:2].
getAssignedCuratorUnit (allCurators select 0) shows that zeus1 is assigned.
getAssignedCuratorUnit (allCurators select 1) shows that zeus2 is assigned.
getAssignedCuratorLogic zeus1 confirms that L Zeus:1 is assigned to zeus1.
getAssignedCuratorLogic zeus2 shows <NULL-object> which is obviously an error.

Workaround:
Execute the following piece of code on client initialization:

if ((str player select [0, 4]) == "zeus") then {
    if (isNull getAssignedCuratorLogic player) then {
        {
            if (getAssignedCuratorUnit _x isEqualTo player) exitWith {
                _x remoteExecCall ["unassignCurator", 2];
                [player, _x] remoteExecCall ["assignCurator", 2];
            };
            nil
        } count allCurators;
    };
};

The call to unassignCurator is essential and needs to be executed before the assignCurator command.

Related links:
https://forums.bistudio.com/forums/topic/201110-zeus-jip-problem

Event Timeline

NetFusion edited Steps To Reproduce. (Show Details)
NetFusion edited Additional Information. (Show Details)Mar 20 2017, 12:46 AM
sh4dow added a subscriber: sh4dow.Oct 26 2018, 5:19 PM

How in the hell has this not been fixed yet?

Odd thing is I only just recently started experiencing this bug on my server, possibly when I switched the server over to new hardware. The previous server box had a seriously under-powered CPU, which seemed to mess with the timing with which scripts ran and modules initialized. Perhaps the cause of this bug is an issue with something executing too early or too late?