Skip to content

里々CK Luaとの連携

ななっち edited this page Nov 27, 2017 · 2 revisions

里々CKでは、Luaというスクリプト言語を使うことができます。
Luaの都合上UTF-8のファイルしか現状扱えないので注意が必要です。
また、さくらスクリプトでよく使われる「\」はLuaでは特殊な扱いをされるため「\」と書きます。

ひとまずは、仕様のみを記載しています。

ファイル構成

ghost/master フォルダに「ghost.lua」というファイルを配置して、その中に記述することで使えるようになります。

里々CKが定義するLuaの関数

里々CKではこれらの関数がLuaの標準ライブラリの他に存在します。

DoFile

DoFile(ファイル名)

ghost/master フォルダを起点として指定のLuaスクリプトを実行(ロード)します。

SetReturn

※この関数は里々CK 004以降使わなくてもよくなりました。
里々から呼び出したLua関数がreturnで返した戻り値がそのまま使われるようになりました。
returnが無い、もしくはreturnにnilを渡した場合だけ、互換動作としてSetReturn()の値が使われます。

SetReturn(戻り値)

里々から呼び出されたLuaの関数の戻り値を設定します。

ExistVariable

ExistVariable(変数名)

変数名に指定した名前の変数が、里々側にあるかをtrue/falseで返します。

GetVariable

GetVariable(変数名)

変数名に指定した里々の変数の内容を文字列で返します。
存在しない変数の場合はnilが返ります。

SetVariable

SetVariable(変数名,値)

変数名に指定した里々の変数に値を設定します。

ExecuteSatori

ExecuteSatori(文字列)

文字列に指定した里々スクリプトを実行します。
「$」や「@」などの行単位で使われる命令は使えません。

GetSatoriDir

GetSatoriDir()

末尾に\のついた里々のベースパス、ghost/masterフォルダの絶対パスを返します。

里々からLuaを呼び出す

lua関数で呼び出す

この里々の関数でLuaの関数を呼び出すことができます。

(lua,関数名,引数...)

里々:

:(lua,TestFunction,りんご)

Lua:

function TestFunction(item)
 SetReturn( item .. "を手に入れた!")
end

これを実行すると「りんごを手に入れた!」と言います。

イベントから直接呼び出す

「ShioriEventHandler_イベント名」という名前の関数がLua側に存在すると、「イベント名」部分と同じ名前のイベントが発生した場合に里々の辞書よりも先にLuaの関数が呼びだされます。
関数に引数をつけた場合は、Reference0から順に渡されます。
関数の戻り値がnil以外なら、里々の辞書の呼び出しがスキップされて、設定した戻り値がそのまま辞書の実行結果の代わりとして使われます。

例:
function ShioriEventHandler_OnGhostChanged(name)
 SetReturn("\\0" .. name .. "さんから交代しました。" )
end

この例だと、ゴースト交代時にトークをするようになります。