llGetAgentInfo
integer llGetAgentInfo(key id)
エージェントの情報を入手する。
腕利きのエージェントを調査する場合は報復を覚悟したりしなくても良い。
ここで言うエージェントというのは要するにアバターのことである。
腕利きのエージェントを調査する場合は報復を覚悟したりしなくても良い。
ここで言うエージェントというのは要するにアバターのことである。
この関数で調べることができるのは、主にアバターの動作である。
戻り値はビットフィールドになっているので以下の定数と&演算を行って判定する。
定数 | 説明 | 実際の値 |
AGENT_FLYING | 飛行中もしくは落下中 | 1 |
AGENT_ATTACHMENTS | アタッチメントを装備している | 2 |
AGENT_SCRIPTED | スクリプト入りのアタッチメントを装備している | 4 |
AGENT_MOUSELOOK | マウスルック状態 | 8 |
AGENT_SITTING | 地面もしくはオブジェクトの上に座っている | 16 |
AGENT_ON_OBJECT | 地面ではなく何かオブジェクトの上に座っている | 32 |
AGENT_AWAY | AWAY状態 | 64 |
AGENT_WALKING | 歩行中 | 128 |
AGENT_IN_AIR | 飛行中ではなくジャンプ中 | 256 |
AGENT_TYPING | チャット入力中 | 512 |
AGENT_CROUCHING | しゃがんでいる | 1024 |
AGENT_BUSY | BUSY状態 | 2048 |
AGENT_ALWAYS_RUN | 常に走る状態になっている | 4096 |
以下の例はアタッチメントを一切装備していない可哀想なアバターに葉っぱを与える。
default { touch_start(integer detected){ integer ai = llGetAgentInfo(llDetectedKey(0)); if (!(ai & AGENT_ATTACHMENTS)){ llGiveInventory(llDetectedKey(0), "happa"); } } }
なお、この関数はSIM内にいるアバターに対してでなければ使えない。