Difference between revisions of "Email/ja"
< Email
Jump to navigation
Jump to search
(Add parameter descriptions) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Event/ja | {{Issues/SVC-23}}{{LSL_Event/ja | ||
|event_id=21|event_delay | |event_id=21|event_delay | ||
|event=email | |event=email | ||
|p1_type=string|p1_name=time|p1_desc= | |p1_type=string|p1_name=time|p1_desc=<code>(string){{LSLG/ja|llGetUnixTime}}</code> の書式で指定|p1_hover=(string)llGetUnixTime の書式で指定 | ||
|p2_type=string|p2_name=address|p2_desc | |p2_type=string|p2_name=address|p2_desc | ||
|p3_type=string|p3_name=subject|p3_desc | |p3_type=string|p3_name=subject|p3_desc | ||
|p4_type=string|p4_name=message|p4_desc | |p4_type=string|p4_name=message|p4_desc | ||
|p5_type=integer|p5_name=num_left|p5_desc=キューに残っているメールの数。 | |p5_type=integer|p5_name=num_left|p5_desc=キューに残っているメールの数。{{Footnote|処理中のメールは既にキューから取り出されているためカウントしない。}}|p5_hover=キューに残っているメールの数。 | ||
|event_desc= | |event_desc={{LSLG/ja|llGetNextEmail}} の呼び出しの結果、メールのキューの中に条件にヒットしたメールがある場合発生します。 | ||
|event_footnote= | |event_footnote=メールのキューはプリム単位に用意され、プリム内のどのスクリプトもそれにアクセスできます。<br/>プリムのメールアドレスは、その UUID に "@lsl.secondlife.com" を加えたもので、<code>{{LSLG/ja|llGetKey}}() + "@lsl.secondlife.com"</code> という具合になります。{{Footnote|1=プレビューグリッドのメールアドレスは違った形式になります: <code style="font-size: 123%;">{{LSLG/ja|llGetKey}}() + "@lsl." + grid + ".lindenlab.com"</code>; メインのベータグリッドならば grid の部分に {{String|aditi}} が入ります。|2=プレビューグリッドのメールアドレスは違った形式になります: llGetKey() + {{String|@lsl.}} + grid + {{String|.lindenlab.com}}; メインのベータグリッドならば grid の部分に {{String|aditi}} が入ります。}} | ||
|constants | |constants | ||
|spec= | |spec= | ||
email イベントは {{LSLG/ja|llGetNextEmail}} の結果、 {{LSLG/ja|llGetNextEmail}} で指定された検索条件に一致するメールがある場合に発生します。最初に検索条件にヒットしたメールはメールキューから削除され、そのデータはこのイベントの引数として渡されます。検索条件にヒットするメールがなく、キューが空でない場合は、イベントは発生しません。フィルタの結果によるもの以外は、メールキューは {{HoverText|FIFO|First In First Out: 先入れ先出し}} となります。 | |||
|caveats= | |caveats= | ||
* | * メールキューは最大 100 通で、それ以降のメールは返送されます。 | ||
* | * メッセージフィールドにはシングルバイト換算で最大 1000 文字まで入ります。これにはヘッダ情報 ('''address''', '''subject''' など) も含みます。 | ||
* SL | * {{LSLG/ja|llEmail|SL の中から送信されたメール}} では、メッセージの先頭に送信元プリムの詳細が載ったヘッダがつきます。詳細は {{LSLG/ja|llEmail}} を参照してください。 | ||
* | * バグ {{Jira|SVC-23}} (2005 年から存在) により、地域が再起動されたりオブジェクトが地域の境界線をまたいだりするまでは、オブジェクトが電子メールを全く受信できないことがあります (スクリプトのリセットでも駄目です) 。送信された電子メールは再起動/地域間移動したあと、徐々に受信されていきます。このため、この関数を信頼できる SIM 間メッセージング手段と思ってはいけません。 | ||
|constants | |constants | ||
|examples=< | |examples=<source lang="lsl2">default | ||
{ | { | ||
state_entry() | state_entry() | ||
Line 33: | Line 33: | ||
{ | { | ||
if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com") | if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com") | ||
{//SL | {//メッセージは SL の中から送信されました。この例ではヘッダを取り除くだけにします。 | ||
message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1); | message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1); | ||
} | } | ||
Line 42: | Line 42: | ||
llGetNextEmail("", ""); | llGetNextEmail("", ""); | ||
} | } | ||
}</ | }</source> | ||
|helpers | |helpers | ||
|also_header | |also_header | ||
|also_events | |also_events | ||
|also_functions={{LSL DefineRow|| | |also_functions={{LSL DefineRow||{{LSLG/ja|llEmail}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetNextEmail}}|}} | ||
|also_articles | |also_articles | ||
|also_footer | |also_footer | ||
|notes= | |notes= | ||
SL | SL 内から送信されたメールの処理方法についてヒントがあります。 [[llEmail/ja#Prim2Prim_Email|llEmail]] を参照してください。 | ||
|mode | |mode | ||
|deprecated | |deprecated |
Latest revision as of 09:01, 21 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
説明
イベント: email( string time, string address, string subject, string message, integer num_left ){ ; }21 | イベント ID |
llGetNextEmail の呼び出しの結果、メールのキューの中に条件にヒットしたメールがある場合発生します。
• string | time | – | (string)llGetUnixTime の書式で指定
|
|
• string | address | |||
• string | subject | |||
• string | message | |||
• integer | num_left | – | キューに残っているメールの数。[1] |
メールのキューはプリム単位に用意され、プリム内のどのスクリプトもそれにアクセスできます。
プリムのメールアドレスは、その UUID に "@lsl.secondlife.com" を加えたもので、llGetKey() + "@lsl.secondlife.com"
という具合になります。[2]
仕様
email イベントは llGetNextEmail の結果、 llGetNextEmail で指定された検索条件に一致するメールがある場合に発生します。最初に検索条件にヒットしたメールはメールキューから削除され、そのデータはこのイベントの引数として渡されます。検索条件にヒットするメールがなく、キューが空でない場合は、イベントは発生しません。フィルタの結果によるもの以外は、メールキューは FIFO となります。
警告
- メールキューは最大 100 通で、それ以降のメールは返送されます。
- メッセージフィールドにはシングルバイト換算で最大 1000 文字まで入ります。これにはヘッダ情報 (address, subject など) も含みます。
- SL の中から送信されたメール では、メッセージの先頭に送信元プリムの詳細が載ったヘッダがつきます。詳細は llEmail を参照してください。
- バグ SVC-23 (2005 年から存在) により、地域が再起動されたりオブジェクトが地域の境界線をまたいだりするまでは、オブジェクトが電子メールを全く受信できないことがあります (スクリプトのリセットでも駄目です) 。送信された電子メールは再起動/地域間移動したあと、徐々に受信されていきます。このため、この関数を信頼できる SIM 間メッセージング手段と思ってはいけません。
サンプル
default
{
state_entry()
{
llSetTimerEvent(5.0);
}
timer()
{
llGetNextEmail("", "");
}
email( string time, string address, string subject, string message, integer num_left )
{
if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com")
{//メッセージは SL の中から送信されました。この例ではヘッダを取り除くだけにします。
message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1);
}
llSay(0, message);
if(num_left)
llGetNextEmail("", "");
}
}
注意点
SL 内から送信されたメールの処理方法についてヒントがあります。 llEmail を参照してください。
参考情報
関数
• | llEmail | |||
• | llGetNextEmail |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。