Difference between revisions of "LlSay/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (カテゴリ変更)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{LSL_Function/ja
{{LSL_Function/ja
|inject-2={{LSL_Function/chat/ja|channel|msg}}
|func_id=23
|func_id=23
|func_sleep=0.0
|func_sleep=0.0
Line 7: Line 8:
|p1_type=integer|p1_name=channel
|p1_type=integer|p1_name=channel
|p2_type=string|p2_name=msg
|p2_type=string|p2_name=msg
|func_desc=integer '''channel'''にて渡されるチャンネル上でstring '''msg'''にて渡されるテキストを発言します。
|func_desc= '''msg''' で指定された内容を '''channel''' で指定されたチャネルで発言します。
|return_text
|return_text
|spec
|spec
|constants={{LSL Constants/Chat/ja}}
|constants
|caveats=*テキストは1024byteまでを最大値とします。
|caveats=
*llSayの口語供述は、発しているオブジェクトの20メートル内でのみ聞き取ることができます。
*チャンネルゼロおよびデバッグチャネル上で送信されるメッセージは、所有者/ユーザーごと、地域ごとに、200/10秒のレートに制限されます。
*プリム自身は聞き取ることができませんが、再帰問題の防止のためです。
*制限レートを越えると送信頻度が200/10秒未満に戻るまでチャンネルゼロおよびデバッグチャネル上で送信されるメッセージは削除されます。
|examples=<lsl>default
*発言されたテキストは、 (ルートプリムでなく) 発言元プリムから 20 メートル以内でのみ拾うことができます。これは {{LSLG/ja|listen}} の動作と反対です。つまり、ルートプリムが拾うことができれば、ルートプリムが拾うことのできる場合のみ、メッセージはオブジェクトの中の他のプリムでも拾うことができます。
*テキストは 1024 バイトが最大です。(文字数の場合ASCII文字で1024文字、漢字などUTF-8では512文字)
*プリムは自分自身の発言を聞き取れません。これは再帰処理にまつわる問題を防ぐためです。
|examples=<source lang="lsl2">default
{
{
     state_entry()
     state_entry()
     {
     {
         llSay(0,"This is an incredibly useless program." );
         llSay(PUBLIC_CHANNEL, "あっ、どうも!今日はー");
     }
     }
}</lsl>
}</source>
オブジェクトが周囲にスパムとなるのを防ぐため、llOwnerSayかllInstantMessageを使いましょう。
オブジェクトが周囲にスパムとなるのを防ぐため、 {{LSLG/ja|llOwnerSay}} か {{LSLG/ja|llInstantMessage}} を使いましょう。
|helpers
|helpers
|also_events=
|also_events=
{{LSL DefineRow||[[listen/ja|listen]]|}}
{{LSL DefineRow||{{LSLG/ja|listen}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|チャットを受信します}}
|also_functions=
|also_functions=
{{LSL DefineRow||[[llListen/ja|llListen]]|}}
{{LSL DefineRow||{{LSLG/ja|llListen}}|listen イベントを要求します}}
{{LSL DefineRow||[[llOwnerSay/ja|llOwnerSay]]|[[PUBLIC_CHANNEL/ja|PUBLIC_CHANNEL]]でのスパムを避けるためにオーナにのみチャットを送信します}}
{{LSL DefineRow||{{LSLG/ja|llInstantMessage}}|{{#var:PUBLIC_CHANNEL}} でスパムしないよう、オーナー (や他のユーザ) にのみチャットを送ります}}
{{LSL DefineRow||[[llRegionSay/ja|llRegionSay]]|リージョン範囲でチャットを送信します}}
{{LSL DefineRow||{{LSLG/ja|llOwnerSay}}|{{#var:PUBLIC_CHANNEL}} でスパムしないよう、オーナーだけにチャットを送ります}}
{{LSL DefineRow||[[llWhisper/ja|llWhisper]]|10メートルを限度としてチャットを送信します}}
{{LSL DefineRow||{{LSLG/ja|llRegionSay}}|地域全体にチャットを送ります}}
{{LSL DefineRow||[[llShout/ja|llShout]]|100メートルを限度としてチャットを送信します}}
{{LSL DefineRow||{{LSLG/ja|llRegionSayTo}}|特定のアバターやオブジェクトに限定し地域全体の範囲でチャットを送ります}}
{{LSL DefineRow||[[llInstantMessage/ja|llInstantMessage]]|}}
{{LSL DefineRow||{{LSLG/ja|llShout}}|100 メートルに限定したチャットを送ります}}
{{LSL DefineRow||{{LSLG/ja|llWhisper}}|10 メートルに限定したチャットを送ります}}
|also_tests
|also_tests
|also_articles
|also_articles={{LSL DefineRow||{{LSLG/ja|Hello Avatar}}}}
|notes=
|notes=
デバッグ目的では、[[llOwnerSay/ja|llOwnerSay]]か{{LSL Const/ja|DEBUG_CHANNEL|integer|hex=0x7FFFFFFF}}を使うことも考慮しましょう。
* チャンネル {{HoverText|0|ゼロ}} は {{#var:PUBLIC_CHANNEL}} です。このチャンネルで伝達されたチャットはみんな聞くことができます。他のチャンネルはみなプライベートチャンネル ({{#var:DEBUG_CHANNEL}} 以外は、ユーザには送られない) です。
一つのオブジェクトが他のオブジェクトに何か'発言する'場合(例えば、ボタンがタッチされたとき、ランプがオンになる)、大きなマイナス域のチャンネルを使うのはいい案です(最大マイナス域での32bit integerで、これ以上はありえないマイナス域とすれば、-2,147,483,64です) 例
* デバッグ用には、 {{#var:llInstantMessage}} 、{{#var:llOwnerSay}} 、{{#var:DEBUG_CHANNEL}} を使用することを検討してください。 {{#var:DEBUG_CHANNEL}} が '''channel''' に指定されると、スクリプトは '''msg''' をスクリプト警告/エラー・ウィンドウに発言します。
<lsl>
* あるオブジェクトが他のオブジェクトに何かを「発言」するときは (例えば、ボタンがタッチされたとき、ランプがオンになる) 、大きなマイナス域のチャンネルを使うのはいい案です。
<source lang="lsl2">
     llSay(-5243212,"turn on");
     llSay(-5243212,"turn on");
</lsl>
</source>
アバタがマイナス域のチャンネル上でチャットをするのは不可能で、何らかのほかのオブジェクトが、そのようなチャンネル上で偶然何かを発言してしまうことは滅多にありえません。(もちろん、メッセージのあて先がこのチャンネル上で'listen'を設定しなければならないでしょう。)
 
DEBUG_CHANNELがチャンネルで用いられている場合、スクリプトはScript Warning/Errorウィンドウにてmsgを発言するでしょう。
マイナスのチャンネルはスクリプトのコミュニケーションで広く使われています。クライアントはこれらのチャンネルで直接チャットできないからです ("/-xxxx message" は "message" をチャネル "-xxxx" で発言せず、チャンネル 0 で "/-xxxx message" と発言します)。 {{LSLG/ja|llTextBox}} が導入される前、これを行う唯一の方法は、24 バイトまでの制限で {{LSLG/ja|llDialog}} を使う方法でした。
0を''channel''に使われている場合、スクリプトは一般チャットで誰もが見ることができる''msg''を発言するでしょう。全てのほかのintegerはプライベートチャンネルです。
|cat1
|cat1=Communications/ja
|cat2
|cat2=Chat/ja
|cat3
|cat3
|cat4
|cat4
}}
}}

Latest revision as of 14:52, 12 May 2016

要約

関数: llSay( integer channel, string msg );

msg で指定された内容を channel で指定されたチャネルで発言します。

• integer channel 出力チャネル、任意の整数
• string msg 送信するメッセージ
チャネル定数 説明
DEBUG_CHANNEL 0x7FFFFFFF スクリプトのデバッグメッセージとエラーメッセージを受け取るチャットチャネル
PUBLIC_CHANNEL 0x0 近くのユーザ全員にブロードキャストされるチャットチャネル

警告

  • チャンネルゼロおよびデバッグチャネル上で送信されるメッセージは、所有者/ユーザーごと、地域ごとに、200/10秒のレートに制限されます。
  • 制限レートを越えると送信頻度が200/10秒未満に戻るまでチャンネルゼロおよびデバッグチャネル上で送信されるメッセージは削除されます。
  • 発言されたテキストは、 (ルートプリムでなく) 発言元プリムから 20 メートル以内でのみ拾うことができます。これは listen の動作と反対です。つまり、ルートプリムが拾うことができれば、ルートプリムが拾うことのできる場合のみ、メッセージはオブジェクトの中の他のプリムでも拾うことができます。
  • テキストは 1024 バイトが最大です。(文字数の場合ASCII文字で1024文字、漢字などUTF-8では512文字)
  • プリムは自分自身の発言を聞き取れません。これは再帰処理にまつわる問題を防ぐためです。

サンプル

default
{
    state_entry()
    {
        llSay(PUBLIC_CHANNEL, "あっ、どうも!今日はー");
    }
}
オブジェクトが周囲にスパムとなるのを防ぐため、 llOwnerSayllInstantMessage を使いましょう。

注意点

  • チャンネル 0PUBLIC_CHANNEL です。このチャンネルで伝達されたチャットはみんな聞くことができます。他のチャンネルはみなプライベートチャンネル (DEBUG_CHANNEL 以外は、ユーザには送られない) です。
  • デバッグ用には、 、 、DEBUG_CHANNEL を使用することを検討してください。 DEBUG_CHANNELchannel に指定されると、スクリプトは msg をスクリプト警告/エラー・ウィンドウに発言します。
  • あるオブジェクトが他のオブジェクトに何かを「発言」するときは (例えば、ボタンがタッチされたとき、ランプがオンになる) 、大きなマイナス域のチャンネルを使うのはいい案です。
    llSay(-5243212,"turn on");

マイナスのチャンネルはスクリプトのコミュニケーションで広く使われています。クライアントはこれらのチャンネルで直接チャットできないからです ("/-xxxx message" は "message" をチャネル "-xxxx" で発言せず、チャンネル 0 で "/-xxxx message" と発言します)。 llTextBox が導入される前、これを行う唯一の方法は、24 バイトまでの制限で llDialog を使う方法でした。

関連項目

イベント

•  listen                 チャットを受信します

関数

•  llListen listen イベントを要求します
•  llInstantMessage PUBLIC_CHANNEL でスパムしないよう、オーナー (や他のユーザ) にのみチャットを送ります
•  llOwnerSay PUBLIC_CHANNEL でスパムしないよう、オーナーだけにチャットを送ります
•  llRegionSay 地域全体にチャットを送ります
•  llRegionSayTo 特定のアバターやオブジェクトに限定し地域全体の範囲でチャットを送ります
•  llShout 100 メートルに限定したチャットを送ります
•  llWhisper 10 メートルに限定したチャットを送ります

記事

•  Hello Avatar

特記事項

Search JIRA for related Issues

Signature

function void llSay( integer channel, string msg );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。