From Second Life Wiki
listen
イベント: listen( integer channel, string name, key id, string message ){ ; }
チャットで作動しllListenを有効にして使い、フィルタします。
| • integer
| channel
|
|
|
|
| • string
| name
|
|
|
|
| • key
| id
|
|
|
|
| • string
| message
|
|
|
|
|
|
|
注意
- ステート変更もしくはスクリプトリセット時、全てのlistenは自動で閉じられます。
- オブジェクトのオーナが変わる時、幾つかのllGetOwnerで登録されたlistenはスクリプトがリセットされるまで自身を自動で更新することはないでしょう。スクリプト製作者は以下の例を通してこの出来事を取得することができます。
|
例
オブジェクトオーナからの何らかのチャットを聞き、一度だけ返答する、些細な例です。ラグの削減と周囲のユーザのスパムを回避するため、0以外の広範囲チャンネルから選んでlistenすることと、'/5 hello'のような、選択チャンネル上でのチャットによるlistenイベントで作動することです。
// 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();
}
}
}
|
|
|
Listen