Difference between revisions of "LlSay/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 848922 by Mako Nozaki (Talk))
Line 1: Line 1:
{{LSL_Function/ja
{{LSL_Function/chat/ja|channel|msg}}{{LSL_Function/ja
|func_id=23
|func_id=23
|func_sleep=0.0
|func_sleep=0.0
Line 7: Line 7:
|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=整数で指定された '''channel''' のチャネル上で、文字列で指定された '''msg''' を発言します。
|return_text
|return_text
|spec
|spec
|constants={{LSL Constants/Chat/ja}}
|constants
|caveats=*テキストは1024byteまでを最大値とします。
|caveats=
*llSayの口語供述は、発しているオブジェクトの20メートル内でのみ聞き取ることができます。
*発言されたテキストは、 (ルートプリムでなく) 発言元プリムから 20 メートル以内でのみ聞くことができます。これは {{LSLG/ja|listen}} の動作と反対で、ルートプリムが聞くことができれば、また、ルートプリムが聞くことのできる場合のみ、メッセージはオブジェクトの中のどのプリムでも聞くことができます。
*プリム自身は聞き取ることができませんが、再帰問題の防止のためです。
*テキストは 1024 バイトが最大です。
*プリムは自分自身の発言を聞き取れません。これは再帰処理にまつわる問題を防ぐためです。
|examples=<lsl>default
|examples=<lsl>default
{
{
     state_entry()
     state_entry()
     {
     {
         llSay(0,"This is an incredibly useless program." );
         llSay(0,"Hello 、Avatar!");
     }
     }
}</lsl>
}</lsl>
オブジェクトが周囲にスパムとなるのを防ぐため、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}}|PUBLIC_CHANNEL でスパムしないよう、オーナーだけにチャットを送ります}}
{{LSL DefineRow||[[llWhisper/ja|llWhisper]]|10メートルを限度としてチャットを送信します}}
{{LSL DefineRow||{{LSLG/ja|llRegionSay}}|地域全体にチャットを送ります}}
{{LSL DefineRow||[[llShout/ja|llShout]]|100メートルを限度としてチャットを送信します}}
{{LSL DefineRow||{{LSLG/ja|llShout}}|100 メートルに限定したチャットを送ります}}
{{LSL DefineRow||[[llInstantMessage/ja|llInstantMessage]]|}}
{{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です) 例
* デバッグ用には、 llInstantMessage 、llOwnerSay 、{{#var:DEBUG_CHANNEL}} を使用することを検討してください。 {{#var:DEBUG_CHANNEL}} が '''channel''' に指定されると、スクリプトは '''msg''' をスクリプト警告/エラー・ウィンドウに発言します。
* あるオブジェクトが他のオブジェクトに何かを「発言」するときは (例えば、ボタンがタッチされたとき、ランプがオンになる) 、大きなマイナス域のチャンネルを使うのはいい案です。
<lsl>
<lsl>
     llSay(-5243212,"turn on");
     llSay(-5243212,"turn on");
</lsl>
</lsl>
アバタがマイナス域のチャンネル上でチャットをするのは不可能で、何らかのほかのオブジェクトが、そのようなチャンネル上で偶然何かを発言してしまうことは滅多にありえません。(もちろん、メッセージのあて先がこのチャンネル上で'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
|cat2
|cat2=Chat
|cat3
|cat3
|cat4
|cat4
}}
}}

Revision as of 18:38, 8 May 2010

要約

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

整数で指定された channel のチャネル上で、文字列で指定された msg を発言します。

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

警告

  • 発言されたテキストは、 (ルートプリムでなく) 発言元プリムから 20 メートル以内でのみ聞くことができます。これは listen の動作と反対で、ルートプリムが聞くことができれば、また、ルートプリムが聞くことのできる場合のみ、メッセージはオブジェクトの中のどのプリムでも聞くことができます。
  • テキストは 1024 バイトが最大です。
  • プリムは自分自身の発言を聞き取れません。これは再帰処理にまつわる問題を防ぐためです。

サンプル

<lsl>default {

   state_entry()
   {
       llSay(0,"Hello 、Avatar!");
   }

}</lsl>

オブジェクトが周囲にスパムとなるのを防ぐため、 llOwnerSayllInstantMessage を使いましょう。

注意点

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

<lsl>

   llSay(-5243212,"turn on");

</lsl>

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

関連項目

イベント

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

関数

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

記事

•  Hello Avatar

特記事項

Search JIRA for related Issues

Signature

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