Skip to content

Script - Tasten belegen mit FlyWithLua in X-Plane

X-Plane 11 bietet von Hause aus effiziente Methoden um Buttons und Schalter mit zig möglichen Funktionen zu belegen. Leider sind die Möglichkeiten begrenzt, wenn es zum Beispiel darum geht Knöpfen gleich mehrere Funktionen zu zuweisen. Doch auch hier gibt es ein Plugin, was uns bei der Behebung dieses Problems behilflich ist. Das ist Flywithlua. Was genau ist das? FlywithLua ist ein plattformübergreifendes Plugin, welches die LUA Programmiersprache nutzt. Dabei bekommt der Nutzer die Möglichkeit, die verschiedensten Funktionen des Simulators zu verändern. In dieser Anleitung werde ich nur auf einen kleinen Teil des Funktionsumfanges von FlyWithLua zurück greifen.

In diesem Beispiel werden wir die unterschiedlichen Lichtschalter der Flight Factor B757-200 Kippschaltern auf meinem Saitek TPM System zuweisen. Weitere unten können Sie das hier angelegte Lua Script runterladen.

 

FlyWithLua - Tasten Script

Beispiel: FlyWithLua Script für die FlightFactor B752

Schritt 1 - Tastennummer:

Bevor wir unser Script schreiben, brauchen wir zu erst ein paar wichtige Informationen. Die erste Information, die wir benötigen, ist die Schalternummer. Oben im Screenshot erkennt man zum Beispiel in der Line 5 die Zahl 167. Dabei steht die Zahl 167 als eindeutiger Identifikator für genau diesen Schalter oder Button. Wir müssen nämlich zuerst herausbekommen wie die einzelnen Nummern unserer zu belegenden Schalter sind. Dafür gibt es ein Standard-Makro, welches bei dem Plugin FlyWithLua dabei ist. Zuerst stellt man sicher, dass man die neuste Version von FlyWithLua hat und das diese richtig installiert ist.

Der Plugin Ordner muss im X-Plane 11 Ordner unter Resources/plugins liegen. Danach startet man X-Plane 11 und findet nach der korrekten Installation unter Plugins die neue Option "FlyWithLua". Man navigiert zu Plugins-> FlyWithLua -> FlyWithLuaMacros -> Show joystick button numbers. Betätigt man nun einen Schalter, wird die Nummer oben links in der Ecke des Bildschirms angezeigt. So sucht man sich nach und nach die Nummern raus und notiert sich diese.

FlyWithLuaMacro = Button Nr: 164

Schritt 2 - Custom Datarefs:

Im zweiten Schritt müssen wir die Custom Datarefs herausfinden, sofern wir diese benötigen. Was sind Custom Datarefs? Diese sind von Entwicklern eingebrachte Modifikatoren. Ein Beispiel: Belegt man einen Schalter im X-PLane Joystick Dialog mit switch Landings lights, passiert leider bei der Flightfactor B752 nichts. Wieso, weil die Landelichter in der B752 Custom Datarefs haben und so nicht von den X-Plane eigenen Datarefs angesprochen werden. Deswegen müssen wir herausfinden wie diese lauten, damit wir dem Schalter auch die richtige Funktion geben können. Im Codebeispiel oben in Line 13 sieht man das  Custom Dataref für die Landelichter bei der B752 "1-sim/lights/landingL/switch". Nun stellt sich uns die Frage, wie wir diese herausfinden können. Dafür benötigen wir den Datarefeditor von Ben Supnik. Auch dieser wird wie immer unter X-PLane11/Resources/plugins installiert.

Nach der Installation schauen wir uns die Datarefs unter Plugins -> Data Ref Editor ->Show Data Refs an und können in der Box unten links mit Stichworten nach Datarefs suchen. Auch hier notieren wir alle Datarefs, die wir benötigen. Unten ein Beispiel für das Dataref der "Landelichter Rechts". Die letzte Ziffer 0 oder 1 steht dabei für die Position der Schalters. In diesem Fall bedeutet 1, dass die Lichter eingeschaltet sind und 0, dass sie ausgeschaltet sind. Dies kann von Dataref zu Dataref varieren und sollte vorher getestet werden.

Landelichter Rechts - 1 (an)

Schritt 3 - FlyWithLua Script

Nachdem wir nun alle Informationen haben, die wir brauchen, benötigen wir noch einen Editor. Hier kann man den Windows eigenen Editor nehmen oder lieber etwas komfortableres wie das Notepad++. Dieses ist kostenlos und schnell runtergeladen. Danach legen wir eine neue Datei in Notepad++ an und beginnen mit unserem Script. Die erste Zeile des Beispiel-Scripts beschränkt unsere Tastenbelegungen auf die B757-200. Dadurch verhindern wir, dass zum Beispiel in einem Airbus A320 dieses Script geladen wird. In diesem sind höchstwahrscheinlich die genutzten Datarefs nicht vorhanden, wodurch FlyWithLua abstürzen würde.

Im zweiten Schritt erstellen wir für jede Funktion eine Create Switch Funktion. Gehen wir davon aus, dass wir den Button 464 mit dem Nosegear Light belegen wollen. Dann könnte dies so aussehen:

create_switch(464, "1-sim/lights/landingN/switch", 0, 1, 0)

Diese Prozedur wiederholen wir für alle Funktionen die wir benutzen wollen. Dabei können wir auch mehrere Funktionen einem Button zuweisen. Im Beispiel oben sieht man dies zum Beispiel bei den Landelichter Links + Rechts. Beide Funktionen sind dem Button 164 zugeordnet. Im Anhang befindet sich mein Script als Beispiel, was Sie gerne verwenden, verbessern und ausbauen dürfen.

Diese Art von Script hat keinen negativen Einfluss auf die Performance und wird bei jedem Laden eines Flugzeugs einmal ausgeführt. Natürlich könnte man noch andere Automatismen einbauen wie zum Beispiel eine Funktion, die die Kabinen Lichter erst bei einer gewissen Uhrzeit einschaltet. Sollten Sie auf den Geschmack gekommen sein, finden Sie in der FlyWithLua Installation bereits einige gute Scripts, wie zum Beispiel den QNH Helper.

 

Zusatz

Um den vom Modell zugewiesenen Aircraft Icao zufinden, im Aircraft Ordner die ACF mit Notepad++ oder einem passendem Editor öffnen und mit STRG + F nach icao suchen. Diesen dann nutzen, um das FlyWithLua Script nur bei dem richtigen Modell zu aktivieren. Hier noch Bild am Beispiel der Flightfactor B752:

Screenshot ACF Xplane

Flight Factor B752 - ACF File in Notepad++

*Wichtig: FlywithLua updaten, da es mit X-Plane 11 Beta's schnell Probleme auftreten können.*

Links:

 

 

 

11 Kommentare

  1. Veröffentlich von Dennis Schlichczin am 23. Oktober 2017 um 9:32

    Hallo und erst einmal herzlichen Dank für diese wunderbare Anleitung. Lange habe ich mich dumm und dusselig gesucht wie ich meinen Joystick etc. entsprechend anpassen kann um die gekauften Flieger angenehmer handeln zu können. Diese Lösung/Erklärung ist genau das was ich mir gewünscht habe!

    Dennoch, eine Frage habe ich: „if PLANE ICAO == „B752″ then“

    Wo kann ich die ICAO Codes des Fliegers einsehen? Ich weiß zwar womit ich fliege, aber diese Daten müssen ja irgendwo festgelegt und einsehbar sein 🙂

    Gruß aus Hannover,
    Dennis

    • Veröffentlich von Moritz am 23. Oktober 2017 um 11:14

      Hallo Dennis,

      freut mich das dir die Anleitung weitergeholfen hat. Um den PLANE ICAO herauszufinden kannst du die .acf Datei des Fliegers mit Notepad++ öffnen und dann mit dem Stichwort „icao“ durchsuchen. Wie im Browser kannst du mit dem Shortcut STRG+F das Suchfeld öffnen. Ich werde meine Anleitung mal aktualisieren. Solltest du noch fragen haben, dann nur her damit 🙂

      Gruß Moritz

  2. Veröffentlich von Denis am 11. September 2018 um 13:43

    Hallo, erstmal danke für diese umfassende Anleitung. Ich habe mich mit Fly with Lua noch gar nicht auseinander gesetzt. Ich weiß zwar, dass ich es für einige Mods brauche, wusste aber von der möglichen Tastenbelegung null. Die 757 von Flightfactor war ein schönes Beispiel, da mir selber schon aufgefallen ist, dass ich zum Beispiel die Trimmung nicht mehr über meine Standardbelegung am Joystick einstellen kann. Nun weiß ich ja, warum 🙂

    Nun eine Frage: Ich habe vor, mir das Yoke System von Logitech zu kaufen. An dem dazugehörigen Throttle Quadrant sind ja unter den Hebeln drei belegbare Schalter. Habe ich mit Fly with Lua die Möglichkeit, mit einem Schalter vier Befehle gleichzeitig auszuführen? Beispiel Landelichter an der Boeing 747-8F von SSG. Normal sind ja vier Schalter im Cockpit vorhanden, ich möchte aber gerne alle vier über einen Schalter am Quadranten bedienen. Ist das möglich?

    Gruß
    Denis

    • Veröffentlich von Moritz am 11. September 2018 um 13:57

      Hi Dennis,

      freut mich, dass die Anleitung weitergeholfen hat. Ja das sollte gehen. Du kannst mehrere Aktionen auf einen Schalter legen. So habe ich zum Beispiel Landing Lights, Taxi Lights, und Runway Turnoff Lights auf einem Kippschalter. Zusätzlich kannst du auch, pro Flugmodell eine unterschiedliche Konfiguration anlegen.
      Der Logitech Yoke, ehemals Saitek, ist eine guter Einstieg und eine gute Grundlage. Zu dem gibt es hier noch einen kleinen Artikel. Wenn du dort auf den Link klickst und ihn bei Amazon kaufst, werde ich geringfügig am Kaufpreis beteiligt. Dadurch kann ich die Server- & Domain kosten decken.

      Gruß Moritz

  3. Veröffentlich von Martin am 14. Juni 2019 um 8:52

    Hallo!
    Danke für die perfekte Anleitung!
    Eine Frage hätte ich da noch:
    Die Programmierung der Schalter, welche dann in der Position bleiben, funktioniert ziemlich gut – wie muss ich aber vorgehen, wenn ich federgelagerte Schalter habe, die wieder in ihre Ausgansposition zurück springen?
    Wäre sehr fro, wenn mir da jemand helfen könnte!

    Gruß, Martin

    • Veröffentlich von Moritz am 15. Juni 2019 um 10:35

      Hey Martin,
      das hängt etwas mit der Funktion zu tun, die du suchst. Möchtest du z.B. den Engine Starter betätigen, solange der Knopf ‚gedrückt‘ ist? Was genau stellst du dir vor?
      Ach vielen Dank für dein Lob.
      Schönes Wochenende
      Moritz

  4. Veröffentlich von Martin am 15. Juni 2019 um 12:34

    Hy!
    Danke für die schnelle Antwort…..ich habe mich etwas zu unpräzise ausgedrückt – folgendes Problem habe ich:
    Ich habe den x55 Rhino von Saitek und möchte die Funktionen für die FF767 programmieren. Jetzt habe ich am Throttle die silbernen Kippschalter und möchte sie als Landelichter programmieren – funktioniert aber nur begrenzt – jedes mal wenn ich dann den schalter betätige gehen die Lichter zwar an, aber dadurch, dass die Schalter des Throttles wieder in die Ausgangsposition zurückkehren, schalten sich auch die Landelichter sofort wieder aus……und leider kenne ich mich mit der Programmierung nicht so gut aus, deshalb kann es leicht sein, dass ich etwas falsch mache……danke einstweilen für deine Hilfe!
    Lg. Martin

  5. Veröffentlich von Christian Bayer am 28. Juli 2019 um 15:22

    Hi,

    ist echt eine gute Anleitung, aber irgendwie stoppt mein Lua immer…Ich möchte die ENG-Anti-ICE 1 auf einen knopf legen, aber irgendwo ist der Wurm drin. Hast du eine Idee?

    if PLANE_ICAO == „B738“ then
    — ENG Anti-ICE 1
    create_switch(979, „sim/cockpit/switches/anti_ice_inlet_heat“, 0, 1, 0)
    create_switch(979, „sim/cockpit/switches/anti_ice_inlet_per_enginge=[0/8]“, 0, 1, 0)
    create_switch(979, „sim/cockpit/switches/anti_ice_inlet_per_enginge=[0/8]“, 0, 1, 0)
    end

    Gehr irgendwie nicht.

    VG

    • Veröffentlich von Moritz am 2. August 2019 um 20:04

      Hi,

      sieht erstmal richtig aus. Ich würde vorschlagen, die Funktion Write a Debug File von FlyWithLua zu nutzen und dieses dann auszulesen. Vielleicht erfährst du da mehr.

      Gruß

  6. Veröffentlich von Patrick Schmid am 6. August 2019 um 3:35

    Hi ich hane ganz viele fragen und zwar komme ich nicht so ganz draus ich hane 4 arcaze module und möchte beide benutzen? Wie kann ich den die on off on schalter benützen und die on on schalter?

  7. Veröffentlich von Patrick Schmid am 6. August 2019 um 3:37

    Ah ich möchte dies mit der zibmod 737 machen

Hinterlassen Sie einen Kommentar