Direkt zum Hauptinhalt

RemoteExec

Scripting-Intention:RemoteExec

Ein

RemoteExec ext.ist Scriptdas mit Abstand beste Werkzeug, um sich durch den Arma-Multiplayer-Lokalitäten-Dschungel zu kämpfen.

Syntax (remoteExec):

    params remoteExec [functionName, targets, JIP

Um uns das Ganze von Anfang an ein wenig einfacher zu machen, nehmen wir den optionalen Parameter JIP gleich mal raus. Dieser ist Standardmäßig false und solltet ihr nicht genau wissen, was ihr tut, solltet ihr es auch dabei belassen. Daher:

    params remoteExec [functionName, targets]

params: Bei Params handelt es sich um die Parameter des Befehls den ihr ausführen wollt. Bei Befehlen die selbst nur einen Parameter haben (z.B. “hint”) kommt hier einfach dieser Parameter hin. Bei Befehlen mit 2 Parametern (z.B. “addAction”) entsteht ein Array, wobei der Parameter, der vor dem Befehl steht, zuerst kommt und dann der Parameter, der hinter dem Befehl steht.

Beispiele: 

  1. hint “Das ist nicht ganz einfach”; 

-> “Das ist nicht ganz einfach” remoteExec [“hint”];

 

  1. KI addAction ["Sag Hallo", "scriptHallo.sqf"]; 

-> [KI, ["Sag Hallo", "scriptHallo.sqf"]] remoteExec [“addAction”];

 

Hierbei könnt ihr einfach Copy&Paste nutzen. Alles vor dem Befehl vor das Komma im Array, alles dahinter, hinter das Komma.

 

functionName: Dabei handelt es sich schlicht und ergreifend um den Befehl, den ihr ausführen wollt. Einzig anzumerken ist, dass er in Anführungszeichen stehen muss, da es sich um einen String handeln muss.

 

targets (optional): Mit targets beginnt die Magie dieses Befehls. Es handelt sich dabei um einen optionalen Parameter des remoteExec-Befehls, er ist daher nicht zwingend nötig. Sollte er fehlen, wird der Befehl schlicht global ausgeführt (sollte nur für alle Clients im MP ausführen.

Je nach Kommando können externe ScriptsBefehle mit ExecVMlokalem Effekt ausgeführt werden,werden).

wenn

Als target kann man ein einzelnes Objekt, eine Gruppe von Objekten, den Server (target = “2”) oder auch alle außer den Server wählen (target = “-2”). Das Hervorragende daran ist, dass dieses command genau da ausgeführt wird, wo das target lokal ist. Solltet ihr also beispielsweise einen LKW manipulieren wollen, der aber in der Mission von einem x-beliebigen Spieler gefahren wird (und daher nicht mehr lokal zum Server ist), könnt ihr als target diesen LKW angeben und der Befehl wird automatisch auf dem Client des Spielers ausgeführt zu dem der LKW lokal ist. 

Was man bei target angeben will, hängt natürlich hauptsächlich davon ab, ob man einen Befehl mit lokalem Argument oder mit lokalem Effekt benutzt. Beim lokalen Argument wird das target meist das zu manipulierende Objekt sein. Bei lokalen Effekt kann man das target darauf zuschneiden, für wen der Effekt desgelten Scripting-Kommandos von Haus aus globalsoll.  ist. Ist er lokal, muss der Befehl per remoteExec ausgeführt werden, um an alle Clients gebroadcastet zu werden. Beispiel:

         

[speaker1,

Beispiele:

["anruf",
  1. “Info 100,an 1,die true]]ganze Gruppe” remoteExec ["say3D"“hint”, 0,(group true]S1)];

Zeigt diesen Hint für die ganze Gruppe des Spielers S1 an.

Hier

  1. [LKW, ist1] remoteExec nötig, weil say3D ein Command mit[“setFuel”, lokalemLKW];

Tankt den LKW komplett voll.

  1. "Hallo Freunde" EffektremoteExec ist.["hint", (nearestObjects [Zivi, ["Man"], 50])];

Zeigt die Nachricht “Hallo Freunde” für allejeden anderenSpieler Parameterin sieheeinem Eintrag50m zuRadius say3D!

um


Tutorialdas zuObjekt remoteExec:

https://www.youtube.com/watch?v=qazpxE_m4Xs&feature=emb_logo

“Zivi”

https://community.bistudio.com/wiki/remoteExecan.