2013年2月22日金曜日

ゴースト「tkytk」を拡張してみる その2

いっしょに立ってる他のゴーストのことも知りたい!ということで。\0名を列挙してみます。
まず。非常に恥ずかしいバグの修正から。

--NOTYFYリクエストの応答も同様に設定できる(けど設定してない)
NOTYFY={}

コメントも含めてTYPOしてます。NOTIFYですね…これを

--NOTYFYリクエストの応答も同様に設定できる(けど設定してない)
NOTIFY={}
NOTIFY.otherghostname=otherghostname

とします。otherghostnameが、他のゴースト名が通知されてくるイベントです。
次に、ファイルの一番下に

function otherghostname(tbl)
msg=""
for key,value in pairs(tbl) do
if string.find(key,"^Reference") then
p=string.find(value,string.char(1))
name=string.sub(value,1,p-1)
msg=msg..name.."\\n"
end
end
end
こんな感じで足してみます。
msgを空にした後、tblの数だけforで回します。キー名がReferenceで始まる場合だけ、名前を取り出して、msgに足します。
string.char(1)なのは、Referenceの値の区切り文字がバイト値の1だからです。
NOTIFYは戻り値を必要としないのでreturnで何かを返さずに終わります。

次に、msgの内容を確認したいので、OnKeyPressを書き換えてしまいます。
function OnKeyPress(tbl)
ret=tbl.Reference0.."が押されたわよ\\n\\n"..msg.."\\e"
return ret
end
元のメッセージの後ろにさっきのmsgをくっつけるだけです。

これで、SHIORIをリロードして何かキーを押すと、同時に立ってるゴーストの名前もしゃべってくれるようになったはずです。

ここまでのnarファイルはこちら

0 件のコメント:

コメントを投稿

Google