Einzelnen Beitrag anzeigen
Alt 05.08.2013, 01:45   #3 (permalink)
BlitzPacman
Newbie
 
Registriert seit: 14.02.2013
Beiträge: 28
Standard

Dann werde ich mich mal um Problem 2 kümmern.

Code:
aus = 0;

player globalChat "LICHTER FLACKERN!";

while {aus == 0} do //bis der Spieler das Licht ausschaltet, wird das Licht flackern
{
    player action ["lightOn", Auto];
    sleep random 0.5;
    player action ["lightOff", Auto];
    sleep random 0.5;
};
Ich glaube dein Skript war etwas komplizierter, als es nötig war.
Ich weiß ehrlich gesagt nicht, was es mit den Verzögerungswarteschleifen auf sich hatte, aber die sleep Befehle sind eine erheblich simplere Methode. Außerdem habe ich keine feste Wartezeit eingestellt, sondern eine zufällige, wodurch es mehr nach einem Flackern, als nach einem Alarmanlagenblinken aussieht.

Falls unerwünscht, dann einfach das random entfernen und den gewünschten Wert hin schreiben (anstelle 0.5).

Damit sich diese Schleife auflöst, muss die Variable "aus" auf eine andere Zahl als 0 gestellt werden.
Dafür fügst du in den Auslöser, der das Licht auslöst, (oder in einen anderen) das ein:

player addAction ["Flackern beenden!", "aus.sqf"];

In der aus.sqf steht dann Folgendes drin:
Code:
aus = 1;
player removeAction 0;
Somit ist die Schleife beendet und die Action dem Spieler wieder entzogen.
BlitzPacman ist offline   Mit Zitat antworten