里々CK Luaとの連携
里々CKでは、Luaというスクリプト言語を使うことができます。
Luaの都合上UTF-8のファイルしか現状扱えないので注意が必要です。
また、さくらスクリプトでよく使われる「\」はLuaでは特殊な扱いをされるため「\」と書きます。
ひとまずは、仕様のみを記載しています。
ghost/master フォルダに「ghost.lua」というファイルを配置して、その中に記述することで使えるようになります。
里々CKではこれらの関数がLuaの標準ライブラリの他に存在します。
DoFile(ファイル名)
ghost/master フォルダを起点として指定のLuaスクリプトを実行(ロード)します。
※この関数は里々CK 004以降使わなくてもよくなりました。
里々から呼び出したLua関数がreturnで返した戻り値がそのまま使われるようになりました。
returnが無い、もしくはreturnにnilを渡した場合だけ、互換動作としてSetReturn()の値が使われます。
SetReturn(戻り値)
里々から呼び出されたLuaの関数の戻り値を設定します。
ExistVariable(変数名)
変数名に指定した名前の変数が、里々側にあるかをtrue/falseで返します。
GetVariable(変数名)
変数名に指定した里々の変数の内容を文字列で返します。
存在しない変数の場合はnilが返ります。
SetVariable(変数名,値)
変数名に指定した里々の変数に値を設定します。
ExecuteSatori(文字列)
文字列に指定した里々スクリプトを実行します。
「$」や「@」などの行単位で使われる命令は使えません。
GetSatoriDir()
末尾に\のついた里々のベースパス、ghost/masterフォルダの絶対パスを返します。
この里々の関数でLuaの関数を呼び出すことができます。
(lua,関数名,引数...)
里々:
:(lua,TestFunction,りんご)
Lua:
function TestFunction(item)
SetReturn( item .. "を手に入れた!")
end
これを実行すると「りんごを手に入れた!」と言います。
「ShioriEventHandler_イベント名」という名前の関数がLua側に存在すると、「イベント名」部分と同じ名前のイベントが発生した場合に里々の辞書よりも先にLuaの関数が呼びだされます。
関数に引数をつけた場合は、Reference0から順に渡されます。
関数の戻り値がnil以外なら、里々の辞書の呼び出しがスキップされて、設定した戻り値がそのまま辞書の実行結果の代わりとして使われます。
例:
function ShioriEventHandler_OnGhostChanged(name)
SetReturn("\\0" .. name .. "さんから交代しました。" )
end
この例だと、ゴースト交代時にトークをするようになります。