HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   sleep befehl (https://hx3.de/editing-scripting-167/sleep-befehl-19687/)

miromanu 09.09.2010 20:07

sleep befehl
 
Hallo mal wieder,
habe da ein kleines problem und zwar versuche ich über einen Auslöser 2 sounds abzuspielen. Das problem ist das diese Sounds gleichzeitig sich abspielen obwohl ich den befehl sleep dazwischen setze. das sieht in der aktivierungszeile des auslösers so aus:
Code:

playsound "Fire"
sleep 15;
playsound "End"

hat jemand eine ahnung?

Roehrenradio 09.09.2010 20:18

Sleep, WaitUntils, etc. funktionieren in Aktivierungszeilen/Initfelder nicht, da sieh nunmal wie eine Funktion ausgeführt werden, welche nicht dafür da sind zu schlafen.

Du kannst entweder ein Skript aufrufen lassen, mit genau deinem Inhalt, oder du benutzt ein spawn:
Zitat:

nullRes = spawn { playSound "Fire"; sleep (15); playSound "End" }

miromanu 10.09.2010 01:21

komisch wenn ich es mit der skriptvariante versuche funktioniert es auch nicht. beide sound files werden im gleichen moment abgespielt. Und was ist ein spawn? ich kenn das garnicht.

JoeJoe87577 10.09.2010 02:20

Dann pack doch die beiden Befehle in unterschiedliche Scripts und setzt einen Auslöser hin, der den einen Sound aktiviert.
Diesen Auslöser nennst du Auslöser Blubb, beim zweiten Auslöser setzt du einen Timeout von 15 Sekunden und die Bedingung Blubb = true und über den zweiten Auslöser lässt du deinen zweiten Sound abspielen.

LG

miromanu 10.09.2010 02:36

@JoeJoe87577 danke habs so gemacht und es funzt.

LurchiDerLurch 10.09.2010 12:06

Zitat:

Zitat von miromanu (Beitrag 333481)
komisch wenn ich es mit der skriptvariante versuche funktioniert es auch nicht. beide sound files werden im gleichen moment abgespielt. Und was ist ein spawn? ich kenn das garnicht.

sleep funktioniert auch nur in sqf. nicht sqs

Vienna 10.09.2010 13:16

spawn ist ein toller Befehl! mit ihm kann man sqf.Skriptzeilen in einen Auslöser schreiben!


Roehrenradio hat vergessen, dass der Befehl Parameter benötigt. Hier der korrekte Aufruf:

nullRes = [] spawn { playSound "Fire"; sleep 10; playSound "Explosion1" }

Zuerst kommt der Feuer-Sound und 10 Sekunden später die Explosion.

JoeJoe87577 10.09.2010 14:45

Schön das ich helfen konnte.

Aber du solltest wissen, dass zu viele Auslöser sehr viel Performance ziehen, weil jeder Auslöser seine Bedingung jede Sekunde prüft und bei der internen Strucktur von ArmA sollteste du aufpassen, dass da nicht zu viele auf der Map sind.

Vienna 10.09.2010 18:18

Gerade deshalb sollte man deine Lösung überdenken. Mit dem spawn-Befehl wäre nur ein Auslöser und kein Skript notwendig.

miromanu hatte den richtigen Ansatz, aber Probleme mit dem sleep-Befehl.

miromanu 10.09.2010 21:16

aha ok das mit der performance belastung durch auslöser hätte ich nicht gedacht. ich weiss ja nicht wieviele auslöser pro mission höchstens benutzt werden dürfen aber mit weniger als 6 stück komme ich nicht rum.

Vienna 11.09.2010 01:26

Bei einem Auslöser kommt es darauf an welche Funktion er hat. Wenn er nur eine einfache Abfrage bearbeitet ist das nicht besonders Aufwendig. Ob 6 oder 60 Auslöser wird kaum einen Unterschied bei der Performance ausmachen.


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