Listen/ja
< Listen
| LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
| チャネル定数 | 説明 | |
|---|---|---|
| DEBUG_CHANNEL | 0x7FFFFFFF | スクリプトのデバッグメッセージとエラーメッセージを受け取るチャットチャネル |
| PUBLIC_CHANNEL | 0x0 | 近くのユーザ全員にブロードキャストされるチャットチャネル |
警告
- ステート変更もしくはスクリプトリセット時、全てのlistenは自動で閉じられます。
- オブジェクトのオーナが変わる時、幾つかのllGetOwnerで登録されたlistenはスクリプトがリセットされるまで自身を自動で更新することはないでしょう。スクリプト製作者は以下の例を通してこの出来事を取得することができます。
- 1つのメッセージをスクリプトで登録された複数のllListenフィルタで指定している場合、一度だけイベントのみ動くでしょう。
- プリムは、自身が生成したチャットを聞くことはできません。
- listenの場所は聞いているプリム群の場所ではなく、ルートプリムの場所になります。これは人々がパーセル境界を越えて盗聴するために子プリムを使う事を阻止するためです。その他のチャットを生成する関数は子プリムの位置で呼び出している(ルートプリムの位置からではない)チャットを生成します。
サンプル
オブジェクトオーナからの何らかのチャットを聞き、一度だけ返答する、ちょっとしたサンプルです。ラグの削減と周囲のユーザのスパムを回避するため、0以外の広範囲チャンネルから選んでlistenすることと、'/5 hello'のような、選択チャンネル上でのチャットによるlistenイベントで作動することです。 <lsl>// says beep to owner the first time owner says something in main chat; integer listen_handle;
default {
state_entry()
{ //Registers the listen to the owner of the object at the moment of the call. This does not automatically update when the owner changes.
// Change 0 to another positive number to listen for '/5 hello' style of chat.
listen_handle = llListen(0, "", llGetOwner(), "");
}
listen( integer channel, string name, key id, string message )
{
llOwnerSay("beep");
// Stop listening until script is reset
llListenRemove(listen_handle);
}
on_rez(integer param)
{ //Triggered when the object is rezed, like after the object had been sold from a vendor
llResetScript();//By resetting the script on rez it forces the listen to re-register.
}
changed(integer mask)
{ //Triggered when the object containing this script changes owner.
if(mask & CHANGED_OWNER)
{
llResetScript();
}
}
}</lsl>
参考情報
関数
| • | llListen | |||
| • | llListenControl | |||
| • | llListenRemove | |||
| • | llDialog | |||
| • | llOwnerSay | – | PUBLIC_CHANNELでのスパムを避けるためオーナのみにチャットを送信します | |
| • | llWhisper | – | 10メートルを限度としてチャットを送信します | |
| • | llSay | – | 20メートルを限度としてチャットを送信します | |
| • | llShout | – | 100メートルを限度としてチャットを送信します | |
| • | llRegionSay | – | 現在のSimを限度としてチャットを送信します |
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。