Beiträge von Jeffry

    In deinem SavePlayerCar kannst du das Query kleiner machen, so viel brauchst du nicht an Speicher zu reservieren.

    C
    new query[3000];

    zu:

    C
    new query[1024];


    Der Befehl muss so geändert werden:


    Sonst greifst du mit der vehicleid auf den Index zu, und das ist falsch.

    Das kann man so nicht direkt sagen, weil es gibt viele Möglichkeiten wie man das realisieren kann, abhängig davon, wie die Fahrzeuge verwaltet werden.


    Dazu müsste man erst mal wissen:
    - Wie werden die Fahrzeuge erstellt?
    - Können Fahrzeuge gelöscht werden? Wenn ja, wird die Nummer wieder frei?
    - Haben gegebenenfalls entfernte Fahrzeuge (an Spieler gebunden?) auch ein Nummernschild?
    - Werden die Nummernschilder am Fahrzeug gespeichert, oder können die nach dem Server-Restart anders sein?
    - Welche Fahrzeuge bekommen ein Nummernschild?



    Außerdem, sofern die Nummernschilder gespeichert werden:
    - Welches Speichersystem nutzt du (MySQL, SQLite, Dateien, ...)?


    Erst wenn man das alles weiß, kann man wirklich sagen, wie es am sinnvollsten zu realisieren wäre.

    Das ist egal, da das Array schon so ist, braucht es das enum nicht mehr zwangsweise.


    Debugge es bitte mal so:


    Dann poste was im Server Log steht. Prüfe gegebenenfalls gleich, ob die Werte die im Server Log stehen korrekt sind (du weißt ja was du ausgewählt hast), oder nicht.

    jedoch zeit er mir, zb. das SetPlayerCamaraPos und CamaraLookAt nicht an, auch der Spieler wird nicht auf den Felsen in LV gesetzt.

    Das geht dann so gar nicht.


    Dann musst du den Spieler erst Spawnen (OnPlayerRequestClass: SetSpawnInfo & SpawnPlayer). Dann bei OnPlayerSpawn: SetPlayerPos, SetPlayerCameraPos, ... .
    Im Spectate-Modus siehst du deinen Avatar nicht.

    Nimm das SetPlayerPos und das SetPlayerFacingAngle raus.



    Das SetSpawnInfo schreibst du dort rein, mit den Koordinaten von SetPlayerPos und SetPlayerFacingAngle.

    Das musst du nach TogglePlayerSpectating machen.
    Poste gegebenenfalls mal deinen Code.


    SetSpawnInfo brauchst du aber auch bei TogglePlayerSpectating, sobald das beendet wird, wird die gleiche Aktion ausgeführt, wie die die SpawnPlayer macht, sprich du wirst gekickt, wenn du SetSpawnInfo nicht zuvor nutzt.

    Du musst für Streamer Objekte das Callback OnPlayerSelectDynamicObject nutzen.


    Außerdem müssen alle Funktionen die auf das Objekt zugreifen die Streamer Funktionen sein, also IsValidObject kannst du da zum Beispiel nicht verwenden, sondern musst IsValidDynamicObject nutzen.

    Du musst eine Schleife nutzen: