ダイアログボックスを表示する(llDialog,llListen,llListenRemove関数)
オブジェクトをクリックすると、ダイアログボックスを表示し、返ってきたメッセージにあわせてオブジェクトの色が変わるサンプルです。
下記のスクリプトを使います。
list Colors =
[ "Red", "Green","Blue" ]; integer Handle; default { touch_start(integer total_number) { Handle = llListen(123, "", "", ""); llDialog(llDetectedKey(0), "Select one color from among these.", Colors, 123); } listen(integer channel, string name, key id, string message) { if(message == "Red") { llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES); } else if(message == "Green") { llSetColor(<0.0, 1.0, 0.0>, ALL_SIDES); } else if(message == "Blue") { llSetColor(<0.0, 0.0, 1.0>, ALL_SIDES); } llListenRemove(Handle); } } |
llListen関数:llListen(integer channel, string name, key id, string msg)
一番目のパラメータ(channel) : チャットチャンネル 二番目のパラメータ(name) : 何or誰の発言を聞くか(アバターやオブジェクトの名前) 三番目のパラメータ(id) : 何or誰の発言を聞くか(アバターやオブジェクトのUUID) 四番目のパラメータ(msg) : 何という言葉を聞くか(ここに指定された言葉以外は聞きません。) 今回のサンプルTipsでは、チャンネル以外は指定してないので、チャンネル123で発言されたすべてがキャッチされます。 |
llDialog関数:llDialog(key id, string message, list buttons, integer chat_channel)
一番目のパラメータ(id) : 表示するアバターのID 二番目のパラメータ(message) : ダイアログに表示するメッセージ 三番目のパラメータ(buttons) : 選択肢ボタンに表示するラベルのリスト 四番目のパラメータ(chat_channel) : ボタンを押下時、選択結果を送信するチャットチャンネル |
llListenRemove関数:llListenRemove(integer number)
一番目のパラメータ : llListenで指定した発言を聞くのをやめる(llListenの戻り値を指定します。) |
■チャンネルについて
このサンプルでは123を使っていますが、0やマイナス値でも可能です。
サンプルの場合、チャンネル123は1以上であり(3)に該当しますので
Chatで「/123 Blue」と発言しても青色にオブジェクトは変化します。
同じチャンネル、命令で動くオブジェクトがあればそれも同時に反応します。
(1)-1以下 通常ログへ表示されない。スクリプトからの指示のみ可能。
(2) 0 通常ログへ表示 チャットとスクリプトからの指示可能。
(3) 1以上 通常ログへ表示されない。チャットとスクリプトからの指示可能。