Zeus-Platz bei Reconnect kommt mit Schwarzen Bildschirm daher

  • Hallo zusammen,


    seit Eden-Editor eingeführt wurde (gefühlt) habe ich ein seltsames Phänomen beim Reconnecten und einem Zeus-Platz.
    Wenn eine Mission mit mehrere Zeusplätzen auf dem Server läuft und alle Zeus sind eingeslottet, dann läuft alles wunderbar mit den Zeus (wie ist die Mehrzahl? Zeusen?).
    Wenn jedoch ein Zeusspieler ein Disconnect hat und wieder auf einen Zeusplatz slottet, dann bekommt derjenige keinen Zeus mehr sondern einen Blackscreen und er hat keine möglichkeit Zeusfunktionen zu nutzen.


    Ich habe auch schon via Google nach diesem Problem gesucht, jedoch noch keine Lösung finden können. Was mich aber etwas erstaunt, ist, dass es fast keinen gibt, dem das Problem überhaupt bekannt ist oder drüber schreibt.


    Wie dem auch sei. Falls jemand das gleiche Problem hat habe ich eventuell diese Lösung parat. Ob das der richtige Ansatz ist weis ich nicht, aber es funktioniert bei uns:


    in die initPlayerServer.sqf (Missionshauptverzeichnis) folgenden Code schreiben:

    Code: initPlayerServer.sqf
    1. {
    2. if (!isnull (getassignedcuratorunit _x)) then {
    3. _unit = getassignedcuratorunit _x;
    4. if (isnull (getassignedcuratorlogic _unit)) then {
    5. unassignCurator _x;
    6. sleep 1;
    7. _unit assignCurator _x;
    8. };
    9. };
    10. } foreach allcurators;
  • Uns ist das auch aufgefallen. Wenn der Zeus reconnectet, hat er keinen Zugriff mehr auf das Zeusinterface. Aber das mit dem schwarzen Bildschirm ist mir neu.


    Ein dies betreffendes Ticket im BI Bugtracker habe ich nicht gefunden, werde jetzt aber eins aufmachen.

  • Ich habe diese Funktion gebaut, die man recht einfach folgendermaßen aufrufen kann in der initPlayerLocal.sqf: https://github.com/Pergor/ADV_…/server/fn_createZeus.sqf


    Code: initPlayerLocal.sqf
    1. _zeusEinheiten = ["ZEUS_1","ZEUS_2","ZEUS_3"];
    2. if (toUpper (str player) in _zeusEinheiten && isNull (getAssignedCuratorLogic player)) then {
    3. [str player,2] remoteExecCall ["adv_fnc_createZeus",2];
    4. };

    Die erzeugt ein neues Zeus-Modul, sofern kein altes vorhanden ist, das mit dem Spieler verbunden ist. Der Spieler wird, sofern sein Einheitenname in dem Array drin ist, beim Reloggen dann mit diesem neuen Zeusmodul verbunden, das auch wieder gelöscht wird, sollte kein Spieler mehr damit verbunden sein.