LlGetLinkKey/ja

From Second Life Wiki

Jump to: navigation, search

関数: key llGetLinkKey( integer linknum );

現在のリンクセットの、リンクナンバーlinknumのプリムのキーのkey値を返します。

• integer linknum リンクナンバーあるいはLINK_* フラグ
フラグ 説明
LINK_ROOT 1 リンクされているプリム内の親タスクに送ります
LINK_SET -1 (訳注:自身を含む)全タスクに送ります
LINK_ALL_OTHERS -2 (訳注:自身を含まない)他の全タスクにおくります
フラグ 説明
LINK_ALL_CHILDREN -3 (訳注:リンクされているプリム内の)全ての子タスクに送ります
LINK_THIS -4 スクリプトのあるタスクに送ります

警告

リンクされたプリムにこのスクリプトをドラッグして、プリムのリンクを解除し、アバタがすわっているかいないか、llGetLinkKeyをllGetKey, llGetLinkNumber, llGetNumberOfPrims, LINK_ROOTなどを関連して参照します

// Return the name of a link num else the empty string.
 
string getLinkNumName(integer link)
{
    if (LINK_THIS == link) return "LINK_THIS";
    if (LINK_ALL_CHILDREN == link) return "LINK_ALL_CHILDREN";
    if (LINK_ALL_OTHERS == link) return "LINK_ALL_OTHERS";
    if (LINK_SET == link) return "LINK_SET";
    if (LINK_ROOT == link) return "LINK_ROOT";
    return "";
}
 
// Say the key of each linked prim.
 
default
{
    state_entry()
    {
        integer theLink = llGetLinkNumber();
 
        key theLinkKey = llGetKey();
        key owner = llGetOwner();
        key creator = llGetCreator();
 
        // Visit each link num.
 
        integer link;
        integer primmed = llGetNumberOfPrims();
        for (link = -5; link <= (primmed + 5); ++link)
        {
            key linkKey = llGetLinkKey(link);
 
            // Detail the key at the link num.
 
            string line = (string) linkKey; // large constant width
 
            if (linkKey == owner) line += " llGetOwner";
            if (linkKey == creator) line += " llGetCreator";
            if (linkKey == theLinkKey) line += " llGetKey";
 
            // Detail the link num.
 
            line += " @ " + (string) link;
            line += " " + getLinkNumName(link);
            if (link == theLink) line += " llGetLinkNumber";
            if (link == primmed) line += " llGetNumberOfPrims";
 
            // Say the detail if fun.
 
            if (linkKey != NULL_KEY)
            {
                llOwnerSay(line);
            }
        }
 
        // Always count the linked prims.
 
        llOwnerSay((string) primmed + " llGetNumberOfPrims");
        llOwnerSay("OK");
    }
}

関連項目

関数

•  llGetLinkNumber スクリプトが入っているプリムのリンクナンバーを返します。
•  llGetKey
•  llGetLinkName

経緯

Bugs

• Open Bug    llGetLinkKey LINK_THISを通したとき、不適切な結果をかえします
Personal tools