Geezmo Design Manager - Trasparency

Thread Started By boogaloo

2459
0
  • 33 Vote(s) - 3.24 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rate Thread
#1
PHP Code:
/*
Bornslippy Ruby  presents...
Geezmo Design Manager - Trasparency
This script can handle: Alpha, Chat, Communications, Dialog, Inventory, Math, MultiStates, Link, Owner, Primitive, Scripts, Texture, todo

Copyright (c) 2010 Bornslippy Ruby

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Geezmo Design Manager - Trasparency"), to
deal in Geezmo Design Manager - Trasparency without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of Geezmo Design Manager - Trasparency, and to permit persons to whom Geezmo Design Manager - Trasparency is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
http://secondlife.coolminds.org
*/

// Copyright (C) 2009 Bornslippy Ruby ( Geezmo Lab. )
//
key Creator "730d4a21-c72b-4a3a-b1d5-099868bf31ec";
string PrimsTag "GZM.DM";

integer Channel;
integer Listen;

string ModuleName;

integer GZM_SETCHANNEL 100;
integer GZM_SETOWNER 101;
integer GZM_MENUREQUEST 203;
integer GZM_REQUEST 320;

list 
PrimsToUpdate = [1];
list 
PrimsToUpdateNames;

integer Start;

string PrimToChange;

AlphasMenu(key _Idstring Prims)
{
    
Dialog_Id"Please choose the transparency level for the primset: " Prims, ["Visible""10""20""30""40""HalfVisible""60","70","80","90""Transparent","Back <<"], Channel );
}

PrepareAlphastring Alpha )
{
    
integer i 1;
    
integer x;            
    for(;
i<llGetListLengthPrimsToUpdate );i+=2)
        if ( ( 
PrimToChange == "All" )
            || 
PrimToChange != "All" && llList2StringPrimsToUpdate) == PrimToChange )
            
SetAlphallList2IntegerPrimsToUpdatei+), Alpha );
    
    
PrimToChange "";
}

SetAlphainteger Sidestring Alpha )
{
    if ( 
Side != -)
    {
        if ( 
Alpha == "Transparent" )
            
llSetLinkAlphaSide0ALL_SIDES );
        else if ( 
Alpha == "HalfVisible" )
            
llSetLinkAlphaSide.5ALL_SIDES );
        else if ( 
Alpha == "Visible" )
            
llSetLinkAlphaSide1ALL_SIDES );
        else
            
llSetLinkAlphaSide, (float)("0." + (string)(100-(integer)Alpha)), ALL_SIDES );
    }
}

// -------------------------------------------------------------------

Menu(key _Id)
{
    
PrimToChange "";
    list 
Primsets List2ButtonsGetButtons(PrimsToUpdateNamesStart) );
    
integer Length llGetListLength(Primsets);
    
string text;
    if ( 
Length text "Please choose a primset below:";
    else {
        
text "No one primset found.";
        
Primsets = ["Ok""Back <<"];
    }
    
    
Dialog_IdtextList2Buttons(Primsets), Channel );

    if ( ! 
Length 
        
llInstantMessage_Id"You have to add the prefix \""+PrimsTag+"\" on at least one object's prim name, like: "+PrimsTag+"object primset1 blah blah" );
}

list 
UpdateObjectData( )
{
    
PrimsToUpdateNames = [];
    
integer NPrims llGetObjectPrimCount(llGetKey());
    
    list 
_List;
    
string Name;
    
integer _i;
    
    if ( 
NPrims ) {
        
PrimsToUpdateNames += "All";
        
_List += ["All", -2];
    
        for(;
_i<=NPrims;++_i)
        {
            
Name llGetLinkName(_i);
            if ( 
llStringTrimllList2StringllParseString2ListName, [" "],[] ), 0), STRING_TRIM ) == PrimsTag )
            {
                
_List += [llGetSubStringNamellStringLength(PrimsTag)+1llStringLengthName ) ), _i];
                if ( !~
llListFindListPrimsToUpdateNames, [llGetSubStringNamellStringLength(PrimsTag)+1llStringLengthName ) )] ) )
                    
PrimsToUpdateNames += llStringTrimllGetSubStringNamellStringLength(PrimsTag), llStringLengthName ) ), STRING_TRIM );
            }
        }
    } else 
PrimsToUpdateNames = [1];

    return 
_List;
}

list 
GetButtons(list _Listinteger _Start)
{
    
integer i _Start;
    list Return;
    
integer Length llGetListLength(_List);

    if ( 
Length )
    for (;
i<=(_Start+9);++i)
    {
        if ( 
Length )
            Return += 
llList2String(_Listi);
            
        if ( ( (
_Start+) == && _Start Length ) || == Length )
            Return += 
"Back <<";

        else if ( (
_Start+9) == && (_Start+10) < Length )
            Return += 
">> Next";

        if ( 
>= Length = (_Start+11);
    }
    
    return Return;
}

list 
List2Buttons( list List )
{
    list 
Ret;
    
    
integer i;
    
integer Length llGetListLength( List );
    
    for( ;
i<Length;++i)
        
Ret += String2ButtonllList2String( List, ) );
        
    return 
Ret;
}

string String2Buttonstring String )
{
    return (
llStringTrimllGetSubStringString023 ), STRING_TRIM ));
}

Dialog(key _Idstring _Text, list _Buttonsinteger _Channel)
{
    if ( 
_Id == NULL_KEY _Id llGetOwner();
    
llDialog_Id"\n :: Geezmo * Design Manager :: "+ModuleName+"\n"+_Text_Buttons_Channel );
}

Init()
{
    
Start 0;
    
Channel = (integer) ( llFrand( -1000000000.0 ) - 1000000000.0 );
    
ModuleName llStringTrimllList2StringllParseString2ListllGetScriptName(), ["-"], [] ), ), STRING_TRIM );
    
PrimsToUpdate = [1] + UpdateObjectData();
}

default
{
    
on_rezinteger _p )
    {
        
Init();

        
llListenRemove(Listen);
        
Listen llListen(Channel"""""");
    }
    
    
state_entry()
    {
        
//if (Creator != llGetCreator()) state Disabled;
        
Init();
        
        
llListenRemove(Listen);
        
Listen llListen(Channel"""""");
    }
    
    
changedinteger _c )
    {
        if ( 
_c CHANGED_LINK )
            
PrimsToUpdate = [1] + UpdateObjectData();
    }
    
    
link_messageinteger _sninteger _nstring _mkey _k )
    {
        if ( 
_n == GZM_SETCHANNEL )
        {
            
Channel = (integer)_m;
            
llListenRemove(Listen);
            
Listen llListenChannel""_k"" );
            return;
        }
        
        if ( 
_n == GZM_SETOWNER )
        {
            
llListenRemove(Listen);
            
Listen llListen(Channel""_k"");
            return;
        }
        
        if ( 
_n == GZM_MENUREQUEST || _m == ModuleName )
        {
            
Start 0;
            
Menu(_k);
            return;
        }
        
        if ( 
_n == GZM_REQUEST )
        {
            
PrimToChange = (string)_k;
            
PrepareAlpha_m );
        }
    }
    
    
state_exit()
    {
        
llListenRemove(Listen);
    }
    
    
listeninteger _cstring _nkey _istring _m )
    {
        if ( 
_m == ">> Next" ) {
            if ( 
PrimToChange != "" )
            {
                
Start += 20;
                
AlphasMenu_i_m );
            } else {
                
Start += 10;
                
Menu(_i);
            }
        } else if ( 
_m == "Back <<" ) {
            if ( ! 
Start llMessageLinkedLINK_THIS210"Core"_i );
            else {
                if ( 
PrimToChange != "" )
                {
                    
Start -= 20;
                    
AlphasMenu_i_m );
                } else {
                    
Start -= 10;
                    
Menu(_i);
                }
            }
        } else {
            if ( 
PrimToChange == "" )
            {
                
integer index llListFindListPrimsToUpdateNames, [_m] );
                if ( ~
index )
                {
                    
Start 0;
                    
PrimToChange _m;
                    
AlphasMenu_illList2StringPrimsToUpdateNamesindex ) );
                    return;
                }
            } else {
                
Start 0;
                
PrepareAlpha_m );
                
Menu(_i);
            }
        }
    }
}
state Disabled{state_entry(){}} 

[To see links please register here]

Reply




Forum Jump:

1 Guest(s)
Share this:

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...