straliasの登録と値取得を楽に。
タイトル通り。nslua側から、stralias等を楽に登録したい。
導入
末尾のスクリプトをコピペし保存する。たとえば、stralias.luaとか。で、それを読み込む。
NL_dofile("stralias.lua")
すると、以下の物が生成されるので、これらには手を加えないこと。
- stralias
- straliasを設定する命令。
- St
- straliasを取得する命令。
使い方
-- 新しいstraliasを作成する。 stralias.abc("ごらっしゃー") -- ※numaliasと違って、自動採番はできない。 -- straliasの取得 local str = St.abc -- abcを返す。この場合は"ごらっしゃー"
※Stは、stralias()で設定した以外のstraliasも扱えます。
スクリプト
do local ob1 = {} setmetatable(ob1, {__index=function(t, k) local shelter = NSGetStrValue(0) NSExec("mov $0,"..k) rawset(t, k, NSGetStrValue(0)) NSSetStrValue(0, shelter) return rawget(t, k) end}) _G.St = ob1 local ob2 = {} setmetatable(ob2, {__index=function(t, stralias) return function(str) local temp = rawget(ob1, stralias) if type(temp) == "nil" then if str then rawset(ob1, stralias, str) NSExec("stralias "..stralias..",\""..rawget(ob1, stralias).."\"") else NSOkBox("値が設定されていません。", "stralias") end else NSOkBox(stralias.."は既に定義されています。", "stralias") NSEnd() end return rawget(ob1, stralias) end end}) _G.stralias = ob2 end