//Roz's Link Information Script
//Sends out llSetLinkPrimitiveParams and link information to your
//chat window and records it in the object link descriptions so you
//can compare builds, and paste the output into scripts.
//If you're making a HUD with moving parts, or you want linked prims
//to shrink, expand or hide on a timer (or touch) this tells you the
//link numbers (in the link description) and gives you the links'
//relationship to the root prim. The information is limited to position,
//size, and rotation.
integer primz;
integer a;
integer spamzy = FALSE;
primLink()
{
string strA;
list posinfo;
string descinfo;
for (a=2; a<=primz; a++)
//Gets information for every link, except the root.
{
strA = (string)a;
posinfo = llGetLinkPrimitiveParams(a,[PRIM_POS_LOCAL,PRIM_SIZE,PRIM_ROT_LOCAL]);
descinfo = llList2CSV(posinfo);
llOwnerSay ("llSetLinkPrimitiveParamsFast (" + strA + ", [PRIM_POS_LOCAL," + llList2String(posinfo,0) + ", PRIM_SIZE," + llList2String(posinfo,1) + ", PRIM_ROT_LOCAL," + llList2String(posinfo,2) + "]);");
llSetLinkPrimitiveParams(a,[PRIM_DESC,"Link "+ strA + ": " + descinfo ] );
}
}
default
{
state_entry()
{
llOwnerSay ("Touch this object to update link information");
primz = llGetObjectPrimCount(llGetKey());
primLink();
}
changed(integer change)
{
//If multiple changes to link order are made, there's no
//need to continuously spam the owner with updates.
if (spamzy == FALSE)
{
if (change & (CHANGED_LINK | CHANGED_SCALE))
{
llOwnerSay ("Touch me, once you're finished editing, to update the object's link information.");
spamzy = TRUE;
}
}
}
touch_start(integer total_number)
{
//Let's update the information for all links
llResetScript();
//Thanks to the Brewers who took the time to test and
//give feedback on this script.
}
}
Comments
0 B
|👍
/👎