Difference between revisions of "LlAvatarOnSitTarget/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{multi-lang}}{{LSL_Function/ja|func_id=239|func_sleep=0.0|func_energy=10.0
{{LSL_Function/ja|func_id=239|func_sleep=0.0|func_energy=10.0
|func=llAvatarOnSitTarget
|func=llAvatarOnSitTarget
|return_type=key
|return_type=key
|return_text=primに座ったユーザの[[UUID/ja|UUID]]
|return_text=プリムに座っているユーザの {{LSLG/ja|UUID}} 
|func_footnote=プリムにsit targetがない場合、もしくはプリムにアバターが座っていない場合、{{LSL Const/ja|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=無効なkeyのようなものとして扱われ、falseと評価します。}}が返されます。
|func_footnote=プリムに {{LSLG/ja|llSitTarget|着座ポイント}} がないか、プリムにアバターが座っていないときは、 {{LSL Const/ja|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=条件文では不正なキーと同じように false と判定されます。}} が返されます。
|caveats=*プリムには[[llSitTarget/ja|llSitTarget]]が最初の属性が'''0'''ではないvectorで呼ばれる場合を除いて、sit targetがありません。
|caveats=*プリムは、{{LSLG/ja|llSitTarget}} が '''ゼロ以外の''' ベクトル値を第一引数にして呼ばれない限りは、着座ポイント をもちません。
*プリムにsit targetが欠けているか、アバタが違うプリム上に座られている場合、アオブジェクトに座られるアバタの数は、リンクセットで確認する数<sup>[[#Notes|1]]</sup>でのみ決定されます。
*プリムに着座ポイントがないか、アバターが他のプリムに座っている場合、オブジェクトに座っているアバターの人数や、どのアバターがオブジェクトに座っているかを知る唯一の方法は、リンクセットをスキャンすることです (例として、[[llGetNumberOfPrims/ja#便利なスペニット|llGetNumberOfPrims]] を参照してください)。
|spec
|spec
|examples=<lsl>
|examples=<source lang="lsl2">default
default
{
{
     state_entry()
     state_entry()
     {
     {
         // set sit target, otherwise this will not work
         //着座ポイントを設定します。そうしないと動きません
         llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
         llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
     }
     }
Line 19: Line 18:
         if (change & CHANGED_LINK) {  
         if (change & CHANGED_LINK) {  
             key av = llAvatarOnSitTarget();
             key av = llAvatarOnSitTarget();
             if (av) {//evaluated as true if not NULL_KEY or invalid
             if (av) {//NULL_KEY または不正な値でない場合、true となります
                 llSay(0, "Hello " + llKey2Name(av) + ", thank you for sitting down");
                 llSay(0, "こんにちは " + llKey2Name(av) + "さん。座ってくれてありがとう");
             }
             }
         }
         }
     }
     }
}
}</source>
</lsl>
|helpers=<source lang="lsl2">//座っているアバターのリンク番号を取得します
|helpers=<lsl>
//Gets the link number of a seated avatar
integer GetAgentLinkNumber(key avatar)
integer GetAgentLinkNumber(key avatar)
{
{
     integer linkNum = 1 + llGetNumberOfPrims();
     integer linkNum = 1 + llGetNumberOfPrims();
     key linkKey;
     key linkKey;
     //Next we get the linkKey and make sure it's not null, if it's null we are done.
     //次に linkKey を取得し、それが null でないことを確かめます。null であれば既にやっていることになります
     while((linkKey = llGetLinkKey( --linkNum )))//is the key valid?
     while((linkKey = llGetLinkKey( --linkNum )))//key が正当か?
         if(avatar == linkKey)//is it the avatar we want?
         if(avatar == linkKey)//意図しているアバターか?
             return linkNum;//It's the avatar we want so return.
             return linkNum;//意図したアバターなら復帰します
     //avatar wasn not found
     //アバターが見つからない
     //return a number that isn't a LINK_* flag not a valid link number either.
     //LINK_* フラグでない、かつリンク番号でない数字を返します。
     return 0x7FFFFFFF;//max int.
     return 0x7FFFFFFF;//最大の integer
}//Written by Strife Onizuka
}//Written by Strife Onizuka</source>
</lsl>
|related
|related
|also_tests
|also_tests
|also_events={{LSL DefineRow||[[changed/ja|changed]]|}}
|also_events={{LSL DefineRow||{{LSLG/ja|changed}}|}}
|also_functions={{LSL DefineRow||[[llSitTarget/ja|llSitTarget]]|}}
|also_functions={{LSL DefineRow||{{LSLG/ja|llSitTarget}}|}}
{{LSL DefineRow||[[llGetLinkKey/ja|llGetLinkKey]]}}
{{LSL DefineRow||{{LSLG/ja|llGetLinkKey}}}}
|also_articles={{LSL DefineRow||[[CHANGED_LINK/ja|CHANGED_LINK]]|}}
|also_articles={{LSL DefineRow||{{LSLG/ja|CHANGED_LINK}}|}}
|notes=
|notes=着座ポイント に座っているアバターの位置は {{LSLG/ja|llGetObjectDetails}} を使って導き出すことができます (例として [[llSitTarget#便利なスペニット|llSitTarget]] を参照してください)
#[[llGetLinkKey/ja|llGetLinkKey]]のような関数を用いてリンクセットを捜査すること。([[llGetNumberOfPrims/ja#Useful_Snippets]]の例を参照)
|cat1=Avatar
#sit targetのアバタの位置は[[llGetObjectDetails/ja|llGetObjectDetails]]を用いて測定できます。( [[llSitTarget/ja#Useful_Snippets]]の例を参照)
|cat2=Prim
|cat1=Avatar/ja
|cat3=Sit
|cat2=Prim/ja
|cat3=Sit/ja
|cat4
|cat4
}}
}}

Latest revision as of 05:51, 25 February 2016

要約

関数: key llAvatarOnSitTarget( );

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

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

警告

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

サンプル

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の関連した項目が参考になるかもしれません。