BlackSheep-LSL@Wiki

llRequestAgentData

最終更新:

匿名ユーザー

- view
メンバー限定 登録/ログイン

llRequestAgentData

key llRequestAgentData(key id, integer data)

引数idに指定したUUIDを持つアバターの情報の取得要求を出す。
取得したい情報は引数dataで指定する。
アバターの情報はdataserver?イベントで通知されるが、データを識別するために戻り値のkeyを使用する。

使用例:
key qid;  // 識別用キー変数

default {
  state_entry(){
     qid = llRequestAgentData(llGetOwner(), DATA_BORN); // オーナーの生年月日を要求、要求IDをqidに保持
  }

  dataserver(key queryid, string data){
    if (qid == queryid){ // 要求IDに等しい結果が返された(=dataはオーナーの生年月日である)
      llOwnerSay("You were born on " + data);
    }
  }
}

引数idはアバターのUUIDである必要がある。オブジェクトやグループ等のUUIDを指定した場合、llRequestAgentData関数はエラーにはならないが、いつまで待ってもdataserver?イベントは起こらない(結果が返ってこない)。
引数に指定するUUIDがアバターのものかどうか不確実な場合、timer?イベントよるタイムアウトの処理等を実装すべきである。

引数dataには以下の定数のうちのどれか一つを指定する。
定数名 要求する情報
DATA_ONLINE 1 アバターがオンラインかどうか。TRUE/FALSEのいずれかが返る(要cast:integer)
DATA_NAME 2 アバター名
DATA_BORN 3 アバターの生年月日(アカウント取得日付)YYYY-MM-DDの形式で返る
DATA_RATING 4 アバターのレーティング情報(現在レーティングはなくなったので意味なし)
DATA_PAYINFO 8 アカウントタイプ(要cast:integer)

レーティング情報を要求した場合、取得できるのは6つの数字が「,」で区切られたCSV文字列であった。
各数字の意味は以下の通り。
1番目 善人度
2番目 非行の度合い
3番目 かっこ良さ
4番目 不細工度
5番目 創作センス
6番目 不器用度
バージョン1.15.0以降はレーティング情報が無くなったので、戻り値は"0,0,0,0,0,0"固定になっている。
非行の度合いが無くなったからと言って、非行に走るアバターがいなくなったわけではない、念のため。

アカウントタイプを要求した場合、取得できるのは以下の数値である(integer型にcastする必要がある)。
0 支払情報なし・取引履歴なし
1 支払情報あり・取引履歴なし
2 支払情報なし・取引履歴あり
3 支払情報あり・取引履歴あり
支払情報とは、クレジットカードの登録の有無を指す。
取引履歴とは、登録したクレジットカードを使ってL$の売買を行ったことがあるかどうかを意味していると思われる(未確認)

なお、同一SIM内にいるアバター名を取るだけであればllKey2Name関数のほうが手軽だ。

名前:
コメント:
記事メニュー
目安箱バナー