@Lord: Das meinte ich nicht. Was der Code macht ist mir schon klar. Ich finde nur den Sinn dahinter fragwürdig. Und wenn dann prüft der Code eher ob der player auf der Map steht, also die init geladen hat - nicht ob sein Intro durchgelaufen ist. Das setzen der Variable im missionNameSpace macht in deinem Code auch wenig Sinn. Die Variable ist eben immer gesetzt. Was nutzt es da noch diese auf Vorhandensein zu prüfen.
Code:
C1READY = false;
waitUntil {
private "_counter";
sleep 1;
_counter = 0;
{
if (!isNil "_x" && {!isNull _x} && {isPlayer _x}) then {
_counter = _counter + 1;
};
} forEach playableUnits;
((_counter == (playersNumber west + playersNumber east + playersNumber civilian)) || {time > 80})
};
Frage an Xeno:
1. Warum wird der Code hier eigentlich nicht in einem While-Loop ausgeführt? Ich hab mal gehört, dass ein waitUntil-Loop "extrem" Performant sein soll. (hat mir ein VBS Mitarbeiter erzählt)
2. Hat es einen Vorteil eine Variable direkt im missionNameSpase zu setzen statt diese direkt an das player Obj zu heften? (was ja letztendlich auch wieder missionNameSpace ist) Also z.B.
Code:
{_x setVariable ["affenscheisse",true]} forEach playableUnits;
vs.
Code:
{missionNamespace setVariable [format ["W%1_affenscheisse",_forEachIndex], true]} forEach playableUnits;
Grüße