Edie_Shoreland icon

Lena New Model Modesty/Alpha Script public script

Edie_Shoreland | PRO | 09/08/18 01:08:49 AM UTC | 0 ⭐ | 8800 👁️ | Never ⏰ | []
Linden Scripting |

0 B

|

None

|

0 👍

/

0 👎

// The Kittie's Lair Lena Perky/Lena Lush body is a nice
// editable mesh body. I use this body for my growing army
// of NPCs, and most of their wardrobes contain only a non-  
// scripted copy of the body's skin layer (without tattoo,
// underwear or clothing layers) The skin layer for the
// more recent Lenas consist of 4 meshes and a total of 32
// faces that can be hidden or visible
 
// The long list of 32 body parts are a method of creating
// and sending out body masks that work with various out-
// fits. The way I create the masks is to keep a copy of
// the Lena skin layer rezzed, and then it's as simple as
// clicking the body parts I want hidden and plugging TRUE
// or FALSE into values for each part in a new script. (For
// example, a pair of high waisted jeans may require all
// faces between "belly" to "upperfoot" be set to FALSE).
// The rezzed body acts like a HUD, and it communicates with
// the skin layer I'm wearing so I can see how it works with
// an outfit. It also tells me what to mask in a new script.
// When I finish, I send the new script to each NPC and that
// script dropped into an unscripted skin layer. The script
// automatically hides the faces and does one more thing...
 
// The modesty function determines if the NPC is on her own
// group land, or may have accidentally logged in or tele-
// ported somewhere unexpected.  While the NPC is making an
// effort to teleport, the script uses color to "clothe" the
// Lena skin layer until the NPC can move to a new parcel.
 
integer listenHandle;
integer chan_no = 22992288;
integer LATEX = FALSE;
integer CATSUIT = FALSE;
 
integer wrist = TRUE;
integer forearm = TRUE;
integer elbow = TRUE;
integer shoulder = TRUE;
integer neck = TRUE;
integer collar = TRUE;
integer breastbone = TRUE;
integer upperback = TRUE;
 
integer chest = TRUE;
integer nipple = TRUE;
integer breasts = TRUE;
integer sternum = TRUE;
integer back = TRUE;
integer lowerribs = TRUE;
integer abdomen = TRUE;
integer navel = TRUE;
 
integer belly = TRUE;
integer pubis = TRUE;
integer cstring = TRUE;
integer midbutt = TRUE;
integer cheekythigh = TRUE;
integer upperthigh = TRUE;
integer midthigh = TRUE;
integer lowerthigh = TRUE;
 
integer aboveknee = TRUE;
integer knee = TRUE;
integer uppercalf = TRUE;
integer midcalf = TRUE;
integer lowercalf = TRUE;
integer upperankle = TRUE;
integer ankle = TRUE;
integer upperfoot = TRUE;
 
integer blankvalue;
 
vector UNCOVER = <1.00,1.00,1.00>;
vector COVERED = <0.05,0.05,0.05>;
 
integer modesty(string region)
{
    if (region == "For You" || region == "Marwood" || region == "Icefyre" || region == "Lexilan" || region == "Yongma" || region == "Applewood" || region == "Gianno")
    {
        llSetLinkPrimitiveParamsFast(4, [
        PRIM_COLOR, 0, UNCOVER, upperback,PRIM_BUMP_SHINY, 0, FALSE, FALSE,
        PRIM_COLOR, 1, UNCOVER, breastbone,PRIM_BUMP_SHINY, 1, FALSE, FALSE,
        PRIM_COLOR, 2, UNCOVER, collar, PRIM_BUMP_SHINY, 2, FALSE, FALSE,
        PRIM_COLOR, 3, UNCOVER, neck,PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 4, UNCOVER, shoulder, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 5, UNCOVER, elbow, PRIM_BUMP_SHINY, 5, FALSE, FALSE,
        PRIM_COLOR, 6, UNCOVER, forearm, PRIM_BUMP_SHINY, 6, FALSE, FALSE,
        PRIM_COLOR, 7, UNCOVER, wrist, PRIM_BUMP_SHINY, 7, FALSE, FALSE,
    PRIM_LINK_TARGET, 3,
        PRIM_COLOR, 7, UNCOVER, chest, PRIM_BUMP_SHINY, 7, FALSE, FALSE,
        PRIM_COLOR, 6, UNCOVER, breasts, PRIM_BUMP_SHINY, 6, FALSE, FALSE,
        PRIM_COLOR, 5, UNCOVER, nipple, PRIM_BUMP_SHINY, 5, FALSE, FALSE,
        PRIM_COLOR, 4, UNCOVER, back, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 3, UNCOVER, sternum, PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 2, UNCOVER, lowerribs, PRIM_BUMP_SHINY, 2, FALSE, FALSE,
        PRIM_COLOR, 1, UNCOVER, abdomen, PRIM_BUMP_SHINY, 1, FALSE, FALSE,
        PRIM_COLOR, 0, UNCOVER, navel, PRIM_BUMP_SHINY, 0, FALSE, FALSE,
    PRIM_LINK_TARGET, 2,
        PRIM_COLOR, 7, UNCOVER, belly, PRIM_BUMP_SHINY, 7, FALSE, FALSE,
        PRIM_COLOR, 6, UNCOVER, pubis, PRIM_BUMP_SHINY, 6, FALSE, FALSE,
        PRIM_COLOR, 5, UNCOVER, cstring, PRIM_BUMP_SHINY, 5, FALSE, FALSE,
        PRIM_COLOR, 4, UNCOVER, midbutt, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 3, UNCOVER, cheekythigh, PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 2, UNCOVER, upperthigh, PRIM_BUMP_SHINY, 2, FALSE, FALSE,
        PRIM_COLOR, 1, UNCOVER, midthigh, PRIM_BUMP_SHINY, 1, FALSE, FALSE,
        PRIM_COLOR, 0, UNCOVER, lowerthigh, PRIM_BUMP_SHINY, 0, FALSE, FALSE,
    PRIM_LINK_TARGET, 1,
        PRIM_COLOR, 7, UNCOVER, aboveknee, PRIM_BUMP_SHINY, 7, FALSE, FALSE,
        PRIM_COLOR, 6, UNCOVER, knee, PRIM_BUMP_SHINY, 6, FALSE, FALSE,
        PRIM_COLOR, 5, UNCOVER, uppercalf, PRIM_BUMP_SHINY, 5, FALSE, FALSE,
        PRIM_COLOR, 4, UNCOVER, midcalf, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 3, UNCOVER, lowercalf, PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 2, UNCOVER, upperankle, PRIM_BUMP_SHINY, 2, FALSE, FALSE,
        PRIM_COLOR, 1, UNCOVER, ankle, PRIM_BUMP_SHINY, 1, FALSE, FALSE,
        PRIM_COLOR, 0, UNCOVER, upperfoot, PRIM_BUMP_SHINY, 0, FALSE, FALSE]);
    }
    else if (CATSUIT)
    {
        llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_COLOR, ALL_SIDES, COVERED, TRUE ,PRIM_BUMP_SHINY, ALL_SIDES, LATEX, FALSE]);
        llSetLinkPrimitiveParamsFast(4, [PRIM_COLOR, 7, UNCOVER, wrist, PRIM_BUMP_SHINY, 7, FALSE, FALSE, PRIM_COLOR, 3, UNCOVER, neck,PRIM_BUMP_SHINY, 3, FALSE, FALSE]);
    }
        
    else
    {
        llSetLinkPrimitiveParamsFast(4, [
        PRIM_COLOR, 0, COVERED, upperback,PRIM_BUMP_SHINY, 0, LATEX, FALSE,
        PRIM_COLOR, 1, COVERED, breastbone,PRIM_BUMP_SHINY, 1, LATEX, FALSE,
        PRIM_COLOR, 2, COVERED, collar, PRIM_BUMP_SHINY, 2, LATEX, FALSE,
        PRIM_COLOR, 3, UNCOVER, neck,PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 4, UNCOVER, shoulder, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 5, UNCOVER, elbow, PRIM_BUMP_SHINY, 5, FALSE, FALSE,
        PRIM_COLOR, 6, UNCOVER, forearm, PRIM_BUMP_SHINY, 6, FALSE, FALSE,
        PRIM_COLOR, 7, UNCOVER, wrist, PRIM_BUMP_SHINY, 7, FALSE, FALSE,
    PRIM_LINK_TARGET, 3,
        PRIM_COLOR, 7, COVERED, chest, PRIM_BUMP_SHINY, 7, LATEX, FALSE,
        PRIM_COLOR, 6, COVERED, breasts, PRIM_BUMP_SHINY, 6, LATEX, FALSE,
        PRIM_COLOR, 5, COVERED, nipple, PRIM_BUMP_SHINY, 5, LATEX, FALSE,
        PRIM_COLOR, 4, COVERED, back, PRIM_BUMP_SHINY, 4, LATEX, FALSE,
        PRIM_COLOR, 3, COVERED, sternum, PRIM_BUMP_SHINY, 3, LATEX, FALSE,
        PRIM_COLOR, 2, COVERED, lowerribs, PRIM_BUMP_SHINY, 2, LATEX, FALSE,
        PRIM_COLOR, 1, COVERED, abdomen, PRIM_BUMP_SHINY, 1, LATEX, FALSE,
        PRIM_COLOR, 0, COVERED, navel, PRIM_BUMP_SHINY, 0, LATEX, FALSE,
    PRIM_LINK_TARGET, 2,
        PRIM_COLOR, 7, COVERED, belly, PRIM_BUMP_SHINY, 7, LATEX, FALSE,
        PRIM_COLOR, 6, COVERED, pubis, PRIM_BUMP_SHINY, 6, LATEX, FALSE,
        PRIM_COLOR, 5, COVERED, cstring, PRIM_BUMP_SHINY, 5, LATEX, FALSE,
        PRIM_COLOR, 4, UNCOVER, midbutt, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 3, UNCOVER, cheekythigh, PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 2, UNCOVER, upperthigh, PRIM_BUMP_SHINY, 2, FALSE, FALSE,
        PRIM_COLOR, 1, UNCOVER, midthigh, PRIM_BUMP_SHINY, 1, FALSE, FALSE,
        PRIM_COLOR, 0, UNCOVER, lowerthigh, PRIM_BUMP_SHINY, 0, FALSE, FALSE,
    PRIM_LINK_TARGET, 1,
        PRIM_COLOR, 7, UNCOVER, aboveknee, PRIM_BUMP_SHINY, 7, FALSE, FALSE,
        PRIM_COLOR, 6, UNCOVER, knee, PRIM_BUMP_SHINY, 6, FALSE, FALSE,
        PRIM_COLOR, 5, UNCOVER, uppercalf, PRIM_BUMP_SHINY, 5, FALSE, FALSE,
        PRIM_COLOR, 4, UNCOVER, midcalf, PRIM_BUMP_SHINY, 4, FALSE, FALSE,
        PRIM_COLOR, 3, UNCOVER, lowercalf, PRIM_BUMP_SHINY, 3, FALSE, FALSE,
        PRIM_COLOR, 2, UNCOVER, upperankle, PRIM_BUMP_SHINY, 2, FALSE, FALSE,
        PRIM_COLOR, 1, UNCOVER, ankle, PRIM_BUMP_SHINY, 1, FALSE, FALSE,
        PRIM_COLOR, 0, UNCOVER, upperfoot, PRIM_BUMP_SHINY, 0, FALSE, FALSE]);
    }
    return TRUE;
}
 
integer changealphas(string controller)
{
    wrist = forearm = elbow = shoulder = neck = collar = breastbone = upperback = TRUE;
    chest = nipple = breasts = sternum = back = lowerribs = abdomen = navel = TRUE;
    belly = pubis = cstring = midbutt = cheekythigh = upperthigh = midthigh = lowerthigh = TRUE;
    aboveknee = knee = uppercalf = midcalf = lowercalf = upperankle = ankle = upperfoot = TRUE;
 
    if (llGetSubString(controller, 0, 0) == "0")  wrist = FALSE;
    if (llGetSubString(controller, 1, 1) == "0")  forearm = FALSE;
    if (llGetSubString(controller, 2, 2) == "0")  elbow = FALSE;
    if (llGetSubString(controller, 3, 3) == "0")  shoulder = FALSE;
    if (llGetSubString(controller, 4, 4) == "0")  neck = FALSE;
    if (llGetSubString(controller, 5, 5) == "0")  collar = FALSE;
    if (llGetSubString(controller, 6, 6) == "0")  breastbone = FALSE;
    if (llGetSubString(controller, 7, 7) == "0")  upperback = FALSE;
 
    if (llGetSubString(controller, 8, 8) == "0")  chest = FALSE;
    if (llGetSubString(controller, 9, 9) == "0")  nipple = FALSE;
    if (llGetSubString(controller, 10, 10) == "0")  breasts = FALSE;
    if (llGetSubString(controller, 11, 11) == "0")  sternum = FALSE;
    if (llGetSubString(controller, 12, 12) == "0")  back = FALSE;
    if (llGetSubString(controller, 13, 13) == "0")  lowerribs = FALSE;
    if (llGetSubString(controller, 14, 14) == "0")  abdomen = FALSE;
    if (llGetSubString(controller, 15, 15) == "0")  navel = FALSE;
 
    if (llGetSubString(controller, 16, 16) == "0")  belly = FALSE;
    if (llGetSubString(controller, 17, 17) == "0")  pubis = FALSE;
    if (llGetSubString(controller, 18, 18) == "0")  cstring = FALSE;
    if (llGetSubString(controller, 19, 19) == "0")  midbutt = FALSE;
    if (llGetSubString(controller, 20, 20) == "0")  cheekythigh = FALSE;
    if (llGetSubString(controller, 21, 21) == "0")  upperthigh = FALSE;
    if (llGetSubString(controller, 22, 22) == "0")  midthigh = FALSE;
    if (llGetSubString(controller, 23, 23) == "0")  lowerthigh = FALSE;
 
    if (llGetSubString(controller, 24, 24) == "0")  aboveknee = FALSE;
    if (llGetSubString(controller, 25, 25) == "0")  knee = FALSE;
    if (llGetSubString(controller, 26, 26) == "0")  uppercalf = FALSE;
    if (llGetSubString(controller, 27, 27) == "0")  midcalf = FALSE;
    if (llGetSubString(controller, 28, 28) == "0")  lowercalf = FALSE;
    if (llGetSubString(controller, 29, 29) == "0")  upperankle = FALSE;
    if (llGetSubString(controller, 30, 30) == "0")  ankle = FALSE;
    if (llGetSubString(controller, 31, 31) == "0")  upperfoot = FALSE;
    
    return TRUE;
}
 
string manualclick (integer prim_no, integer face_no)
{
    string alphavalues;
    if (prim_no == 4)
    {
        if (face_no == 0)  upperback = !upperback;
        else if (face_no == 1)  breastbone = !breastbone;
        else if(face_no == 2)  collar = !collar;
        else if(face_no == 3)  neck = !neck;
        else if(face_no == 4)  shoulder = !shoulder;
        else if(face_no == 5)  elbow = !elbow;
        else if(face_no == 6)  forearm = !forearm;
        else if(face_no == 7)  wrist = !wrist;
    }
    else if (prim_no == 3)
    {
        if (face_no == 7)  chest = !chest;
        else if(face_no == 6)  breasts = !breasts;
        else if(face_no == 5)  nipple = !nipple;
        else if(face_no == 4)  back = !back;
        else if(face_no == 3)  sternum = !sternum;
        else if(face_no == 2)  lowerribs = !lowerribs;
        else if(face_no == 1)  abdomen = !abdomen;
        else if(face_no == 0)  navel = !navel;
    }
    else if (prim_no == 2)
    {
        if (face_no == 7)  belly = !belly;
        else if(face_no == 6)  pubis = !pubis;
        else if(face_no == 5)  cstring = !cstring;
        else if(face_no == 4)  midbutt = !midbutt;
        else if(face_no == 3)  cheekythigh = !cheekythigh;
        else if(face_no == 2)  upperthigh = !upperthigh;
        else if(face_no == 1)  midthigh = !midthigh;
        else if(face_no == 0)  lowerthigh = !lowerthigh;
    }
    else if (prim_no == 1)
    {
        if (face_no == 7)  aboveknee = !aboveknee;
        else if(face_no == 6)  knee = !knee;
        else if(face_no == 5)  uppercalf = !uppercalf;
        else if(face_no == 4)  midcalf = !midcalf;
        else if(face_no == 3)  lowercalf = !lowercalf;
        else if(face_no == 2)  upperankle = !upperankle;
        else if(face_no == 1)  ankle = !ankle;
        else if(face_no == 0)  upperfoot = !upperfoot;
    }
    alphavalues = (string)wrist + (string)forearm + (string)elbow + (string)shoulder + (string)neck + (string)collar + (string)breastbone + (string)upperback + (string)chest + (string)nipple + (string)breasts + (string)sternum + (string)back + (string)lowerribs + (string)abdomen + (string)navel + (string)belly + (string)pubis + (string)cstring + (string)midbutt + (string)cheekythigh + (string)upperthigh + (string)midthigh + (string)lowerthigh + (string)aboveknee + (string)knee + (string)uppercalf + (string)midcalf + (string)lowercalf + (string)upperankle + (string)ankle + (string)upperfoot;
    return alphavalues;
}
 
 
default
{
    state_entry()
    {
        listenHandle = llListen(chan_no, "", "", "");   
        blankvalue = modesty(llGetRegionName());
    }
            
    changed(integer change)
    {
        if (change & CHANGED_REGION) blankvalue = modesty(llGetRegionName());
    }
    on_rez(integer start_param)
    {
        blankvalue = modesty(llGetRegionName());
    }
    listen(integer channel, string name, key id, string message)
    {
        message = llStringTrim(message, STRING_TRIM);
        if (llGetSubString(message, 0, 0) == "0" || llGetSubString(message, 0, 0) == "1")
        {
            blankvalue = changealphas(message);
            blankvalue = modesty(llGetRegionName());
        }
        else llSay (0,"Not valid");
    }
    touch_end(integer num_detected)
    {
          llSay(chan_no, manualclick(llDetectedLinkNumber(0),llDetectedTouchFace(0)));
          blankvalue = modesty(llGetRegionName());
    }
 
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎