Difference between revisions of "LlAvatarOnSitTarget/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 849032 by Mako Nozaki (Talk))
Line 2: Line 2:
|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=<lsl>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) + "さん。座ってくれてありがとう");
             }
             }
         }
         }
     }
     }
}
}</lsl>
</lsl>
|helpers=<lsl>//座っているアバターのリンク番号を取得します
|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</lsl>
</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]]の例を参照)
#sit targetのアバタの位置は[[llGetObjectDetails/ja|llGetObjectDetails]]を用いて測定できます。( [[llSitTarget/ja#Useful_Snippets]]の例を参照)
|cat1=Avatar
|cat1=Avatar
|cat2=Prim
|cat2=Prim

Revision as of 04:20, 2 May 2010

要約

関数: key llAvatarOnSitTarget( );

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

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

警告

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

サンプル

<lsl>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) + "さん。座ってくれてありがとう");
           }
       }
   }
}</lsl>

便利なスニペット

<lsl>//座っているアバターのリンク番号を取得します 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</lsl>

注意点

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

関連項目

イベント

•  changed

関数

•  llSitTarget
•  llGetLinkKey

記事

•  CHANGED_LINK

特記事項

Search JIRA for related Issues

Signature

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