Befehlsübertragung in Multiplay mit Auslöser
Oft kommt es vor, dass im Editor positiv getestete Missionen im Multiplayermodus nicht korrekt laufen. Das liegt meist daran, weil bestimmte Befehle auf jedem Spieler-PC lokal ausgeführt werden müssen.
Für den Multiplayermodus gibt es ab ArmA V1.09 auch die Möglichkeit Befehle (Code) mit publicVariable zu übertragen. Das ermöglicht nun eine lokale Befehlsausführung an allen gewünschten PCs im Multiplayermodus über Auslöser.
Ein ebenfalls neuer publicEventHandler hat den Nachteil, dass Befehle nicht auf dem PC des Absenders ausgeführt werden. Mit den "Auslöser-Befehlsempfängern" wird der Befehl auch beim Absender ausgeführt (falls er für ihn vorgesehen ist).
Die Befehle brauchen einfach nur in die entsprechenden Variablen angeführt und mit publicVariabel übertragen werden.
Folgende Variable sind für die Übertragung vorhanden:
BefehlAnAlle (Befehle werden bei Server und Clients ausgeführt)
BefehlAnWest (Befehle werden nur bei West-Spielern ausgeführt)
BefehlAnEast (Befehle werden nur bei East-Spielern ausgeführt)
BefehlAnServer (Befehle werden nur beim Server/Host ausgeführt)
BefehlAnPlayer (Befehle werden nur bei den Spielern ausgeführt)
Beispiel mit dem ein Spieler ein Skript beim Server/Host startet:
BefehlAnServer = {[] exec "Skriptname.sqs"};
publicVariable "BefehlAnServer";
Beispiel um bei den Westspielern eine "hint"-Meldung anzuzeigen:
BefehlAnWest = {hint "Hallo Westspieler!"};
publicVariable "BefehlAnWest";
Es können auch mehrere -durch ; getrennte- Befehle angegeben werden. Eine Befehlsübertragung mit den Variablen ist mehrfach möglich. Zwischen den Übertragungen mit der selbigen Variablen sollte aber mindestens 1 Sekunde Abstand liegen.
Um die Befehls-Auslöser zu verwenden, brauchen nur die 5 Auslöser in die Mission kopiert werden (Kopieren: Strg+C und Einfügen: Strg+V). Es können auch nur die Auslöser kopiert werden, welche in der eigenen Mission Verwendung finden.
In der Beispielmission ist ein Test der Übertragung möglich. Es sind Funkauslöser vorhanden, welche bei Markern die Farbe ändern. Es wird nur der lokale Markerbefehl genommen, aber durch die Befehlsübertragung läuft die Umfärbung an allen zutreffenden PCs.
|