FadeEasy

From Second Life Wiki
Revision as of 20:17, 24 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

FadeEasy

Introduction

FadeEasy makes object fading easier for you to make an object fade in or out simply by entering a one line code.
Example: llFade(LINK_SET, 0.0, 1.0, ALL_SIDES, 0.05); Or llFade(LINK_SET, 1.0, 0.0, ALL_SIDES, 0.05);


Usage

Function: llFade(integer linknumber, float AlphaStart, float AlphaEnd, integer faces, float speed);
integer linknumber – Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag
float AlphaStart – from 0.0 (clear) to 1.0 (solid), This is the starting opacity of your object
float AlphaEnd – from 0.0 (clear) to 1.0 (solid), This is the ending opacity of your object
integer faces - LINK_THIS, LINK_ROOT, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN
float speed - How much opacity to gain or decrease by


Function Code

// Leave this part alone!
llFade(integer linknumber, float AlphaStart, float AlphaEnd, integer faces, float speed)
{
    if(AlphaStart<AlphaEnd)
    {
        for(;AlphaStart<AlphaEnd;)
        {
            AlphaStart+=speed;
            llSetLinkAlpha(linknumber, AlphaStart, faces);
        }
        return;
    }
    else if(AlphaStart>AlphaEnd)
    {
        for(;AlphaStart>AlphaEnd;)
        {
            AlphaStart-=speed;
            llSetLinkAlpha(linknumber, AlphaStart, faces);
        }
        return;
    }
}

Entire Example Code

// Leave this part alone!
llFade(integer linknumber, float AlphaStart, float AlphaEnd, integer faces, float speed)
{
    if(AlphaStart<AlphaEnd)
    {
        for(;AlphaStart<AlphaEnd;)
        {
            AlphaStart+=speed;
            llSetLinkAlpha(linknumber, AlphaStart, faces);
        }
        return;
    }
    else if(AlphaStart>AlphaEnd)
    {
        for(;AlphaStart>AlphaEnd;)
        {
            AlphaStart-=speed;
            llSetLinkAlpha(linknumber, AlphaStart, faces);
        }
        return;
    }
}

// Global Integer Varibles
integer faded;

//====
default
{
    on_rez(integer params)
    {
        llFade(LINK_SET, 0.0,1.0,ALL_SIDES,0.05);
        faded = TRUE;
    }
    touch_end(integer num_detected)
    {
        if(faded == TRUE)
        {
            faded = FALSE;
            llFade(LINK_SET, 1.0,0.0, ALL_SIDES, 0.05);
        }
    }
}