NScripterの深淵

NScripter/NSLua/Lua5.1/関連プログラム

▼メニュー

ゴブリンでもわかるNSLua/Lua5.1 第1回:もうちょっと導入

NScripterからLuaが呼び出されるタイミング

大別して3種類ある。

Lua言語それ自体についてのチュートリアル以前に、「いつ呼び出される/呼び出せるのか」という前提を確認しておく。

①「system.luaに記述されたLuaスクリプトが、定義節終了時に自動で読み込み・実行される」

----------00.txt------------------- 
*define 
game ;ここでsystem.luaが読み込まれる 
*start ;実行節の処理
 -----------system.lua--------------- 
--ここで何かを処理。通常はluasub命令の定義など

「system.luaの自動読み込み/実行完了までは定義節」となる。

NScripterから呼び出すためのLua関数を定義する

・system.luaからさらに別のluaファイル/プラグインを呼び出す

大抵はこうした処理を行う。

②「Luaに記述された関数を、NScripter命令として呼び出す」

----------00.txt-------------------
*define
game
*start
testtest ;NSCOM_testtest()関数が呼び出される

-----------system.lua---------------
--■testtest命令を実行すると呼び出される
NSExec("luasub testtest")
function NSCOM_testtest()
    --ここで何かを処理
end

NScripter本体におけるdefsub(新規命令定義)と同じ役割。「呼び出す先がNScripterラベルではなく、Lua関数である」点だけが異なる。本体スクリプトと異なるファイルに書かなきゃいけないのは面倒に思えるかもしれないが、基本的にLuaという言語の利便性が手間を上回るので安心してよい。

③「Luaに記述された関数が、NScripterの特定の動作に反応して自動で呼び出される(コールバック)」

----------00.txt-------------------
*define
game
*start
savegame 1 ;セーブ実行直前にNSCALL_save()関数が呼び出される

-----------system.lua---------------
--■セーブ直前に自動で呼び出される
NSExec("luacall save")
function NSCALL_save()
    --ここで何かを処理
end

システムカスタマイズと同じ動作だが、システムカスタマイズより割り込める動作の種類が多い。個々のコールバック解説は[ここに書いた]ので、Luaチュートリアルを終えてからあらためて覗くとよい。

これでNScripterからLuaを呼び出す道筋がついた。次回からLuaチュートリアル