LlGetLinkName/ja

From Second Life Wiki
< LlGetLinkName
Revision as of 06:51, 10 April 2010 by Mako Nozaki (talk | contribs) (カテゴリ変更)
Jump to navigation Jump to search

要約

関数: string llGetLinkName( integer linknum );

リンクセットのlinknumの名前を string で返します。

• integer linknum リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
LINK_SET -1 全プリムに送ります
LINK_ALL_OTHERS -2 自分以外の全プリムに送ります
フラグ 説明
LINK_ALL_CHILDREN -3 (ルートプリム以外の全ての)子プリムに送ります
LINK_THIS -4 スクリプトの入った自プリムに送ります

警告

  • プリム名の要素は255byteを限度とされ、いくらかstringが長いと切捨てられるでしょう。 この切捨ては要素が設定、もしくは読まれるときに常に起こるわけではありません。
All Issues ~ Search JIRA for related Bugs

サンプル

名前をチャンネル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

特記事項

Search JIRA for related Issues

Signature

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