Difference between revisions of "Template:LSL Function/link/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (adding nocaveats flag (not sure where it is used...))
 
(One intermediate revision by one other user not shown)
Line 10: Line 10:
</includeonly>
</includeonly>


{{#if:{{{nlf|}}}{{{noconst|}}}||
{{#if:{{{nlf|}}}{{{noconst|}}}{{#var:link_constants}}||
{{#vardefine:constants_nb|{{LSL_Constants/Link/ja|istyle=margin-top:0;|nogroup={{{nogroup|}}}}}
{{#vardefine:constants_nb|{{LSL_Constants/Link/ja|istyle=margin-top:0;|nogroup={{{nogroup|}}}}}
{{#var:constants_nb}}}}
{{#var:constants_nb}}}}
Line 37: Line 37:
* <code>{{LSLG/ja|llGetObjectPrimCount}}({{LSLG/ja|llGetKey}}())</code> - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
* <code>{{LSLG/ja|llGetObjectPrimCount}}({{LSLG/ja|llGetKey}}())</code> - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。


<lsl>integer GetPrimCount() { //常にプリムの数だけを返します。
<source lang="lsl2">integer GetPrimCount() { //常にプリムの数だけを返します。
     if(llGetAttached())//装着されているか?
     if(llGetAttached())//装着されているか?
         return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
         return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
     return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
     return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}</lsl>
}</source>
{{#var:notes}}
{{#var:notes}}
}}
}}

Latest revision as of 05:50, 25 February 2016

#var value
p__desc リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
also_functions
•  llGetLinkNumber スクリプトが入っているプリムのリンク番号を取得します。
constants_nb
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
LINK_SET -1 全プリムに送ります
LINK_ALL_OTHERS -2 自分以外の全プリムに送ります
フラグ 説明
LINK_ALL_CHILDREN -3 (ルートプリム以外の全ての)子プリムに送ります
LINK_THIS -4 スクリプトの入った自プリムに送ります
notes

リンク番号

オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。

  • オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
  • しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。

アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。

プリムやアバターの数え方

オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。

  • llGetNumberOfPrims() - プリムと座っているアバターの数を返します。
  • llGetObjectPrimCount(llGetKey()) - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
    if(llGetAttached())//装着されているか?
        return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
    return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}