Files
LSL-Scripts/TransmogrifyAvatar/Transmogrify/Object/Accessories.lsl
Fred Beckhusen 5a21e18d9e Fred Beckhusen
2019-03-17 23:41:07 -05:00

81 lines
1.7 KiB
Plaintext

// :CATEGORY:Transmogrify
// :NAME:TransmogrifyAvatar
// :AUTHOR:Fred Beckhusen (Ferd Frederix)
// :CREATED:2013-09-08
// :EDITED:2014-01-01 12:18:57
// :ID:921
// :NUM:1321
// :REV:1
// :WORLD:Second Life
// :DESCRIPTION:
// for anything you wear
// :CODE:
// Transmogrifyer script
// License: CC-BY. Please do not remove the copyright or this notice
// Author: Fred Beckhusen (Ferd Frederix)
// For all your worn accessories (not the pet)
// makes accessories like shoes and hair disappear when you fly.
integer ownerchannel;
integer listener;
setlisten()
{
if (listener) {
llListenRemove(listener);
}
listener = llListen(ownerchannel,"","","");
}
hide_show( float alpha)
{
integer j = llGetNumberOfPrims();
integer k = 2; // do it twice to get rid of lost packets
while (k--)
{
integer i;
for ( i = 0; i <= j; i++) {
llSetLinkAlpha(i,alpha, ALL_SIDES);
}
}
}
default
{
state_entry()
{
ownerchannel = (integer)("0xF" + llGetSubString( (string)llGetOwner(), 0, 6 ));
hide_show(0); // 0 = invisible
setlisten();
}
on_rez(integer param)
{
hide_show(1); // 1= visible
setlisten();
}
changed(integer what)
{
// no reset needed, we just need to re-establish a listener
if (what & CHANGED_REGION)
setlisten();
if(what & CHANGED_OWNER)
llResetScript();
}
listen(integer channel, string name, key id, string msg)
{
if (msg == "pet") {
hide_show(0);
} else if (msg == "avatar") {
hide_show(1);
}
}
}