2007年10月24日
リンク/リッスン/ダイアログ(LSL リファレンス)
リンク系の関数/イベント
| 名称 | 種別 | 内容 |
| llMessageLinked | 関数 | 指定したリンクプリムにメッセージを送信する。 |
| link_message | イベント | リンクメッセージを受信する。 |
| llGetLinkName | 関数 | 指定したリンクプリムの名称を返す。 |
| llGetLinkNumber | 関数 | リンクされているプリムのリンクナンバーを返す。 |
| llGetNumberOfPrims | 関数 | リンクされているプリムの総数を返す。 |
| llGetLinkKey | 関数 | 指定したリンクプリムのkeyを取得する。 |
| llCreateLink | 関数 | オブジェクトをリンクする。 |
| llBreakLink | 関数 | 指定したプリムのリンクを解除する。 |
| llBreakAllLinks | 関数 | オブジェクト全てのリンクを解除する。 |
| 名称 | 種別 | 内容 |
| llListen | 関数 | リッスンモードを開始する。 |
| listen | イベント | アバターやオブジェクトの発言に反応する。 |
| 名称 | 種別 | 内容 |
| llDialog | 関数 | ダイアログを表示する。 |
llMessageLinked <機能> 指定したリンクプリムにメッセージを送信する。 link_messageイベントとペアで使用する。 llsay系コマンドとlistenを併用する方法より、40%以上高速らしい。 <構文> llMessageLinked(integer linknum, integer num, string str, key id) * linknum : メッセージの送信先プリムのリンクナンバーを指定する。以下の定数も使用可能。 * num : 送信する数値メッセージ。(特になければ0) * str : 送信する文字列メッセージ。(特になければ"") メモリーが許す範囲内であれば、送信する文字列の長さに特に制限はない。 * id : 送信するkey。(特になければNULL_KEY) [linknum定数]
| Statistical Operation | Value | linknum |
| LINK_ROOT | 1 | ルートプリム |
| LINK_SET | -1 | 全てのプリム |
| LINK_ALL_OTHERS | -2 | 自分以外の全てのプリム |
| LINK_ALL_CHILDREN | -3 | 全ての子プリム |
| LINK_THIS | -4 | 自分自身 |
link_message <機能> リンクメッセージを受信する。 llMessageLinkedコマンドとペアで使用する。 <構文> link_message(integer sender_num, integer num, string str, key id) * sender_num : 送信元プリムのリンクナンバー。 * num : 受信した数値メッセージ。 * str : 受信した文字列メッセージ。 * key : 受信したkey。 <例> // 受信メッセージを表示する。 link_message(integer sender_num, integer num, string str, key id) { llOwnerSay(str); } ページ先頭へ
llGetLinkNumber <機能> プリムのリンクナンバーを返す。 何もリンクされていなかった場合は、0を返す。 ルートプリムで実行された場合は、1を返す。 <構文> integer llGetLinkNumber() <例> // リンクナンバーを表示する。 llOwnerSay((string)llGetLinkNumber()); ページ先頭へ
llGetNumberOfPrims <機能> リンクされているプリムの総数を返す。 <構文> integer llGetNumberOfPrims() <例> // リンクプリムの総数を表示する。 llOwnerSay((string)llGetNumberOfPrims()); ページ先頭へ
llGetLinkName <機能> 指定したリンクプリムの名称を返す。 <構文> string llGetLinkName(integer linknum) * linknum : プリムのリンクナンバー <例> // リンクされている全プリムの名称を表示する。 integer i = llGetNumberOfPrims(); for (; i >= 0; --i) { llOwnerSay(llGetLinkName(i)); } ページ先頭へ
llGetLinkKey <機能> 指定したリンクプリムのkeyを取得する。 <構文> key llGetLinkKey( integer linknum ) * linknum : プリムのリンクナンバー <例> // リンクされている全プリムのkeyを表示する。 integer i = llGetNumberOfPrims(); for (; i >= 0; --i) { llOwnerSay(llGetLinkKey(i)); } ページ先頭へ
llCreateLink <機能> オブジェクトをリンクする。 * 実行には、PERMISSION_CHANGE_LINKS の権限が必要。 * アタッチしたオブジェクトでは、使用できない。 <構文> llCreateLink(key target, integer parent) * target : リンクするオブジェクトのkeyを指定する。 * parent : TRUEまたはFALSEを指定する。(TRUEの場合、自分がルートプリムになる。) ページ先頭へ
llBreakLink <機能> 指定したプリムのリンクを解除する。 * 実行には、PERMISSION_CHANGE_LINKS の権限が必要。 <構文> llBreakLink(integer linknum) * linknum : プリムのリンクナンバー。 <例> // リンクナンバー5のプリムのリンクを解除する。 llBreakLink(5); * もしこのオブジェクトに6,7番目のリンクナンバーを持つプリムがあった場合、 それらのプリムのリンクナンバーは、それぞれ5,6に振り替えられる。 ページ先頭へ
llBreakAllLinks <機能> オブジェクト全てのリンクを解除する。 * 実行には、PERMISSION_CHANGE_LINKS の権限が必要。 * アタッチしたオブジェクトでは、使用できない。 <構文> llBreakAllLinks() ページ先頭へ
llListen <機能> リッスンモードを開始する。 * リッスンモードとは、llSay等の発言を監視するモードである。 listenイベントとペアで使用する。 <構文> integer llListen(integer channel, string name, key id, string msg) * channel : リッスンするチャンネル番号を指定する。(通常のチャット画面は、チャンネル0) * name : リッスン対象とするアバターやオブジェクトの名前を指定する。("" とすると全ての名前が対象になる) * id : リッスン対象とするアバターやオブジェクトのkeyを指定する。(NULL_KEY とすると全てのkeyが対象になる) * msg : リッスン対象とするメッセージを指定する。ここで指定したメッセージ以外は全て無視される。 ("" とすると全てのメッセージが対象になる) <例> // チャンネル0番の全ての人の全ての発言をリッスンする。 handle = llListen( 0, "", NULL_KEY, "" ); * チャンネル番号が0になっているので、通常のチャット画面上に入力された発言全てが対象となる。 // チャンネル7番のオーナーの発言のみをリッスンする。 handle = llListen( 7, "", llGetOwner(), "" ); * ここでいうオーナーとは、スクリプトが動作するオブジェクトのオーナーのことである。 * チャット入力欄からチャンネル7に発言する場合は、発言の頭に /7 をつける。 このとき画面上には、発言内容は出力されない。 ページ先頭へ
listen <機能> アバターやオブジェクトの発言に反応する。 llListenコマンドとペアで使用する。 <構文> listen(integer channel, string name, key id, string message) * channel : 発言があったチャンネル番号が入る。 * name : 発言者の名前が入る。 * id : 発言者のkeyが入る。 * message : 発言者のメッセージが入る。 <例> // 発言者の名前を表示する。 listen( integer channel, string name, key id, string message ) { llOwnerSay(name); } ページ先頭へ
llDialog <機能> ダイアログを表示する。画面の右上に出現する青いダイアログである。 ・配置可能なボタン数は、最大12個。 ・listenイベントとペアで使用する。 <構文> llDialog(key id, string message, list buttons, integer chat_channel) * id:ダイアログを表示するアバターのUUIDを指定する。 * message:


