ソラマメブログ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 0人
プロフィール
bararaika
オーナーへメッセージ

2008年11月19日

なるほどー

llRequestInventoryData と dataserver について

ちょっといじってみたためメモ追加。

   ~~~~省略~~~~
for (a = 0 ; a < lm_number ; a++){
lm_name = llGetInventoryName(INVENTORY_LANDMARK, a);
request_id = llRequestInventoryData(lm_name);
llOwnerSay("えんぷち");
~~~~省略~~~~
}
dataserver(key query_id, string data){
llOwnerSay("でーたさーばー");
~~~~省略~~~~


ナニがしたいかというと 自分のイベントリの中のLMの座標を複数個List配列にいれようとおもいました。
この実行結果が

[20:45] Object: えんぷち
[20:45] Object: えんぷち
[20:45] Object: えんぷち
[20:45] Object: えんぷち
[20:45] Object: でーたさーばー
[20:45] Object: でーたさーばー
[20:45] Object: でーたさーばー
[20:45] Object: でーたさーばー

と 上4回処理して そのイベント終了後に
まとめてでーたさーばーへAccessしてました。

毎回聞きにいっていると思ったのでコレは発見
これは ないよう変更をしないと動かないですね。。

教訓。
llRequestInventoryData は イベント終了後まとめて聞きにいく。


同じカテゴリー(メモ書き)の記事
 UUID メモ (2008-10-12 18:23)
 本当は書かない方がいいのかな? (2008-02-18 16:01)
Posted by bararaika at 13:50│Comments(1)メモ書き
この記事へのコメント
まとめて聞きに行くというよりも、イベント処理中は、他のイベントは、イベントキューに貯まっている、ですね。試しに同じオブジェクトに、dataserver()だけを処理する別スクリプトをいれておくと、リクエスト直後に、dataserverイベントが起きているのが確認できます。
Posted by あ at 2008年12月31日 15:50
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。