アバター/コンテンツ情報取得(LSL リファレンス)

Zero2000 Kidd

2007年11月13日 22:29



アバター系の関数/イベント

名称種別内容
llRequestAgentData関数アバターの情報を取得する。
llGetAgentInfo関数アバターの状態を返す。
llGetAgentSize関数アバターのサイズを返す。
llKey2Name関数UUIDから名称を返す。

コンテンツ系の関数/イベント

名称種別内容
llGetInventoryKey関数コンテンツの中に存在するアイテムのUUIDを返す。
llGetInventoryNumber関数コンテンツの中に存在するアイテムの数を返す。
llGetInventoryName関数コンテンツの中に存在するアイテムの名称を返す。
llGetInventoryType関数コンテンツの中に存在するアイテムのタイプを返す。


llRequestAgentData
<機能>
アバターの情報を取得する。
dataserverイベントとペアで使用する。
<構文>
key llRequestAgentData(key id, integer data)
* id : 情報を取得するアバターのUUIDを指定する。
* data : 情報の種類を指定する。以下を参照。
  [data定数]

Statistical dataValueDescription
DATA_ONLINE1アバターがオンラインだとTRUE、オフラインだとFALSEを返す。
DATA_NAME2アバターの名称を返す。
DATA_BORN3アバターの生年月日をYYYY-MM-DDフォーマットで返す。
DATA_RATING4アバターの評価を返す。
DATA_PAYINFO8アバターの支払い状況を返す。

<例>
  // タッチしたアバターの生年月日を表示する。
  default
  {
    touch_start(integer num_detected) {
      llRequestAgentData(llDetectedKey(0), DATA_BORN);
    }
    dataserver(key queryid, string data) {
      llSay(0, "You were born on: " + data);
    }
  }

ページ先頭へ

llGetAgentInfo
<機能>
アバターの状態を返す。
<構文>
  integer llGetAgentInfo(key id)
  * id : アバターのUUIDを指定する。
  * 返り値:ビット値で返る。以下を参照。

Constant Represents Value
AGENT_ALWAYS_RUN走っている。0x1000 
AGENT_ATTACHMENTSアタッチしている。0x0002 
AGENT_AWAYawayモードになっている。0x0040 
AGENT_BUSYbusyモードになっている。0x0800 
AGENT_CROUCHINGかがんでいる。0x0400 
AGENT_FLYING飛行している。0x0001 
AGENT_IN_AIR空中にいる。(飛行状態を除く)0x0100 
AGENT_MOUSELOOKマウスルックモードになっている。0x0008 
AGENT_ON_OBJECTオブジェクトに座っている。0x0020 
AGENT_SCRIPTEDスクリプトを実行しているオブジェクトをアタッチしている。0x0004 
AGENT_SITTING座っている。0x0010 
AGENT_TYPINGタイプしている。0x0200 
AGENT_WALKING歩いている。0x0080

<例>
  // 飛行中のときチャット画面上に表示する。
  default
  {
    state_entry() {
      llSetTimerEvent(1);
    }
  
    timer() {
      if(llGetAgentInfo(llGetOwner()) & AGENT_FLYING) {
        llOwnerSay("You are flying!");
      }
    }
  }
ページ先頭へ

llGetAgentSize
<機能>
アバターのサイズを返す。単位はメートル。
<構文>
vector llGetAgentSize(key id)
* id : アバターのUUIDを指定する。
* 返り値:<X(横幅),Y(奥行),Z(高さ)>のベクター値。
<例>
  //タッチしたら身長を表示する。
  default {
    touch_start(integer num_detected) {
      vector size;
      size = llGetAgentSize(llDetectedKey(0));
      llSay(0, "You are " (string)size.z "m tall.");
    }
  }
ページ先頭へ

llKey2Name
<機能>
UUIDから名称を返す。
* アバターの名称を得るためには、そのアバターが同SIM内に存在していなければならない。
<構文>
string llKey2Name(key id)
* id : アバターまたはオブジェクトのUUIDを指定する。
<例>
  // オーナーの名称を表示する。
  llSay(0,llKey2Name(llGetOwner()));

ページ先頭へ

llGetInventoryKey
<機能>
コンテンツの中に存在するアイテムのUUIDを返す。
* 存在しない場合は、NULL_KEYを返す。
* オーナーがそのアイテムに対して、権限(編集、コピー譲渡)を持っていないときは、NULL_KEYを返す。
<構文>
key llGetInventoryKey(string name)
* name : アイテムの名称を指定する。

ページ先頭へ

llGetInventoryNumber
<機能>
コンテンツの中に存在するアイテムの数を返す。
<構文>
integer llGetInventoryNumber(integer type)
* type : タイプを指定する。type定数参照。
  [type定数]

typeValue Description
INVENTORY_ALL-1全て
INVENTORY_TEXTURE0テクスチャ
INVENTORY_SOUND1サウンド
INVENTORY_LANDMARK3ランドマーク
INVENTORY_CLOTHING5服
INVENTORY_OBJECT6オブジェクト
INVENTORY_NOTECARD7ノートカード
INVENTORY_SCRIPT10スクリプト
INVENTORY_BODYPART13ボディーパーツ
INVENTORY_ANIMATION20アニメーション
INVENTORY_GESTURE21ジェスチャ

<例>
  // コンテンツの中に存在するランドーマークの数を表示する。
  llSay(0, "I contain " + (string)llGetInventoryNumber(INVENTORY_LANDMARK) + " Landmark.");
  
ページ先頭へ


llGetInventoryName
<機能>
コンテンツの中に存在するアイテムの名称を返す。
<構文>
llGetInventoryName(integer type, integer number)
* type : タイプを指定する。type定数参照。
* number : アイテムのナンバーを指定する。全アイテム中のナンバーではなく、指定アイテム中のナンバーを指す。
ナンバーは、名称のアルファベット順に自動で割り振られる。0から始まるので注意。
<例>
  // コンテンツの中に存在するノートカードの名称を表示する。
  llSay(0, "I have a notecard named " + llGetInventoryName(INVENTORY_NOTECARD, 0) + " in my contents.");
  
ページ先頭へ


llGetInventoryType
<機能>
コンテンツの中に存在するアイテムのタイプを返す。
<構文>
integer llGetInventoryType(string name)
* name : アイテムの名称を指定する。
* 返り値 : type定数参照。

ページ先頭へ


_uacct = "UA-3027217-1"; urchinTracker();
LSL リファレンス