HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Disconnect Event für MySQL Speicherung (https://hx3.de/editing-scripting-187/disconnect-event-fuer-mysql-speicherung-25696/)

Cakestory 20.01.2018 19:11

Disconnect Event für MySQL Speicherung
 
Hallo miteinander,
ich möchte gerne das Disconnect Event von ARMA3 nutzen um einige Daten wie Spieler Position, Inventar, ... in meiner mit dem extDB3 Addon angesteuerten MySQL Datenbank zu speichern.
Das Speichern funktioniert soweit auch gut, nur schaffe ich es nicht das Disconnect Event dafür zum laufen zu bringen. Generell passiert gar nichts egal welchen Code ich auch im "disconnect event" zu nutzen versuche.
Folgenden code habe ich schon versucht:

Code:

addMissionEventHandler ["HandleDisconnect",
{
    _player = _this select 0;
    _playerUID = _this select 2;
   
    diag_log format ["extDB3 - Handling disconnect for player %1 with uid %2", _player, _playerUID];
   
    _query =  format["playerUpdatePhysicalData:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11",  damage _player, (getAllHitPointsDamage _player) select 2, getPosWorld  _player, direction _player, str (stance _player), getUnitLoadout  _player, _playerUID ];
    [_query, 1] call csm_fnc_asyncCall;
}
];

Leider ohne Erfolg.
Als Alternative habe ich es auch mit den laut Wiki veralteten Code-Versionen über diesen Weg versucht (nur Testaufrufe ob da auch was geschieht):

Code:

["eventId", "onPlayerDisconnected",
{
    _player = objNull;
    {
        if (getPlayerUID _x == _uid) then
        {
            _player = _x;
        };
    } forEach playableUnits;

    _veh = "C_Offroad_01_F" createVehicle (position _player);
   
    diag_log "Test des disconnect events";
 } ] call BIS_fnc_addStackedEventHandler;

Ich benutze den Multiplayer Startmodus aus dem Eden-Editor hinaus für meine Mission und erstelle einen lokalen Server. Keine Ahnung ob es daran liegt, aber wenn würde ich mich über eine Lösung freuen die nicht einen Dedicated Server erfordert, aber auf beiden Serverarten läuft.

Habt ihr eine Idee wieso der Code nicht funktioniert?

Grüße,
Cakestory

burns 22.01.2018 14:21

isServer/isDedicated/isMultiplayer « ArmAScript Examples

Hilft dit vielleicht?

Ich war in der Materie immer von Xeno & Hoschi abhängig, kann da leider nix zu sagen :verlegen:

Cakestory 24.01.2018 17:10

Danke schonmal für den Link, das wird bestimmt nützlich sein, denn immerhin erschließen sich mir Lokalitäten in ARMAIII genauso wenig.
Allerdings scheint das Event einfach nicht zu funktionieren, egal wie ich die Lokalität anhand der im Link enthaltenen Daten handhabe.
Einzig und allein einen Dedicated Server hab ich noch nicht versucht. Leider fehlt mir da auch gerade die Zeit und Muse das zu testen. Ich kann mir jedoch nicht vorstellen, dass dabei ein anderes Ergebnis eintritt. :)

burns 24.01.2018 18:17

Ich hab zwar keinen Schimmer was diese Stacked EH´s genau tun, aber das Biki rät in Verbindung damit zum neueren "PlayerDisconnected" Befehl:

Executes assigned code when client leaves the mission in MP.
Stackable version of onPlayerDisconnected.


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

Cakestory 17.02.2018 11:00

Ok, hat zwar etwas gedauert, aber die Lösung ist ganz einfach.
Wie bereits in meiner letzten Antwort vermutet, wird das Disconnect event nur auf dem Dedicated Server ausgeführt, also lokal auf dem Server und nirgends sonst.
Diese Lösung von BIS ist wirklich extrem unverständlich, aber so ist es nunmal. ;)

Danke für die Antworten burns. Deine Links haben mir in anderen Bereichen des Projekts sehr weitergeholfen.


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