Flugzeuge geradeaus steuern lassen (Element Speed)

  • Hello everrrrone.



    Hänge seit längerem an einem kleinen Problem, ich möchte ein Flugzeug in der Luft spawnen und geradeaus fliegen lassen.
    Geht eigentlich auch alles, nur das "ich kann das Flugzeug DIREKT geradeaus fliegend starten" ist der problematische Teil.


    Flugzeug wird erstellt, Pilot wird reingesetzt und clientseitig mit den benötigten Control-Funktionen ausgestattet damit er so lange es geht in der Luft bleibt.
    (Ja, jedes Flugzeug wird anders darauf reagieren(z.B. Rustler - Beagle) - trotzdem sollte der Start irgendwie funktionieren)



    setElementVelocity mehr als genug ausprobiert aber da es ja die X, Y, Z Richtungsangaben sind wird das Fahrzeug nicht geradeaus sondern nur nach Nord-Ost-Süd-West geschossen.
    setVehicleTurnVelocity ist das gleiche, Welt-Richtungsangabe.
    setElementSpeed(useful function) genauso getestet aber das klappt bei meinem Vorhaben auch nicht wirklich weiter(benötigt ohnehin einen Timer) da ich eigentlich eine Offset-Richtungsangabe für das Fahrzeug bräuchte(X - Links&Rechts, Y - Vorne&Hinten, Z - Hoch&Runter).





    Bitte keine Vorschläge mit moveObject & attachElements, das habe ich bereits gemacht aber ich möchte diesen Weg erstmal ausarbeiten.
    (moveObject und danach detachElements bringt nichts, da wird das Flugzeug einfach ohne Movement 'gedroppt' und fällt runter)
    Wie kann ich das mit ElementVelocity lösen?



  • Bitte keine Vorschläge mit moveObject & attachElements, das habe ich bereits gemacht aber ich möchte diesen Weg erstmal ausarbeiten.
    (moveObject und danach detachElements bringt nichts, da wird das Flugzeug einfach ohne Movement 'gedroppt' und fällt runter)

    mhmm vielleicht das Flugzeug mit einem Object Attachen und dann MoveObject benutzen.


    War ja klar... :D

  • Schaut euch zuvor doch mal den Code an (plz).
    Auch wenn der Pilot dann gas gibt, das Flugzeug muss trotzdem beim spawnen dann bereits eine Geschwindigkeit haben als ob es bereits fliegen würde und soll dann auch weiterfliegen.

  • Du warst mit setElementVelocity auf dem richtigen Weg, brauchst hierbei nur nen umrecher von den Rotationsangaben zu den xyz koordinaten
    Ich hab dir da mal n bisschen was gebastelt, ich hoffe du wirst schlau draus :)


    Lua
    addCommandHandler("ff", function(player, cmd, a)
    local rx, ry, rz = 0, 0, tonumber(a)
    local vrz = 360-rz
    local fahrzeug = createVehicle(520, 2399.88, 1024.35, 75.70, rx, ry, rz)
    setElementVelocity(fahrzeug, math.sin(math.rad(vrz)), math.cos(math.rad(vrz)), 0.5)
    setTimer(function()
    destroyElement(fahrzeug)
    end, 10000, 1)
    end )
  • O.M.Goodness


    1000 Dank @Sorginator, klappt so wie ich es mir immer gewünscht hatte.
    War mit den math Funktionen noch nie wirklich vertraut gewesen. Bezüglich dem Thema hier wird man wahrscheinlich bald noch was hören.

    Lua: Lösungssatz
    local rx, ry, rz = 0, 0, 80 --Rotation
    local vrz = 360-rz
    setElementVelocity(Vehicle, math.sin(math.rad(vrz)), math.cos(math.rad(vrz)), 0.01)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!