06.03.2010, 17:27 | #1 (permalink) |
Registriert seit: 19.06.2009
Beiträge: 181
|
Was genau macht dieses Script ? (von Cyborg11)
Hallo,
kann mir jemand erklären was genau dieses Script macht ? Es war in einer Beispielmission enthalten: countdown.sqf Code:
/* ========================================================= Countdown by Cyborg11 Version: 1.0 Execute: nul = [time] execVM "countdown.sqf"; Example: nul = [10] execVM "countdown.sqf"; Zeile 25 ausklammer = stiller Countdown Nach dem Countdown kann man weiter Befehle eingeben (Ist quasi ein sichtbarer "sleep"- Befehl In Zeile 23 if (Bedingung oder Variable) exitWith {}; beendet den Countdown if (Bedingung oder Variable) exitWith {}; beendet alles was nach dem Befehl kommt Man kann auch einen Befehl in die {} schreiben z.B. ein anders skript ausführen ========================================================= */ _n = _this select 0; _i = 0; While {_i <= _n} do { if (abbruch) exitWith {Player sidechat "Countdown wird abgebrochen"}; _i = _i + 1; //hintSilent format ["Time left: %1",_n - _i]; sleep 1; }; if (abbruch) exitWith {Text = execVM "Text.sqf";}; endMission "LOSER"; |
07.03.2010, 08:54 | #4 (permalink) |
Registriert seit: 19.06.2009
Beiträge: 181
|
....!
Es geht mir darum: Das Script ist mit anderen zusammen (wo ebenfalls Zeitangaben enthalten sind) zu einem Alarmscript verbaut. Nur bei diesem Script hab ich keine Ahnung was es tut. Code:
_n = _this select 0; _i = 0; While {_i <= _n} do { if (abbruch) exitWith {Player sidechat "Countdown wird abgebrochen"}; _i = _i + 1; //hintSilent format ["Time left: %1",_n - _i]; sleep 1; }; if (abbruch) exitWith {Text = execVM "Text.sqf";}; endMission "LOSER"; |
07.03.2010, 10:34 | #5 (permalink) |
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
|
Was zur Hölle ist an einem Countdown nicht zu verstehen?! Das Script wird mit einem Parameter, meintwegen 10 aufgerufen ( [10] execVM "countdown.sqf" ). Dann zählt das Script jede Sekunde 1 runter und wenn 0 erreicht ist, dann ist Ende... oder wenn der Spieler den CD abbricht, dann kommt halt die Textausgabe, dass der CD abgebrochen wurde...
|
07.03.2010, 16:09 | #6 (permalink) |
Registriert seit: 04.04.2008
Beiträge: 167
|
Also, Countdown dürfte nun klar sein.
Wenn das Script mit entsprechendem Parameter gestartet wird, läuft ein countdown durch. Dieser Countdown lässt sich jederzeit unterbrechen indem die globale Variable "abbruch" auf TRUE gesetzt wird. In diesem Falle wird das script "text.sqf" aufgerufen und das Spiel (Mission) geht weiter. Wird der Countdown nicht unterbrochen beendet die Mission mit der Endbedingung "Verloren". Anpassen lässt sich das script an 3 Stellen, sinnvollerweise: - Countdownzeit = wird bei scriptaufruf übergeben - Abbruchresultat = Code:
if (abbruch) exitWith {Text = execVM "Text.sqf";}; - Endverhalten wenn Countdown nicht abgebrochen wird = Code:
endMission "LOSER"; So, ich hoffe das beantwortet deine Fragen. |
07.03.2010, 16:48 | #7 (permalink) |
Registriert seit: 19.06.2009
Beiträge: 181
|
Danke Myke, nun habe ich es verstanden !
Eine Frage noch: Wie würdet ihr das Script erweitern damit solange noch eine spielbare Einheit (p1 oder p2) in der Nähe (50m zb.) der "Zielperson" ist, die Mission nicht beendet wird ? Code:
_n = _this select 0; _i = 0; While {_i <= _n} do { if (abbruch) exitWith {PAPABEAR sidechat "Er wäre uns fast entwischt !"}; _i = _i + 1; //hintSilent format ["Time left: %1",_n - _i]; sleep 1; }; if (abbruch) exitWith {Text = execVM "Text.sqf";}; endMission "end2"; |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Wie genau funktioniert "createUnit" ? | Hath Kull | Editing & Scripting | 20 | 06.07.2009 18:39 |
Über dieses Forum ... | Lima | Diskussionsplattform | 0 | 21.01.2004 13:59 |