Kilt Editor
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Having spent too many hours editing the parameters of 35 flexi-prims on a kilt, and still not being pleased with the result, and starting all over again, it finally occured to me to write this little guy.
<lsl>
// This sets all flexis in your link set to the parameters you program here.
// Note this will chage the params of EVERY flexi in your link set - so if you add
// tassles and junk, do that after you are happy with the basic skirt!
// You only need to put this into the root prim, and touch the link set,
// or save or reset the script -Brangus Weir
integer softness = 1; float gravity = 0.3; float drag = 1.0; float wind = 0.0; float tension = 0.6; float forceX = 0.0; float forceY = 0.0; float forceZ = 0.0;
//__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ //__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
integer GetNumberOfPrims() {
if (llGetAttached())
return llGetNumberOfPrims();
return llGetObjectPrimCount(llGetKey());
}
updateFlexiParams() {
llOwnerSay("softness: " + (string)softness
+ "\ngravity: " + (string)gravity
+ "\ndrag: " + (string)drag
+ "\nwind: " + (string)wind
+ "\ntension: " + (string)tension
+ "\nforce: <" + (string)forceX + "," + (string)forceY + "," + (string)forceZ + ">");
list oldParams;
list newParams = [PRIM_FLEXIBLE, TRUE, softness, gravity,
drag, wind, tension, <forceX, forceY, forceZ>];
integer link = GetNumberOfPrims();
if (link == 1)
{
llOwnerSay("The flexi-params of one prim are being updated.");
oldParams = llGetLinkPrimitiveParams(LINK_ROOT, [PRIM_FLEXIBLE]);
if (llList2Integer(oldParams, 0))// is TRUE
llSetLinkPrimitiveParamsFast(LINK_ROOT, newParams);
}
else// is a linkset
{
llOwnerSay("The flexi-params of " + (string)link + " prims are being updated.");
do
{
oldParams = llGetLinkPrimitiveParams(link, [PRIM_FLEXIBLE]);
if (llList2Integer(primparam, 0))// is TRUE
llSetLinkPrimitiveParamsFast(link, newParams);
--link;
}
while (link);
}
llOwnerSay("Done with updating flexi-params.");
}
default {
on_rez(integer start_param)
{
updateFlexiParams();
}
state_entry()
{
updateFlexiParams();
}
touch_start(integer num_detected)
{
updateFlexiParams();
}
} </lsl>