Welcome to www.erzsabet.com


My Tiny Empires Calculator

Info about Erz's Prague Clock and Prague Clock Tower

Skirt Maker Demo


Click to play QT Movie on how to use the Skirt Maker (79.9 MB)

Buy it at marketplace (the new XStreetSL)

Skirt Maker Demo 2


Click to play QT Movie on how to use the Skirt Maker show that YOU are the creator (20.5 MB)

Skirt Maker HUDD


Click to play QT Movie on how to use the Skirt Maker HUDD (40 MB)

Buy it at marketplace (the new XStreetSL)

Puddle Jumper Tutorial: Almost No Config Tansporter


Click to play QT Movie on how to use the Puddle Jumper (36.7 MB)

Erz Multi Rez Vender Demo


Click to play QT Movie on how to set up your vender (11 MB)

Erz Multi Rez Vender Tutorial: Making a sample for your Vender


Click to play QT Movie on how to make a sample to rez for your vender (24 MB)

How to set up Sit Animation in a Chair


Click to play QT Movie on how to set up your chair (63 MB)

Sit Target Helper Script

// Sit target system by Lex Neva.  Please distribute willy-nilly.
//See SitTargetSetter for instructions. 

default
{
    state_entry()
    {
        llSitTarget(<0,0,1>, ZERO_ROTATION);
    }
    
    changed(integer change) {
        if (llAvatarOnSitTarget() != NULL_KEY)
            llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);       
    }
    
    run_time_permissions(integer perm) {
        string anim = llGetInventoryName(INVENTORY_ANIMATION, 0);
        if (anim != "") {
            llStopAnimation("sit");
            llStopAnimation("sit_generic");
            llStopAnimation("sit_female");            
            llStartAnimation(anim);
        }
    }
}

Sit Target Setter Script

// Sit target system by Lex Neva.  Please distribute willy-nilly.
//Written by Lex Neva. Please distribute willy-nilly.

//Instructions:

//1. Place the "sit target setter" script into a prim that will get the sit target.
//2. Rez the Sit Target Helper.
//3. Sit on the Sit Target Helper.
//4. Move the Sit Target Helper so that you are positioned exactly where you want the sit target to be.
//5. Click the prim you put the "sit target setter" script in.
//6. Now the sit target is set. You can use the code the script outputs in a poseball script. Once the
//sit target is set, you can remove the "sit target setter" script.

//NOTE: To use a sit animation, place one copy in the helper and one copy in the base object. If the animation is no-copy, place the animation in the helper first while you position yourself, and then move it over to the base after you click it. Only the first animation in the inventory will be used.


//MORE HELP: This is a completely free, open-source system. As such, I am not available //to support it. Please feel free to ask for help on the forums.





default
{
    touch_start(integer total_number) 
    {
        llSensor("Sit Target Helper", NULL_KEY, ACTIVE|PASSIVE, 96, PI);
        llOwnerSay( "Searching for Sit Target Helper...");
    }
    
    no_sensor() 
    {
        llOwnerSay( "Sit Target Helper not found.  No sit target set.");
        llSitTarget(ZERO_VECTOR, ZERO_ROTATION);
    }
    
    sensor(integer num) 
    {
        
        if (num > 1) 
        {
            llOwnerSay( "Multiple Sit Target Helpers found.  Using closest helper.");
        } 
        else 
        {
            llOwnerSay( "Sit Target Helper found.  Setting sit target.");
        }
        
        vector   helper_pos = llDetectedPos(0);
        rotation helper_rot = llDetectedRot(0);
        
        vector   my_pos = llGetPos();
        rotation my_rot = llGetRot();
        
        // calculate where the avatar actually is
        vector avatar_pos = helper_pos + <0,0,1> * helper_rot; // due to helper's sit target
        avatar_pos = avatar_pos - <0,0,0.186> + <0,0,0.4> * helper_rot; // correct for a bug in llSitTarget(), for helper sit target
        
        vector target_pos = (avatar_pos - my_pos) / my_rot;
        target_pos = target_pos + <0,0,0.186>/my_rot - <0,0,0.4>; // correct for the bug again, this time in my sit target
        rotation target_rot = helper_rot / my_rot;
        
        llSitTarget(target_pos, target_rot);
        llOwnerSay( "llSitTarget(" + (string)target_pos + ", " + (string)target_rot + ");");
    }
    
    changed(integer change) 
    {
        if (llAvatarOnSitTarget() != NULL_KEY)
            llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);       
    }
    
    run_time_permissions(integer perm) 
    {
        string anim = llGetInventoryName(INVENTORY_ANIMATION, 0);
        if (anim != "") 
        {
            llStopAnimation("sit");
            llStopAnimation("sit_generic");
            llStopAnimation("sit_female");
            llStartAnimation(anim);
        }
    }
}

Sit Script using first Animation Found Script

// THis is Erz' adaptation tha automatically detects the name of the animation in the chair or pose ball
// in which the chair resides.

// all you have to do is:
//    1.  adapt the llSitTarget line (get that from the SitTargetHelper/Helper)
//    2.  Change the HoverText, Color and Transparency (or not)
//    3.  Change the SitText (what it says in the Pie menu) -- or not





//*****************************************
//*     Nyterave animation ball script!   *
//*           FREE TO USE V2.1            * 
//*        by Sitting Lightcloud          *
//******************************************/
//--SitTargetHelper Version
//-- change hovertext, colour, and trans to suit
//-- add pie menu replacement if you really want to
//-- paste the sit target setter info into line 47

// hovertext above ball. "" for none.
// add '\n ' at the end to move text up i.e.
// string HOVERTEXT="Sit Here\n ";
string HOVERTEXT="";
// hovertext color; use regular vector
vector HOVER_RGB= < 0.7, 0.7, 0.7>;
float HOVER_TRANS = 0.70;


// Pie Menu Sit Text. Will only work for the
// main prim but included it anyway. If no text
// is entered between "" it won't be used.
string SIT_TEXT="";
string animation;

set_text()
{
       if (llStringLength(HOVERTEXT)>0)
        {
            llSetText(HOVERTEXT,HOVER_RGB,HOVER_TRANS);
            
        }    
        else
           llSetText("",<0,0,0>,0.0);     
}




default 
{
    state_entry() 
    {
        if (llStringLength(SIT_TEXT)>0)
            llSetSitText(SIT_TEXT);

//--Get this line from the SitTargetSetter:===========================================================================
        llSitTarget(<-0.23889, -0.42772, -0.06031>, <-0.10956, -0.05341, -0.98030, -0.15540>);
        animation = llGetInventoryName(INVENTORY_ANIMATION,0);
        set_text();
       
    }
    

    
    changed(integer change) 
    { 
        if (change & CHANGED_LINK) 
        {
            
            if (llAvatarOnSitTarget() != NULL_KEY) 
            { 
                llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
            }
            else
            {
                integer perm=llGetPermissions();
                if ((perm & PERMISSION_TRIGGER_ANIMATION) && llStringLength(animation)>0)       
                llStopAnimation(animation);
                set_text();
                animation="";
            }
        }
    }
    run_time_permissions(integer perm)
    {
        if (perm & PERMISSION_TRIGGER_ANIMATION)
        {
                llStopAnimation("sit");
                animation=llGetInventoryName(INVENTORY_ANIMATION,0);
                llStartAnimation(animation);
                llSetText("",<0,0,0>,0.0);
        }
        if (perm & CHANGED_INVENTORY)
        {
            animation = llGetInventoryName(INVENTORY_ANIMATION,0); //gets the fist animation found
        }
    }


}

Here is a wonderful set of Instructions in Italian thanks to Sole Albatros and Clelia Ryba:
Bonus Section: nessuna Pose Ball
-Oggi impareremo come usare il Sit Target Helper!

Con questo strumento tu puoi piazzare delle animazioni di seduta (sit animations) all'interno dei prim che compongono il tuo oggetto e non devi aggiungere piccole ball che spuntano da tutte le parti!

-Come prima cosa, trova lo script SitTargetSetter e piazzalo nel Dondolo. Mentre lo fai, inserisci anche lo script 'NA8B and STH and no anim for birds'. --

-Ora rezza l'object SitTargetHelper. Assomiglia ad una pose ball! E funziona pure come una pose ball!

-Edita il SitTargetHelper, poi siedi su di esso. Muovilo intorno finché sembra che tu sia seduto sulla gruccia del Dondolo, giralo nel senso che vuoi, ecc.

-Una volta posizionato, clicca il Dondolo. Apparirà una linea llSitTarget. Copia l'intera riga dalla tua chat history.

-Apri lo script 'NA&B...' nel Dondolo. Cerca una linea arancione lunga che dica //-- Get this line from the SitTargetSetter (prendi questa riga dal SitTargetSetter)

La riga sotto a quella è la llSitTarget function (funzione llSitTarget).

-Salva e controlla che non ci siano errori. Se ce ne sono, urla! -

-Ora scendi dalla ball del SitTargetHelper e siediti sul tuo Dondolo. -Dovresti essere posizionato esattamente sulla gruccia. Clicca il Dondolo e parti: whee!

-Nota che non abbiamo usato alcuna posa nella ball o nello swing. Stiamo usando la seduta generica di SL (generic SL sit). Ciņ significa che non funzionerà solo per avatar uccelli, ma anche per qualsiasi altro avatar.
Gli avatar normali si siederanno normalmente, i piccoli e simili useranno la loro seduta AO. Tutti possono dondolarsi insieme!

-Oh, a proposito di dondolarsi insieme...poiché ci sono tre prim nel Dondolo, tu potrai posizionare fino a tre sedute (sit targets) - una in ciascun prim!
Fai due sedute per piccioncini innamorati - e senza pose ball! Non è forte?

Install GIMP on WindowsXP and Transparant TGA Demo


How to install and use GIMP for your SL Pleasure (29 MB)

Sounds

400 Day Anniversary Clock

I love SecondLife and I love clocks!


Click to play QT Movie



Click to play QT Movie

How to Change your Voice in SL (Mac OSX only)

My Tiny Empires Calculator

CheekAndZar.mov