Difference between revisions of "Category:LSL Link/Get"

From Second Life Wiki
Jump to navigation Jump to search
m
m (Replaced <lsl> with <syntaxhighlight>)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{LSL Header|ml=*}}{{LSLC|Link}}{{LSLC|}}
{{LSL Header|ml=*}}{{LSLC|Link}}{{LSLC|}}
{{Box|Useful Snippets|2=
{{Box|Useful Snippets|2=
<lsl>list GetLinkDetails(integer link, list OBJECT_FLAGS)
<syntaxhighlight lang="lsl2">list GetLinkDetails(integer link, list OBJECT_FLAGS)
{//simple wrapper
{//simple wrapper
     return llGetObjectDetails(llGetLinkKey(link), OBJECT_FLAGS);
     return llGetObjectDetails(llGetLinkKey(link), OBJECT_FLAGS);
Line 22: Line 22:


vector GetLinkLocalPos(integer link)
vector GetLinkLocalPos(integer link)
{//This function may not produce a perfect result, expect there to be some drift. This will not work in attachments.
{
     vector pos = llGetRootPosition();
     return llList2Vector(llGetLinkPrimitiveParams(link, (list)PRIM_POS_LOCAL), 0);
    key k = llGetLinkKey(link);
    if(llGetLinkKey(!!llGetLinkNumber()) != k)
        return (llList2Vector(llGetObjectDetails(k, (list)OBJECT_POS) + pos, 0) - pos) / llGetRootRotation();
    return pos;
}
}
   
   
rotation GetLinkLocalRot(integer link)
rotation GetLinkLocalRot(integer link)
{//This function may not produce a perfect result, expect there to be some drift. This will not work in attachments.
{
    rotation rot = llGetRootRotation();//There is no llGetAttachmentRot :(
     return llList2Rot(llGetLinkPrimitiveParams(link, (list)PRIM_ROT_LOCAL), 0);
    key k = llGetLinkKey(link);
}</syntaxhighlight>
     if(llGetLinkKey(!!llGetLinkNumber()) != k)
        return llList2Rot(llGetObjectDetails(k, (list)OBJECT_ROT) + rot, 0) / rot;
    return rot;
}</lsl>
}}
}}

Latest revision as of 10:01, 13 September 2022

Useful Snippets

list GetLinkDetails(integer link, list OBJECT_FLAGS)
{//simple wrapper
    return llGetObjectDetails(llGetLinkKey(link), OBJECT_FLAGS);
}

key GetLinkCreator(integer link)
{
    return llList2Key(llGetObjectDetails(llGetLinkKey(link), (list)OBJECT_CREATOR) + NULL_KEY, 0);
}

key GetLinkGroup(integer link)
{
    return llList2Key(llGetObjectDetails(llGetLinkKey(link), (list)OBJECT_GROUP) + NULL_KEY, 0);
}

string GetLinkDesc(integer link)
{
    return (string)llGetObjectDetails(llGetLinkKey(link), (list)OBJECT_DESC);
}

vector GetLinkLocalPos(integer link)
{
    return llList2Vector(llGetLinkPrimitiveParams(link, (list)PRIM_POS_LOCAL), 0);
}
 
rotation GetLinkLocalRot(integer link)
{
    return llList2Rot(llGetLinkPrimitiveParams(link, (list)PRIM_ROT_LOCAL), 0);
}

Pages in category "LSL Link/Get"

The following 5 pages are in this category, out of 5 total.