実際に作業を行う前に、スクリプトを構成するためのインタラクティブなテキストメニューを表示するLuaスクリプトがあります。main_menu()
ユーザーが選択できるオプションを備えた関数があり、それぞれが異なるsubmenu()
関数を呼び出します。それらの異なるsubmenu()
関数のそれぞれがそれぞれのことを実行してから、関数に戻ります(呼び出します)main_menu()
。最後に、各関数には、settings
設定のテーブルである、渡されるパラメーターがあります。
物事は次のようになります。
local function submenu(settings)
-- Get user input & change a settings{} table key accordingly
main_menu(settings)
end
local function main_menu(settings)
-- Present choices & get user input
submenu(settings)
end
local settings={}
settings["foo"] = "bar"
main_menu(settings)
問題はattempt to call nil
、(私が知る限り)関数がスクリプトの後半で定義されている別の関数を呼び出すたびにエラーが発生することです。したがって、上記の例のように、を定義submenu()
してから main_menu()
、main_menu()
を呼び出すのに問題がないが、を呼び出すことsubmenu()
がsubmenu()
できない場合main_menu()
。
FWIW、これはMinecraftのComputerCraftmodで実行されています。