Email/ja
< Email
Jump to navigation
Jump to search
Revision as of 04:33, 19 May 2010 by Mako Nozaki (talk | contribs)
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 間メッセージング手段と思ってはいけません。
サンプル
<lsl>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("", ""); }
}</lsl>
注意点
SL 内から送信されたメールの処理方法についてヒントがあります。 llEmail を参照してください。
参考情報
関数
• | llEmail | |||
• | llGetNextEmail |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。