Giter VIP home page Giter VIP logo

Comments (10)

diwako avatar diwako commented on May 31, 2024 2

Since this is the first report with name list being out of order, I assume it has something to do with BIS dynamic groups. I personally do not use it, nor do the groups I play in. So it never really came up.

So, I'd need some help reproducing the bug and debugging it. Maybe the bug comes up even without the Dynamic Group feature, not sure. It take multiple people to debug this sadly.

from diwako_dui.

Fusselwurm avatar Fusselwurm commented on May 31, 2024 1

https://github.com/gruppe-adler/gruppe_adler_mod ; groups-related code is in https://github.com/gruppe-adler/gruppe_adler_mod/tree/master/addons/dynGroups

from diwako_dui.

McDiod avatar McDiod commented on May 31, 2024 1

That gruppe adler mod component just modifies BI's dynamic group system slightly, shouldn't be relevant here.

The mission template that was used can be found here:

https://github.com/gruppe-adler/CO_Template.VR

See my last reply for the relevant code (\functions\groupsettings).

from diwako_dui.

AdlerXiviD avatar AdlerXiviD commented on May 31, 2024

Can confirm.

from diwako_dui.

diwako avatar diwako commented on May 31, 2024

Hm, first I heard of this.

@McDiod @AdlerXiviD Any specific way to replicate this?

from diwako_dui.

McDiod avatar McDiod commented on May 31, 2024

We haven't tried yet. The way this happened yesterday was:

  1. group of four players, mission starts
  2. one player disconnects
  3. FTL assigns buddy teams
  4. disconnected player reconnects on the same slot
  5. reconnected player sees namelist in a different order

We are using BI's dynamic group system. The groups callsign is set during postInit by a third script. Either that has something to do with it, or the units group array is unreliable during postInit? Maybe some units are still null during initialization, so your cache loop skips them first, then adds them later resulting in a different order.

Edit: Server sets the groups callsign when registering the group in the dynamic group system:

_callsign = [_x] call grad_groupsettings_fnc_getCallsign;
_leader = leader _x;
_data = [nil, _callsign, false];
["RegisterGroup", [_x, _leader, _data]] call BIS_fnc_dynamicGroups;

from diwako_dui.

diwako avatar diwako commented on May 31, 2024

The cache loop grabs the units using units group _player each half a second meaning it is using the what ever the game gives back. Units being objNull is pretty much a none issue.

What would be interesting would be in which order these are returned and what internal names these units get assigned on each machine.

E.g.
Bravo 1-3:1 or the like or by assigning an empty string as vehicleName

Meaning it might be possible to sort by the internal name to sync things for everyone.

Here a small script for the debug console to get the current squad members internal names, (be aware this will remove any sort of display variable name given to them)

private _grp = units group ace_player;
{
  _x setVehicleVarName "";
} forEach _grp;

_grp

from diwako_dui.

diwako avatar diwako commented on May 31, 2024

I am not too familiar with gruppe Adlers mods (besides trenches), would help if you could link me their GitHub repo for this (if it is openly available)
@McDiod

from diwako_dui.

diwako avatar diwako commented on May 31, 2024

Testing was done, findings were as follows

Replication

  1. have two groups
  2. someone disconnects from group A
  3. Someone from group B joins the group
  4. someone reconnects into group A

Resulting asynchronicity.

diwako's machine:
[B Alpha 1-2:1 (Diwako),B Alpha 1-2:2 (nomisum) REMOTE,B Alpha 1-2:3 (Salbei250) REMOTE,B Alpha 1-2:4 (McDiod) REMOTE]
McDiod's machine:
[B Alpha 1-2:1 (nomisum) REMOTE,B Alpha 1-2:2 (Diwako) REMOTE,B Alpha 1-2:3 (Salbei250) REMOTE,B Alpha 1-2:4 (McDiod)]

That basically means, it is NOT possible to sort them according to their internal squad names, as these are already out of sync.

This seems to be a BI bug. It could be ""fixed"" by recreating the group and giving its all the same values or by using one unit in the squad to share their order.
However that would mean DUI would not be a client side only addon anymore.

from diwako_dui.

diwako avatar diwako commented on May 31, 2024

PR was merged, preview is already on the dev workshop item. Closing this now, if you find anything lacking feel free to notify me

from diwako_dui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.