HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Was genau macht dieses Script ? (von Cyborg11) (https://hx3.de/editing-scripting-167/genau-macht-script-cyborg11-18736/)

Wiggum 06.03.2010 17:27

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";


Myke 06.03.2010 23:31

Hmmm...so rein vom scriptnamen her würde ich raten dass es ein countdown script ist. Wenn ich mir das script anschaue denke ich auch dass es ein countdown script ist.

Wobei ich bin da nicht so der Profi darin. :D

Buliwyf 07.03.2010 00:04

Genauere Erklärung ist hier zu finden

:rolleyes:

Wiggum 07.03.2010 08:54

....!

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";

Was passiert hier genau, wäre nett wenn mir das jemand sagen könnte.

Buliwyf 07.03.2010 10:34

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...

:confused:

Myke 07.03.2010 16:09

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";};
den part zwischen den {} entsprechend ersetzen.
- Endverhalten wenn Countdown nicht abgebrochen wird =
Code:

endMission "LOSER";
Diese zeile entsprechend ersetzen.

So, ich hoffe das beantwortet deine Fragen.

Wiggum 07.03.2010 16:48

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";

Gruß Wiggum


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119