allMapMarkers

  • Multiplayer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • allMapMarkers

    Ich habe eine kleine Funktion geschrieben, mit welcher ich alle durch Spieler platzierte Marker löschen lasse, sobald keiner mehr auf dem Server ist.
    Abfragen wollte ich über den MissionEventHandler "PlayerDisconnected", was aber irgendwie nicht funktioniert.
    Ich habe es jetzt wie folgt gelöst:

    Quellcode

    1. addMissionEventHandler ["PlayerDisconnected", {
    2. private _players = allPlayers - entities "HeadlessClient_F";
    3. if (count _players == 0) then {iV_CleanUpServer = true};
    4. }];
    5. addMissionEventHandler ["PlayerConnected", {
    6. if (iV_CleanUpServer) then {
    7. ["Server"] remoteExec ["iV_fnc_cleanUp", 0, false];
    8. iV_CleanUpServer = false;
    9. };
    10. }];
    Alles anzeigen

    Die Funktion schaut wie folgt aus:

    Quellcode: fn_cleanUp.sqf

    1. {
    2. if (count _x > 15) then {
    3. // VARIABLES
    4. private _name = _x select [0, 15];
    5. private _blacklist = ["o_Ordnance", "o_support", "o_installation", "o_med", "b_Ordnance", "b_support", "b_installation", "b_med"];
    6. // DELETE MARKER
    7. if (_name == "_USER_DEFINED #" && !(markerType _x in _blacklist)) then {deleteMarker _x};
    8. };
    9. } forEach allMapMarkers;
    Alles anzeigen

    Jetzt zu meiner Frage:
    Der Server kann ohne Spieler irgendwie nicht auf allMapMarkers zugreifen.
    Kann mir das einer erklären?
  • Debug Console:
    Wenn ich die Funktion lokal oder global ausführe, funktioniert sie.
    Wenn ich sie auf dem Server ausführe dann nicht.


    Und wenn ich sie im MEH "PlayerDisconnected" ausführe, dann will sie auch nicht.
    Ich lösche nicht nur die Marker, sondern danach auch Tiere. Diese werden gelöscht.
    So weiss ich, dass die Funktion auslöst, aber halt nicht an allMapMarkers kommt.
    Verstehe das irgendwie noch nicht so richtig.


    Und wenn ich die Funktion dann auslöse, sobald der erste Spieler den Server betritt, dann funktioniert es auch.
    Deswegen habe ich die jetzt im MEH "PlayerConnected" verbaut.