Jaggo 16 Posted March 25, 2015 Share Posted March 25, 2015 Moin Moin Ich lese mich gerade in Lua ein und wollte etwas ausprobieren, weiß aber nicht ob es überhaupt geht. Ich würde gern über ein Script folgende Dataref... Sim/cockpit2/switches/Instrument_brightness_ratio=[6/16] Die Dataref Array bewegt sich zwischen 0.0 und 1.0. Ich würde sie gerne in 0.1 Schritten verstellen. ...als Kommando in X-Plane verfügbar machen (Auswahl im normalen key commands), damit ich es denn mappen kann. Wie stelle ich das am besten an? Für Tipps bin ich sehr dankbar. Link to comment Share on other sites More sharing options...
X-Friese 34 Posted March 25, 2015 Share Posted March 25, 2015 Schau dir mal das Script "alt_set_1000.lua" an: https://github.com/X-Friese/FlyWithLua/blob/master/FlyWithLua/Scripts%20(disabled)/alt_set_1000.lua Da ist ein ähnliches Problem für den Autopiloten gelöst worden. Deine Lösung sähe so aus: dataref("InstBrt6", "sim/cockpit2/switches/instrument_brightness_ratio", "writable", 6) -- create a command to increase the brightness by 0.1 create_command("FlyWithLua/instruments/increase_brightness", "Increase the brightness by 0.1", [[InstBrt6 = InstBrt6 + 0.1 if InstBrt6 > 1.0 then InstBrt6 = 1.0 end]], "", "") -- create a command to decrease the brightness by 0.1 create_command("FlyWithLua/instruments/decrease_brightness", "Decrease the brightness by 0.1", [[InstBrt6 = InstBrt6 - 0.1 if InstBrt6 < 0.0 then InstBrt6 = 0.0 end]], "", "") Die dataref() Funktion braucht als zusätzliches Argument den Index bei einem Array. Als Alternative kann man auch dataref_table() verwenden, dann würde man es mit Index im Script ansprechen, z. B. als: InstBrt = dataref_table("sim/cockpit2/switches/instrument_brightness_ratio") -- create a command to increase the brightness by 0.1 create_command("FlyWithLua/instruments/increase_brightness", "Increase the brightness by 0.1", [[InstBrt[6] = InstBrt[6] + 0.1 if InstBrt[6] > 1.0 then InstBrt[6] = 1.0 end]], "", "") -- create a command to decrease the brightness by 0.1 create_command("FlyWithLua/instruments/decrease_brightness", "Decrease the brightness by 0.1", [[InstBrt[6] = InstBrt[6] - 0.1 if InstBrt[6] < 0.0 then InstBrt[6] = 0.0 end]], "", "") Zu beachten ist, dass man nun einen Zweizeiler benötigt, da man ja den Wertebereich 0.0..1.0 nicht verlassen darf/sollte. Mehrere Zeilen in einen String geht am einfachsten mit der [[ ]] Einklammerung. http://lua-users.org/wiki/StringsTutorial DataRef Tabellen werden im Handbuch erst ab Seite 73 in Kapitel 11 erklärt. Es ist die fortschrittlichste Zugriffsweise auf DataRefs, insbesondere auf Arrays. Link to comment Share on other sites More sharing options...
Jaggo 16 Posted March 26, 2015 Author Share Posted March 26, 2015 Hey Carsten. Eigentlich wollte ich nur eine kurze Antwort zur Machbarkeit und vielleicht einen dezenten Hinweise im Handbuch, aber hier wird gleich ein fertiger Code geliefert. Wahnsinn! Danke... Damit komme ich auf jeden Fall weiter. Link to comment Share on other sites More sharing options...
Jaggo 16 Posted March 26, 2015 Author Share Posted March 26, 2015 Funktioniert bestens. Dankeschön. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.