ローカル宣言を行なう場所に対しての注意
local a = "test"

luasub("test")
function NSCOM_test ()
NSExec('caption "'..a..'"')
end

--local a = "test"


 上記Luaスクリプトにおいて、上のlocal aをコメントアウトして、反対に下にあるlocal aのコメントアウトを外すと、エラーになります。どうやら、関数宣言より下にあるローカル宣言は、関数内からは見えないようで。test命令が呼び出されるのはNScripter側、つまりLuaスクリプトを全て読み込んだ後なので、ちゃんと変数aに値がセットされるものだと思ったのですが。ちなみに上記Luaスクリプトからlocalを外して通常の代入文にした場合は、上でも下でも普通に動きます。うーん、これってLuaリファレンス読めば書いてあるんだろうか。
 スクリプト中でローカル宣言をベタ書きする(関数外に書く)場合は、順番に注意が必要ですね。とりあえず、ローカル宣言はファイルの先頭にまとめて書いてしまった方がいいと思います。
[PR]
by lyricist_m | 2009-07-15 23:50 | NSLua
<< 新ボタン命令によるシステムカス... bexecをキーアップに対応させる >>