HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   setdate nur auf Host-PC (https://hx3.de/editing-139/setdate-nur-host-pc-16113/)

hypercop 27.04.2009 18:19

setdate nur auf Host-PC
 
Folgendes Problem:

Ein Object besitzt einen Aktionmenueeintrag. Wenn das Actionmenue aufgerufen wird, startet es ein Script, in welchem das Datum durch setdate [....] verstellt wird. Allerdings funktioniert der setdate-Befehl nur auf dem Host-PC.

Wie bekomme ich es hin, dass der Befehl auch auf den anderen Rechnern funktioniert?

Xeno 27.04.2009 19:06

Die Skripte die per Action Menü aufgerufen werden, werden nur lokal auf dem Client ausgeführt, der das Menü auch tatsächlich aktiviert hat.

Du musst schon per publicVariable und entsprechenden Maßnamen auf der Empfängerseite (Trigger, addPublicVariableEventhandler) das neue Datum über das Netz an die anderen Clients übertragen.

Xeno

Vienna 27.04.2009 19:06

In die Init.sqs oder Init.sqf folgende drei Zeilen eintragen:

MeinDatum = [1986, 2, 25, 16, 0];
setDate MeinDatum;
"MeinDatum" addPublicVariableEventHandler {setDate(_this select 1)};

In der letzten Zeile wurde für die Variable "MeinDatum" ein PublicVariableEventHandler aktiviert, der bei den anderen PCs den setDate Befehl abarbeitet.


Immer wenn du jetzt in MeinDatum ein neues Datum eingibst und mit dem Befehl "publicVariable" ins Netz überträgst, wird auch an allen anderen PCs das neue Datum eingestellt.

z.B. du änderst auf deinem PC so das Datum:

MeinDatum = [1986, 2, 26, 22, 35];
setDate MeinDatum;
publicvariable "MeinDatum";

Durch die letzte Zeile und den aktivierten PublicEventHandler für die Variable "MeinDatum" wird auch auf den anderen PCs jetzt das Datum umgestellt.

Link: addPublicVariableEventHandler - Bohemia Interactive Community

hypercop 28.04.2009 10:39

Danke für die Antworten. Vienna, dein Vorschlag klappt prima. Danke.

In dem Skript, welches ich über addAction aufrufe, kommen noch ein paar andere Befehle vor, welche nur auf dem Host-Rechner ausgeführt werden. Gibt es eine möglichkeit, dass mein gesamtes Skript auf allen Rechner ausgeführt wird?

Vienna 28.04.2009 18:21

Ein Skript übertragen geht nicht, aber ein Skript aufrufen. Das kannst du z.B. an die Datumsänderung anhängen.

"MeinDatum" addPublicVariableEventHandler {setDate(_this select 1);[] exec "Skriptname.sqs"};

Anstelle des Skriptaufrufs kannst du auch weitere Befehle anhängen. Du musst sie nur mit ; trennen.


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