飛行機別にジョイスティックの設定を保存するというスクリプト。
例えば、作成したluaスクリプトを「Scripts」フォルダに入れて、Cessna Skyhawk を起動する。
するとこのディレクトリにファイルが Resources/plugins/FlyWithLua/initial_assignments.txt が下のように自動的に作成される。
これがジョイスティックの基本設定ファイルになる。
次に、ジョイスティックの設定が終わって、メニューから以下のように保存する。
Save joystick assignments を選択数と新しく「joystick_C172.lua」ファイルが作成される。
スロットルのカーブを変更したが、どこが変更されたかが不明。一応「C172」のファイルだけは作成された。多分変更されれば以下のどこかが変更されるのだろう。
そして次回の起動でこの設定ファイルが読み込まれてジョイスティックが設定通りに使えるということになるのだと思う。これ以上興味が無いのでここまで。
-- Resources\plugins\FlyWithLua\initial_assignments.txt を Resources\plugins\FlyWithLua\Scripts\joystick_<PLANE_ICAO>.lua にコピーします。 -- 条件付き(機体別)で、飛行機がロードされると自動的にその機体のファイルがロードされます。 -- The script can be triggered via the FlyWithLua plugin macro menu: "Save joystick assignments". -- スクリプトは、FlyWithLua プラグイン マクロ メニューの [Save joystick assignments:ジョイスティックの割り当てを保存] から実行できます。 -- インストール: Resources\plugins\FlyWithLua\Scripts にコピーして、X-Plane を再起動するか、LUA スクリプトをリロード(これではならない)します。 function copy_initial_assignments() -- まず、書き込み用のテキストファイルを開く必要があります。 local infile if SYSTEM == "IBM" then --WindowsとMac、どちらも使えるようにする。 infile = io.open("Resources\\plugins\\FlyWithLua\\initial_assignments.txt", "r") --FlyWithLuaディレクトリにinitial_assignments.txtが作成される。 else infile = io.open("Resources/plugins/FlyWithLua/initial_assignments.txt", "r") --Macの場合? -- else -- textfile = io.open("Resources:plugins:FlyWithLua:initial_assignments.txt", "r") --これでも使える? end -- まず、書き込み用のテキストファイルを開く必要があります。 local outfile if SYSTEM == "IBM" then outfile = io.open(string.format("Resources\\plugins\\FlyWithLua\\Scripts\\joystick_%s.lua", PLANE_ICAO), "w") -- 開いている機体の名前「PLANE_ICAO」を「%s」に書き込む else outfile = io.open(string.format("Resources/plugins/FlyWithLua/Scripts/joystick_%s.lua", PLANE_ICAO), "w") -- else -- textfile = io.open("Resources:plugins:FlyWithLua:initial_assignments.txt", "w") end outfile:write(string.format('if PLANE_ICAO == "%s" then\n', PLANE_ICAO)) if infile ~= nil then while true do linestring = infile:read() --infileを読み込む if linestring == nil then break end --読み込みが空になったらbraakする outfile:write(string.format(' %s\n', linestring)) --outfileに書き込む end end outfile:write("end\n") outfile:close() infile:close() end add_macro("Save joystick assignments", "save_initial_assignments(); copy_initial_assignments()")