ArmA 3 - Multiplayer Scripting

  • Werde hier mal einiges auflisten was das Scripten rund um den Multiplayer in ArmA 3 betrifft, da sich doch ein paar Dinge gegenüber ArmA 2 geändert haben.

    Event-Scripts:
    Zum nachlesen https://community.bistudio.com/wiki/Event_Scripts

    Neu in Arma3:
    initServer.sqf
    Script wird nur auf dem Server beim Start ausgeführt.

    initPlayerLocal.sqf
    Script wird nur auf dem Client ausgeführt der dem Spiel beitritt
    Es wird folgende Variable an das Script übergeben: [Spieler(Objekt),JIP (Bool)]

    Spieler (Objekt), im Script: _this select 0
    Hierbei handelt es sich um die vom Spieler gewählte Einheit

    JIP (Bool), im Script: _this select 1
    Hat die Werte true oder false und gibt an ob der Spieler "Join in progress" ist, d.h. ob der Spieler einem laufenden Spiel beitritt (true) oder bei Beginn der Mission dabei ist (false).

    initPlayerServer.sqf
    Script wird nur auf dem Server ausgeführt für jeden Spieler der dem Server beitritt. Im Grund das gleiche wie vor, jedoch wird dies nur auf dem Server gestartet.
    Es wird folgende Variable an das Script übergeben: [Spieler(Objekt),JIP (Bool)]

    Spieler (Objekt), im Script: _this select 0
    Hierbei handelt es sich um die vom Spieler gewählte Einheit

    JIP (Bool), im Script: _this select 1
    Hat die Werte true oder false und gibt an ob der Spieler "Join in progress" ist, d.h. ob der Spieler einem laufenden Spiel beitritt (true) oder bei Beginn der Mission dabei ist (false).

    Weiterhin gültig:
    init.sqf
    Wird beim Start auf Server und Client ausgeführt. (Auch bei JIP-Spieler).

    Nicht mehr benutzt und haben somit in Arma 3 keine Funktion mehr:
    initJIPcompatible.sqf

    EventHandler

    Weiterhin gültig:
    onPlayerconnected
    - Läuft nur auf dem Server und kann dann daher in initServer.sqf
    - Beim einloggen eines Spielers (Startet wenn der Spieler im Briefing ankommt. Ist in soweit wichtig, daß die Spielerfigur an diesem Punkt noch nicht im Spiel ist. Wollt ihr dem Spieler z.B. Ausrüstung zuweisen, müßt ihr in dem Script mit waituntil{alive _spieler}; warten bis der Spieler aus gespawnt ist
    Was für Variablen übergeben werden steht im Wiki.

    onPlayerDisconnected
    - Läuft nur auf dem Server und kann dann daher in initServer.sqf
    - Startet sobald man Escape drückt und man bestätigt, daß man das Spiel verlassen möchte
    Was für Variablen übergeben werden steht im Wiki.

    Neu in ArmA 3:
    An Stelle der beiden vorherigen Eventhandler gibt es seit dem Update vom 2.11.(DEV-Version) eine andere Vorgehensweise zu diesen beiden Eventhandlern, die nicht zwingend ist aber empfohlen wird
    Hintergrund dazu ist, daß dieser Eventhandler nur einmal aufgerufen werden sollte und bei jedem weiteren mal den vorhergehenden überschreibt.

    Zum nachlesen:
    https://community.bistudio.com/wiki/BIS_fnc_a…kedEventHandler
    http://forums.bistudio.com/showthread.php…erConnected-etc

    Beispiel:
    ['E76_ID', 'onplayerdisconnected', 'E76_fnc_SRV_playerlogout'] call BIS_fnc_addStackedEventHandler;

    "E76_ID" -Ist sinnvoll zu wählen und sollte einzigartig sein, so daß es wenn möglich nicht mit anderen Mods kollidiert, z.B. "ACRE" oder "ACRE_ID" könnte dazu führen das ACRE diesen auch benutzt und man sich dann gegenseitig überschreibt.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!