Einzelnen Beitrag anzeigen
Alt 08.08.2013, 17:43   #25 (permalink)
Pfandgiraffe
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 38
Beiträge: 1.737
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

@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
__________________
Niemand hat die Absicht eine Tüte zu bauen!
​​​​​​​
___<<<A3 Wounding System>>>___

Geändert von Pfandgiraffe (08.08.2013 um 17:52 Uhr).
Pfandgiraffe ist offline