Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 06.03.2010, 18:27   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 19.06.2009
Beiträge: 181
Icon5 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";
Wiggum ist offline   Mit Zitat antworten
Alt 07.03.2010, 00:31   #2 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 04.04.2008
Beiträge: 167
Standard

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.
__________________
God is busy, may i help you?


Myke ist offline   Mit Zitat antworten
Alt 07.03.2010, 01:04   #3 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 47
Beiträge: 1.930
Standard

Genauere Erklärung ist hier zu finden

__________________
Buliwyf ist offline   Mit Zitat antworten
Alt 07.03.2010, 09:54   #4 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 19.06.2009
Beiträge: 181
Icon2

....!

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.
Wiggum ist offline   Mit Zitat antworten
Alt 07.03.2010, 11:34   #5 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 47
Beiträge: 1.930
Standard

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

__________________
Buliwyf ist offline   Mit Zitat antworten
Alt 07.03.2010, 17:09   #6 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 04.04.2008
Beiträge: 167
Standard

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.
__________________
God is busy, may i help you?


Myke ist offline   Mit Zitat antworten
Alt 07.03.2010, 17:48   #7 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 19.06.2009
Beiträge: 181
Icon5

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
Wiggum ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie genau funktioniert "createUnit" ? Hath Kull Editing & Scripting 20 06.07.2009 19:39
Über dieses Forum ... Lima Diskussionsplattform 0 21.01.2004 14:59


Kontakt - HX3.de - Archiv - Nach oben

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