LlGetLinkName/ja
< LlGetLinkName
Jump to navigation
Jump to search
Revision as of 23:26, 18 April 2008 by Asuka Neely (talk | contribs)
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: string llGetLinkName( integer linknum );
|
|
警告
- プリム名の要素は255byteを限度とされ、いくらかstringが長いと切捨てられるでしょう。 この切捨ては要素が設定、もしくは読まれるときに常に起こるわけではありません。
サンプル
名前をチャンネル10でリッスンし、名前がこのオブジェクトの一部分かを確認します。 <lsl> integer check_for_prim(string name) {
integer i = llGetNumberOfPrims(); for (; i >= 0; --i) { if (llGetLinkName(i) == name) { return TRUE; } } return FALSE;
} default {
state_entry() { llListen(10, "", llGetOwner(), ""); } listen(integer chan, string obj, key id, string msg) { if (check_for_prim(msg)) { llOwnerSay("found a linked prim named \"" + msg + "\""); } else { llOwnerSay("this object does not have any linked prims named \"" + msg + "\""); } }}</lsl>
注意点
リンク番号
オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。
- オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
- しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。
アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。
プリムやアバターの数え方
オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。
llGetNumberOfPrims()
- プリムと座っているアバターの数を返します。llGetObjectPrimCount(llGetKey())
- オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
if(llGetAttached())//装着されているか?
return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}
関連項目
関数
• | llGetLinkNumber | – | スクリプトが入っているプリムのリンク番号を取得します。 | |
• | llGetLinkKey | – | リンクプリムのインスタンスUUIDを取得します | |
• | llGetObjectName | – | プリム名を取得します | |
• | llSetObjectName | – | プリム名を設定します | |
• | llGetObjectDesc | – | プリムの記述欄を取得します | |
• | llSetObjectDesc | – | プリムの記述欄を設定します | |
• | llGetObjectDetails |
記事
• | Prim Attribute Overloading |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。