HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   sleep "sleept" nicht? (https://hx3.de/editing-139/sleep-sleept-14693/)

turrican 05.05.2008 16:55

sleep "sleept" nicht?
 
Gleich meine ersten Gehversuche beim Scripten geht in die Hose.

Habe ein kleines SQF Script geschrieben und es aus dem Editor via Trigger wie folgt gestartet:

[this] exec "script.sqf"

Im Script gibt es folgende Zeile:

sleep 3;

Hätte jetzt angenommen, dass das Script hier für 3 Sekunden anhält und dann weiter fortfährt. Doch leider kommt folgende Fehlermeldung
|#|sleep 3;
Error Allgemeiner Fehler im Ausdruck:komisch:

??? Was mache ich falsch, bzw. den Befehl gibt es doch, oder ???

burns 05.05.2008 16:59

Wenn mich nicht alles täuscht ist sleep = ~
Also Tilde anstelle des ausgeschriebenen Befehls

~3

turrican 05.05.2008 17:05

Habe sleep 3; durch ~3; ersetzt, jetzt kommt:

__waituntil == _time+(|#|~3;)

? Tja

burns 05.05.2008 17:15

Versuchs mal ohne Semikolon am Ende.
Wenn das nicht hinhaut sind meine spärlichen Scriptkenntnisse auch schon ausgeschöpft :zahn:

Buliwyf 05.05.2008 17:17

Zitat:

Zitat von turrican (Beitrag 174486)
Im Script gibt es folgende Zeile:

sleep 3;

Zitat:

Zitat von turrican (Beitrag 174492)
Habe sleep 3; durch ~3; ersetzt, jetzt kommt:

__waituntil == _time+(|#|~3;)

Du belügst uns ohne rot zu werden?! :naughty:

So wie Du das vorhast, wirst Du mit sleep auch nicht weit kommen. Wenn dann musst Du eine Variable, welche die aktuelle Zeit erfasst, setzen und dann packste da 3 Sek drauf... in etwa so:

Code:

_now = time;
waitUntil {time == _now + 3};

;)

*Update*
wobei mir grad einfällt, dass das völliger Quatsch ist und ein einfaches sleep 3; ja genügt. Also:

Code:

hint format["Es ist jetzt: %1", time];
sleep 3;
hint format["Es ist jetzt 3 Sek später: %1", time];


turrican 05.05.2008 17:29

Zitat:

Zitat von Buliwyf (Beitrag 174503)
Du belügst uns ohne rot zu werden?! :naughty:

So wie Du das vorhast, wirst Du mit sleep auch nicht weit kommen. Wenn dann musst Du eine Variable, welche die aktuelle Zeit erfasst, setzen und dann packste da 3 Sek drauf... in etwa so:

Code:

_now = time;
waitUntil {time == _now + 3};

;)

*Update*
wobei mir grad einfällt, dass das völliger Quatsch ist und ein einfaches sleep 3; ja genügt. Also:

Code:

hint format["Es ist jetzt: %1", time];
sleep 3;
hint format["Es ist jetzt 3 Sek später: %1", time];



Ehm, genau das hatte ich getan. Anbei mein Test-Script:

_me = _this select 0;
hint "Das ist ein Hinweis!";
sleep 3;
hint "Noch ein Hinweis nach 3 Sekunden";
exit;

Gespeichert im Missionsordner unter Test.sqf und per Trigger aufgerufen mit [this] exec "Test.sqf"

Verstehe ich ja selber nicht, hab's ja schon in zig Scripten (nicht nur SQS sonder auch SQF) gesehen.

Eben darum hatte ich es ja jetzt noch einmal getestet, bevor ich hier poste...

Master85 05.05.2008 17:54

Du musst dich entscheiden, ob du SQS oder SQF programmieren willst.
Bei SQS Schlafen mit ~, wobei das Script mit blabla exec "abcd.sqs" gestartet werden muss,
bei SQF Schlafen mit sleep, wobei das Script (unter anderem) mit blabla execVM "abcd.sqf" gestartet werden muss.

Buliwyf 05.05.2008 19:55

Zitat:

Zitat von turrican (Beitrag 174513)
Gespeichert im Missionsordner unter Test.sqf und per Trigger aufgerufen mit [this] exec "Test.sqf"

Wenn Du die Funktion per Trigger aufrufst, dann bitte so:

Code:

nil=[this] execVM "Test.sqf"
...wobei Du für nil auch sonstwas eintragen kannst, weil egal... :zahn:

turrican 06.05.2008 08:11

Bedankt, jetzt hab ich's verstanden! - klappt...

Gruß

turrican


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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