Jump to content

Mistress Lycia

  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About Mistress Lycia

  • Rank
  1. Check my recent post: http://community.secondlife.com/t5/LSL-Library/Lycia-s-Lola-Tango-Manipulator/m-p/2237411 Hope this helps! Lycia
  2. Here's a little script I wrote to facilitate the use of the tangos breasts I'm wearing. You can grab a full package for free at https://marketplace.secondlife.com/p/Lycias-Lola-Tango-Manipulator/5349220? Have fun! Mistress Lycia Code: //Lolas TANGO texture manipulation script by Mistress Lycia //Based in parts on Multiple TANGO Layer Switcher by Niccola Biedermann as modded by Kaliska //Thanks also to the lsl wiki and script library //VERSION HISTORY //Version 0.2: automatically turn transparency off when new texture applied; new command bh/th to hide bra or top layer //Version 0.1: first release //Constants integer CHANNEL = 6; // chat channel for commands string TOP_LAYER_NAME = "Lolas:::Tango:::Top Layer"; string BRA_LAYER_NAME = "Lolas:::Tango:::Bra Layer"; string SKIN_LAYER_NAME = "Lolas:::Tango:::Skin Layer"; string BRA_NOTECARD = "Bikinis"; string TOP_NOTECARD = "Tops"; string SKIN_NOTECARD = "Skins"; // Globals integer gLinkIDToChange=0; //0=nothing integer gBraItemLink=0; // link no for bra layer integer gTopItemLink=0; // link no for top layer integer gSkinItemLink=0; // link no for top layer string gCurrentNotecardName=""; integer gListenID; // listen handler for listener key notecardQueryId; integer notecardLine; integer gBraTransparency = 2; // transparency of bra layer, 2% helps alpha layers render correctly integer gTopTransparency = 2; // transparency of top layer, 2% helps alpha layers render correctly // though having both top and bra showing at 2% can yield odd results // so if the bra shows through the top then set the top to 0% transparency find_linked_items() { gBraItemLink = 0; gTopItemLink = 0; gSkinItemLink = 0; integer i = llGetNumberOfPrims(); for ( ; i > 0; i-- ) { string strName = llGetLinkName(i); if ( strName == TOP_LAYER_NAME ) { gTopItemLink = i; } if ( strName == BRA_LAYER_NAME ) { gBraItemLink = i; } if ( strName == SKIN_LAYER_NAME ) { gSkinItemLink = i; } } } initialize() { if ( gListenID != 0 ) { // deactivate listener just in case we don't find all the linked items llListenRemove(gListenID); gListenID = 0; } find_linked_items(); if ( gTopItemLink > 0 && gBraItemLink > 0 && gSkinItemLink > 0) { // linked items found, start listener gListenID = llListen(CHANNEL,"",llGetOwner(),""); } else { llOwnerSay("Error in texture script("+llGetScriptName()+"): Layers not found!"); } } listNotecard(string notecardName) { // Check the notecard exists, and has been saved if (llGetInventoryKey(notecardName) == NULL_KEY) { llOwnerSay( "Notecard '" + notecardName + "' missing or unwritten"); return; } llOwnerSay("UUIDs in notecard '" + notecardName + "':"); gCurrentNotecardName=notecardName; notecardLine=0; notecardQueryId = llGetNotecardLine(notecardName, notecardLine); } SetTexture(integer LinkID, key TextureUUID) { if(LinkID==0) { return;} if(llStringLength(TextureUUID)!=36) {llOwnerSay("Not a vaild key: " + (string)TextureUUID);} llSetLinkPrimitiveParams(LinkID, [PRIM_TEXTURE,0,TextureUUID,<0.5, 0.5, 0.0>,<-0.25, 0.25, 0.0>,0]); setTransparency(LinkID, 2); } setTransparency(integer LinkID, integer TranspSetting) { if(LinkID==0) {llOwnerSay("Target Layer not found! Could not set transparency.");return;} if ( TranspSetting<0) {TranspSetting=0;} if ( TranspSetting>100) {TranspSetting=100;} llSetLinkAlpha(LinkID, (float)(100-TranspSetting)/100.0, ALL_SIDES); llOwnerSay("Transparency set to "+(string)TranspSetting+"%."); } default { state_entry() { initialize(); } dataserver(key query_id, string data) { if (query_id == notecardQueryId) { if (gLinkIDToChange==0) { if (data == EOF) llOwnerSay("Done reading notecard " + gCurrentNotecardName +", read " + (string) notecardLine + " notecard lines."); else { ++notecardLine; llOwnerSay( (string) notecardLine + " - " + llGetSubString(data,0,llSubStringIndex(data,"|")-1)); notecardQueryId = llGetNotecardLine(gCurrentNotecardName, notecardLine); } } else { if (data == EOF) llOwnerSay("Error reading notecard " + gCurrentNotecardName +"!"); else { SetTexture(gLinkIDToChange, llGetSubString(data,llSubStringIndex(data,"|")+1,-1)); gLinkIDToChange=0; llOwnerSay("Done!"); } } } } changed(integer change) { if ( change & CHANGED_LINK ) { // number of linked items has changed initialize(); } } listen(integer channel, string name, key id, string message) { if ( id != llGetOwner()) { return ;} //not our master's voice string strLayer = llToLower(llGetSubString(message,0,1)); //List notecards: bl=bra notecard, tl=top notecard, sl=skin notecard if(strLayer=="bl") { listNotecard(BRA_NOTECARD); return;} if(strLayer=="tl") { listNotecard(TOP_NOTECARD);return;} if(strLayer=="sl") { listNotecard(SKIN_NOTECARD);return;} //Hide layer: bh=bra hide, th:Top hide if(strLayer=="bh") { setTransparency(gBraItemLink,100); return;} if(strLayer=="th") { setTransparency(gTopItemLink,100); return;} //get number after command string strRemainder = llStringTrim(llGetSubString(message,2,-1),STRING_TRIM); if ( (string) ( (integer) strRemainder ) != strRemainder ) // check we've been given an integer {llOwnerSay("Please give number after transparency (0-100) and texture commands!");return;} //Set Transparency: bt=bra trans, tt:Top trans if(strLayer=="bt") { setTransparency(gBraItemLink,(integer)strRemainder); return;} if(strLayer=="tt") { setTransparency(gTopItemLink,(integer)strRemainder); return;} //Set Texture by notecard line: bx=bra texture, tx:top texture, sx:skin texture if((integer)strRemainder<1) {llOwnerSay("Notecardline must be valid!");return;} if(strLayer=="bx") { gLinkIDToChange=gBraItemLink; notecardQueryId = llGetNotecardLine(BRA_NOTECARD, (integer)strRemainder-1); return;} if(strLayer=="tx") { gLinkIDToChange=gTopItemLink; notecardQueryId = llGetNotecardLine(TOP_NOTECARD, (integer)strRemainder-1); return;} if(strLayer=="sx") { gLinkIDToChange=gSkinItemLink; notecardQueryId = llGetNotecardLine(SKIN_NOTECARD, (integer)strRemainder-1); return;} } }Manual: Mistress Lycia's Lola Tango Manipulator //Based in parts on Multiple TANGO Layer Switcher by Niccola Biedermann as modded by Kaliska //Thanks also to the lsl wiki and script library //VERSION HISTORY //Version 0.2: automatically turn transparency off when new texture applied; new command bh/th to hide bra or top layer //Version 0.1, first release MANUAL ====== What is it? ----------- This script allows you to manipulate skin, top and bra layer of your Lolas Tangos - Set the transparency of bra and skin layer - Set the texture of either bra, top or skin layer to any UUID you like The script uses the notecards to store UUIDs of your skin and clothing. The UUID uniquely ? identifies the textures used in SL. If you know the UUID of a piece of clothing you're wearing ? (e.g. a top, shirt, bra), you can use the clothing with your lolas even when the creator didn't ? give you an applier. Installation: ------------- - Right click your boobs (can do while you're wearing them) - put the script and the 3 notecards ("Bikinis", "Tops", "Skins") into your boobs That's it! Notecard format --------------- Each line lists one item with a description and a UUID. Write down a description (I recommend to use the exact name of your clothing as it appears in the inventory), followed by "|", then the UUID in standard SL format. Example (not a real UUID) Sexy Top White|12345f6c-12e5-123f-12345-4d9d9bf70000 Put as many lines in your notecards as you like. Commands: --------- The script listen son channel 6. So in order to access the script, start what you write with "/6". Every command starts with "s" for skin layer, "t" for top layer and "b" for bra layer. Second letter is "l" for list items, "t" for set transparency and "x" for set texture". List notecard entries: Write "/6sl" to list all entries in skin notecard, "/6bl" for bikini layer notecard and "/6tl" for top layer notecards. Every line starts with a number, use this with the "x" command to apply the textures. First line=1. Apply textures: Write "/6sx" followed by a line number (obtained with /6sl) to apply a UUID from your notecard to your skin layer, example: /6sx5 - this would apply the UUID from the 5th line in your skins notecard If you use "/6bx" or "/6tx", the script reads the corresponding line from the bikinis or tops notecard, respectively. When applying a new texture to bra or top layer, the layer will automatically turned visible. Hide a layer write "/6bh" to hide bra layer, write "/th" to hide top layer. Same as setting transparency to 100%. Set transparency: Write "/6tt" followed by a number 0-100 to set transparency. 0=fully opaque, 100=invisible. Say /6tt50 to make the layer semi transparent. Use /6tt100 to make the top disappear completely. Use /6tt0 to make it fully visible. That's it! Have fun and play responsibly! Mistress Lycia
  • Create New...