HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   sound und settexture werden nur lokal ausgeführt. (https://hx3.de/editing-scripting-167/sound-settexture-nur-lokal-ausgefuehrt-21101/)

Drunken Officer 05.11.2011 10:35

sound und settexture werden nur lokal ausgeführt.
 
Hallo

Bezugnehmend auf dieses Thema:
http://hx3.de/editing-scripting-167/...haltung-21074/

Wie ich bereits schrieb, funktioniert es "wunderbar". Doch als ich einen 2 Spieler auf den Server holte, um es abschliessend zu testen, stellte ich fest,
dass sound und 'settexture' alles nur lokal ausgeführt wird.
Soll bedeuten, dass wenn ich das Tor auf mache, ich den Sound höre und die Ampel für mich auf grün springt.
Für den 2. Spieler ist die Animation sichtbar, jedoch hört er weder den sound noch springt die Ampel auf grün. Erst wenn er selber die Animation ausführt, hört er Sound und sieht die Ampel arbeiten.

Config.cpp
Code:

class CfgSounds{
....
class alarm3{
name = "alarm3";
sound[] = {"\polizei\sounds\alarm3.ogg",1,1.0,40};
titles[] = {};
};};
...
...
Class Useraction
{....
class Open_door_pb_aussenhof{
            scope = 2;
            displayName="$STR_aussenhof_open";
            onlyforplayer = true;
            position="benutze_tuer_aussenhof";
            radius=1.5;
            condition="this animationPhase ""door_pb_aussenhof"" < 0.1 ";
            statement="this say'alarm3';this execVM ""\polizei\scripts\hoftor.sqf"" ";       
            };
                   
        class Close_door_pb_aussenhof : Open_door_pb_aussenhof{
            displayName="$STR_aussenhof_close";
            condition="this animationPhase ""door_pb_aussenhof"" > 0.9 ";
            statement="this animate ['door_pb_aussenhof', 0];this setobjecttexture [1, '\polizei\grafik\lichtrot.paa'];";           
            };
};

hoftor.sqf
Code:

_this animate ["door_pb_aussenhof", 1];
_hoftor = "alarm3"

_this say _hoftor;
waitUntil {(_this animationPhase "door_pb_aussenhof") == 1};
 _this setobjecttexture [1, "\polizei\grafik\lichtgruen.paa"]

Gibt es eine Möglichkeit das ganze irgendwie "global" zu setzen?

Vienna 05.11.2011 11:56

Es muss ja einen Programmteil geben der die Torbewegung bei den Clients auslöst. Wäre logisch wenn man dort auch die Auslösung der Lichtschaltung und des Tons einbindet.

Drunken Officer 05.11.2011 15:57

Die UserAction ist die "Quelle" für den Spieler. Da wird gesagt, was gemacht wird, wenn der Spieler das Aktionsmenü bestätigt.

Dann gibt es noch eine AnimationSource. Diese definiert aber nur,
Auslöser (user oder eine andere Animation)
Ausgangslage
Länge

Asso-Loki 06.11.2011 13:44

Versuch mal
Code:

onlyforplayer = false;

Drunken Officer 06.11.2011 22:47

nee, das bringt nix. Damit gibt man der AI die Freigabe auf die Menüpunkte. Quasi Tor öffnen usw. Habe ich mal versucht, ändert aber nix an meinem Problem.

Vienna 07.11.2011 00:51

Wenn sich das Tor öffnet, wäre das irgendwie bei den Clients in der "class EventHandlers" ersichtlich (auch bei denen die nicht den Befehl zum öffnen geben)?

Wenn ja, dann könnte man dort mit der Ampelschaltung und dem Sound ansetzen.

Pfandgiraffe 07.11.2011 07:27

Mach doch cba zu deinem Addonzubehör und benutze die Public Eventhandlers und Network Codes. Wird dir eine Menge arbeit erspahren...
http://dev-heaven.net/docs/cba/files...ecute-sqf.html


In dem Fall würde deine config so aussehen:
Zitat:

class CfgSounds{
....
class alarm3{
name = "alarm3";
sound[] = {"\polizei\sounds\alarm3.ogg",1,1.0,40};
titles[] = {};
};};
...
...
Class Useraction
{....
class Open_door_pb_aussenhof {
scope = 2;
displayName="$STR_aussenhof_open";
onlyforplayer = true;
position="benutze_tuer_aussenhof";
radius = 1.5;
condition = "this animationPhase ""door_pb_aussenhof"" < 0.1 ";
statement = [this, 'alarm3'] call CBA_fnc_globalSay3d; [-1, {execVM '\polizei\scripts\hoftor.sqf'}] call CBA_fnc_globalExecute";
};
class Close_door_pb_aussenhof : Open_door_pb_aussenhof {
displayName = "$STR_aussenhof_close";
condition = "this animationPhase ""door_pb_aussenhof"" > 0.9 ";
statement = "this animate ['door_pb_aussenhof', 0];this setobjecttexture [1, '\polizei\grafik\lichtrot.paa'];";
};
};
...natürlich cba mitstarten...


gruß

Vienna 07.11.2011 15:49

Ich habe keine Ahnung wie Modelle programmiert sind. Vielleicht ist es eine falsche Annahme wenn ich meine z.B. das Lagerfeuer ist auch "nur" so ein Modell. Es kann ein- und ausgeschaltet werden, was alle sehen und das Knistern ist auch allgemein zu hören. Das müsste doch auch für dieses Modell, ohne ein externes Addon, möglich sein?

Kann man sich so ein Arma-Modell nicht als "Vorlage" nehmen?

Drunken Officer 08.11.2011 00:16

Es geht auch ohn CBA. Psych hat Recht, man spart sich aber ne Menge arbeit. Was aber wenn der Server kein CBA hat... (aber der Link ist gespeichert! :daumen:)

Ich habe mal mit jemanden gesprochen, der hat sich mal eine PBO von einem Fahrzeug angeschaut.
Seine Vermutung, das der einfach "set texture befehl" oder "_this say befehl" nur lokal ausgeführt wird.

Verpackt man das in in while {true}-schleife, so muss eine ständige Überprüfung des Server erfolgen. Er meint, damit bekommt man es global hin.
Pro mission gibt es zwar eine Begrenzung von 100k bei den while-do schleifen, aber 100k ist ne Menge pro Mission, oder nicht? Ich wiederum habe keine Ahnung vom Missionsbau.

Ich werde mal ne Weile basteln, das ich diese While-Schleife hinbekomme. Bei anderen Addon-Bauern funktioniert das ja auch. Alternativ zum settexture befehl werde ich mal in #lightpoint und attachto reinschnupern.

Es muss ja irgendwie möglich sein.


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