PHP-Code:
fnc_newZeus = {
{
if (isNull (getAssignedCuratorUnit _x)) then {
deleteVehicle _x;
};
} forEach allCurators;
_cur = "curator" createVehicle [0,0,0];
_cur addCuratorAddons activatedAddons;
_this assignCurator _cur;
_cur addCuratorEditableObjects [allMissionObjects,false];
_cur addEventHandler ["CuratorObjectRegistered", {
_cur = _this select 0;
_zeus = getAssignedCuratorUnit _cur;
if (! [getPlayerUID _zeus, 3] call isAdmin ) then {
unassignCurator _cur;
deleteVehicle _cur;
};
}];
};
Diese Funktion müsste eigendlich alles nötige abdecken. Du musst nur noch bei "abfrageObAdmin" die Adminabfrage einbauen die du erwähnt hast (die kenn ich nicht auswendig). Dann wird bei jedem Aufruf des ZeusInterfaces nochmal nachgeprüft ob derjenige Admin ist.
Was hier ebenfalls nicht abgedeckt ist, ist das nachträgliche Hinzufügen von editierbaren Objekten. Im Falle von Wasteland müsste z.B. das irgendwo in einem Eventhandler rein, wenn ein Spieler connected.
Die Funktion beseitigt alle ungenutzen/alten Zeusslots wieder. Denk daran, falls du einen Zeusslot regulär einbauen willst, für den muss dann eine Ausnahme eingefügt werden.
Aufrufen kannst du die Funktion von einem Client aus wie folgt:
PHP-Code:
[player,"fnc_newZeus",false,false] call BIS_fnc_MP;