LlAvatarOnSitTarget/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: key llAvatarOnSitTarget( );

プリムに座っているユーザの UUID を key で返します。

プリムに 着座ポイント がないか、プリムにアバターが座っていないときは、 NULL_KEY が返されます。

警告

  • プリムは、llSitTargetゼロ以外の ベクトル値を第一引数にして呼ばれない限りは、着座ポイント をもちません。
  • プリムに着座ポイントがないか、アバターが他のプリムに座っている場合、オブジェクトに座っているアバターの人数や、どのアバターがオブジェクトに座っているかを知る唯一の方法は、リンクセットをスキャンすることです (例として、llGetNumberOfPrims を参照してください)。

サンプル

default
{
    state_entry()
    {
        //着座ポイントを設定します。そうしないと動きません
        llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
    }

    changed(integer change) {
        if (change & CHANGED_LINK) { 
            key av = llAvatarOnSitTarget();
            if (av) {//NULL_KEY または不正な値でない場合、true となります
                llSay(0, "こんにちは " + llKey2Name(av) + "さん。座ってくれてありがとう");
            }
        }
    }
}

便利なスニペット

//座っているアバターのリンク番号を取得します
integer GetAgentLinkNumber(key avatar)
{
    integer linkNum = 1 + llGetNumberOfPrims();
    key linkKey;
    //次に linkKey を取得し、それが null でないことを確かめます。null であれば既にやっていることになります
    while((linkKey = llGetLinkKey( --linkNum )))//key が正当か?
        if(avatar == linkKey)//意図しているアバターか?
            return linkNum;//意図したアバターなら復帰します
    //アバターが見つからない
    //LINK_* フラグでない、かつリンク番号でない数字を返します。
    return 0x7FFFFFFF;//最大の integer
}//Written by Strife Onizuka

注意点

着座ポイント に座っているアバターの位置は llGetObjectDetails を使って導き出すことができます (例として llSitTarget を参照してください)。

関連項目

イベント

•  changed

関数

•  llSitTarget
•  llGetLinkKey

記事

•  CHANGED_LINK

特記事項

Search JIRA for related Issues

Signature

function key llAvatarOnSitTarget();
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。