PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrfach if in while do... Typ Bool, erwartet if


[CCG]Cyborg
22.01.2014, 01:33
Da ich es einfach nicht auf die Kette bekomme das Tasks im MP nach einem Revive oder Respawn vernünftig gesynct werden dachte ich, ich mach es so.... hab schon diverse varianten durch, dies ist die am besten nicht funzt... :(

schal0 - 9 sind Helferobjekte die durch auslöser gelöscht werden.

Wo hab ich das Haar in der Suppe?:stupid: Ich hab auch mittlerweile Brainlag...
kann mir bitte mal jemand auf die Sprünge helfen? :rolleyes:

Der fehler lautet Typ Bool, erwartet if??

// Aufruf momentan noch durch auslöser nul = [schal0,schal1,schal2,schal3,schal4,schal5,schal6,s chal7,schal8,schal9,schalende] execVM "taskchecker.sqf"

_schal0 = _this select 0;
_schal1 = _this select 1;
_schal2 = _this select 2;
_schal3 = _this select 3;
_schal4 = _this select 4;
_schal5 = _this select 5;
_schal6 = _this select 6;
_schal7 = _this select 7;
_schal8 = _this select 8;
_schal9 = _this select 9;
_schalende =_this select 10;

//hint format ["Was ist: %1",_schal8];

while {alive _schalende} do {
if !(alive _schal0) then {task1 setTaskState "Succeeded"};
if !(alive _schal0) && !(alive _schal1) then {task2 setTaskState "Succeeded"};
if !(alive _schal0) && !(alive _schal1) && !(alive _schal2) then {task3 setTaskState "Succeeded"};
if !(alive _schal0) && !(alive _schal1) && !(alive _schal2) && !(alive _schal3)then {task4 setTaskState "Succeeded"};
if !(alive _schal8) then {task2 setTaskState "Canceled"};
sleep 1;
hint "durch";
};

hint "ende";

muchas mille vielen lieben Dank... :kiss:

JoeJoe87577
22.01.2014, 08:07
Gehört das "!" nicht in die runden Klammern?

JanIs
22.01.2014, 08:37
Was oder wofür steht eigentlich die Variable "schalende"?
Zudem bevorzuge ich bei so vielen !alive hintereinander um Längen die _x Abfrage, da diese IMHO weitaus übersichtlicher ist ...

if ({!alive _x} count [_schal0,_schal1,_schal2,_schal3,_schal4] == 5) then {task4 setTaskState "Succeeded"};

Soll und kann aber jeder halten wie er möchte ...

[CCG]Cyborg
22.01.2014, 11:33
Japp...

while {alive schalende} do {
if ({!alive _x} count [schal0] == 1) then {task1 setTaskState "Succeeded"};
if ({!alive _x} count [schal0,schal1] == 2) then {task2 setTaskState "Succeeded"};
if ({!alive _x} count [schal0,schal1,schal2] == 3) then {task3 setTaskState "Succeeded"};
if ({!alive _x} count [schal0,schal1,schal2,schal3] == 4) then {task4 setTaskState "Succeeded"};
if ({!alive _x} count [schal8] == 1) then {task2 setTaskState "Succeeded"};
sleep 1;
hint "durch";
};

hint "ende";

so läuft es... das übergeben der schal an_schal kann eingespart werden. schalende ist das Missionsende, aber auch nur ein helfer der gelöscht wird.

DANKE... :daumen: