HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Lösung gefunden für globalen Sound und Texturen (https://hx3.de/editing-scripting-167/loesung-gefunden-fuer-globalen-sound-texturen-21146/)

Drunken Officer 18.11.2011 19:32

Lösung gefunden für globalen Sound und Texturen
 
Hallo Community.

http://hx3.de/editing-scripting-167/...efuehrt-21101/
http://hx3.de/editing-scripting-167/...haltung-21074/
Ich hatte ja einpaar Fragen.

Danke an die Leute dir mir geholfen haben. Nach langem rumprobieren habe ich die Lösung für mein Model gefunden.
Die Texturen und Sounds werden jetzt global angezeigt und abgespielt.

Gelöst habe ich es mit einer while {true} do - Schleife. Für die Sounds habe ich einen Zähler benutzt um doppeltes Abspielen zu verhindern. Hier ein kleiner Auszug:
Config.cpp
auf die CfGSounds gehe ich mal nicht näher ein, dürfte klar sein.
hier wird der Eventhandler aufgerufen.
Code:

class EventHandlers
          { init = "handel = _this execVM ""\polizei\scripts\policebase.sqf""; ";
          };

Script
Code:

...
_animpb6counter = 0; //Varibale bekommt der Wert 0 zugewiesen

while {true} do
{
_blah = _this select 0;
...
_al3 = "alarm3"; // definiton der Variable mit Zielangabe auf die CfGSounds
....
_animpb6 = _blah animationPhase 'door_pb_aussenhof';
// definition der Varibale für die Animation mit Ziel unter UserAction.

//aussenhof
if (_animpb6 == 0) then {_blah setobjecttexture [0, "\polizei\grafik\lichtrot.paa"];} else {_blah setobjecttexture [0, "\polizei\grafik\lichtgruen.paa"];};
// hier wird abgefragt welchen Zustand das Tor hat und dann die Farbe gesetzt.
if (_animpb6 > 0 and _animpb6 < 1) then {_animpb6counter = _animpb6counter + 1} else {_animpb6counter = 0};
//hier wird gesagt, wenn Tor kompeltt auf oder zu ist, ist der Zähler 0 ansonsten zählt er hoch

player globalChat format["%1",_animpb6counter];
//kleiner Test ob der Zähler funktioniert
if (_animpb6counter < 2 and _animpb6 < 0.1 and _animpb6 > 0) then {_blah say [_al3,20,1];};
//hier wird gesat, spiele den Sound aber nur zu Beginn der Animation und wenn der Zähler kleiner 2 ist. Dies ist wichtig, da sonst beim Schliessen der Sound erneut abgespielt werden würde.
if (_animpb6 > 0.9 and _animpb6 < 1 and _animpb6counter < 2) then {_blah say [_al3,20,1];};
//analog zum öffnen.
 };
sleep 0.1

Eine while-Schleife erzeugt ein Server-Side-abfrage.

Ich hoffe das ich den Leuten, die vor dem gleichen Problem stehen etwas helfen konnte.
Natürlich gibt es auch andere Weg. Einige arbeiten mit Soundhelpern etc. pp.

Vienna 18.11.2011 20:11

Die Pause sleep 0.1 ist außerhalb der Schleife.

Ist es notwendig, dass das die Schleife ständig ganz durchlaufen wird? Sollte nicht mit waitUntil bis zum Erreichen eines Zustandes in den einzelnen Bereichen gestoppt werden?

Drunken Officer 19.11.2011 11:32

Ups, der sleep befehl ist in der Schleife. Falsch kopiert :)

Die Schleife ist notwendig. Da settexture nur lokal ausgeführt wird. Die While Schleife erzeugt aber eine Abfrage mit dem Server und somit bie allen Spielern.

Pfandgiraffe 19.11.2011 14:02

Zitat:

Die Schleife ist notwendig. Da settexture nur lokal ausgeführt wird. Die While Schleife erzeugt aber eine Abfrage mit dem Server und somit bie allen Spielern.

Das wär mir neu. Es liegt wohl eher an deinem neuen Aufruf mit dem Eventhandler bzw. wo dieser ausgeführt wird.

Drunken Officer 19.11.2011 20:34

Event Handler wird in der Class_Land_xxx aufgerufen. Quasi da, wo das 3D Model angesprochen wird.
Hm, auf alle Fälle funzt es jetzt :D Bestimmt nicht das Non+Ultra, aber funzt.


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