alt:V • Frage

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ich bin gerade dabei mir Coding beizubringen und wollte daher mal fragen ob mir jemand zeigen kann wie ich ein Motor System schreibe.


    Beispiel:

    Motor an = M

    Motor aus = M

    aber der Motor soll an bleiben wenn ich das Fahrzeug verlasse ohne denn Motor zu stoppen.

    außerdem sollte der Motor aus sein bis ich eine Taste drücke beim einsteigen.

    Ich bedanke mich schon mal im Vor raus.

  • über ein event kannst du das machen dazu emfehle ich dir events bei JS zu verstehen

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Serverside kannst du den Motor so starten/stoppen: vehicle.engineOn = false; (Stoppt den Motor)

    Clientside so: native.setVehicleEngineOn(vehicle.scriptID, false, true, true);


    Clientside musst du diesen Flag aktivieren, damit das Fahrzeug nicht beim einsteigen automatisch gestartet wird: native.setPedConfigFlag(alt.Player.local.scriptID, 429, true);


    Serverside solltest du auch vehicle.manualEngineControl = true; benutzen, damit der Server immer den Motor steuert, und nicht der Spieler.


    Um den Motor nach dem aussteigen wieder zu aktivieren, musst du eine streamSyncedMeta verwenden, in der speicherst du einfach den true/false Wert für den Motor, und setzt den Motor dann entsprechend wenn jemand als Fahrer einsteigt.

  • Du speicherst beim Motor starten/stoppen mit https://altmp.github.io/altv-t….html#setstreamsyncedmeta den Status vom Motor (true/false)

    Beim Event "playerEnteredVehicle" (Serverside: https://altmp.github.io/altv-t…ules/_alt_server_.html#on) sendest du ein Event an den Spieler, der in das Fahrzeug gestiegen ist, bei diesem Event clientside setzt du den Motor entsprechend in dem du die Native "setVehicleEngineOn" verwendest. Hier kriegst du den Wert für den Motor dann mit getStreamSyncedMeta (auf dem Fahrzeug) und setzt diesen.


    Ich kann sonst morgen Mal Codeschnipsel posten, ich bin gerade nur am Handy.

  • Danke :)


    Aso noch ne frage wenn ich Blips erstelle sieht man die durchgehend auf der minimap. hab versucht den radius am ende reinzutragen funtzt aber net. hast du da ne ahnung?

  • Danke :)


    Aso noch ne frage wenn ich Blips erstelle sieht man die durchgehend auf der minimap. hab versucht den radius am ende reinzutragen funtzt aber net. hast du da ne ahnung?

    Wenn du es mit dem alt:V integrierten PointBlip machst, dann kannst du einfach blip.shortRange = true; verwenden. (https://altmp.github.io/altv-t…pointblip.html#shortrange)

    Wenn du den Blip mit Natives erstellst musst du dieses Native nutzen: https://natives.altv.mp/#/0xBE8BE4FE60E27B72



    Jetzt nochmal zum Motorsystem:

    JavaScript: Serverside - Motor starten/stoppen
    alt.onClient("vehicle:toggleEngine", (player) => {
        if (!player.vehicle) return;
        if (player.vehicle.driver !== player) return;
        
        let state = !player.vehicle.getStreamSyncedMeta("ENGINE");
        player.vehicle.setStreamSyncedMeta("ENGINE", state);
        player.vehicle.engineOn = state;
    });


    JavaScript: Serverside - playerEnteredVehicle
    alt.on("playerEnteredVehicle", (player, vehicle, seat) => {
        if (!vehicle.valid) return;
        if (seat !== 1) return;
        alt.emitClient(player, "vehicle:enteredVehicle", vehicle);
    });
    JavaScript: Clientside - playerEnteredVehicle
    alt.onServer("vehicle:enteredVehicle", (vehicle) => {
        native.setVehicleEngineOn(
            vehicle.scriptID,
            vehicle.getStreamSyncedMeta("ENGINE"),
            true,
            true
        );
    });