• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Möbel mit eingebauter Sitzpose

Hier mal ein Script Beispiel

Code:
//script for sitting cross legged on an object
//by Ananda Sandgrain - free to distribute but please don't sell!

key avatar;
vector pos = <-0.25,0,0.8>;  //adjust the position to fit object -must be 
//nonzero in at least one direction or script will not work!
rotation rot = <0,0,0,1>; //adjust rotation (1 in any vector gives 90 deg)

default
{
    state_entry()
    {
        llSitTarget(pos, rot);
    }
    changed(integer change)
    {
        avatar = llAvatarOnSitTarget();
       if(change & CHANGED_LINK)
       {
           if(avatar == NULL_KEY)
           {
                //  You have gotten off
                llStopAnimation("sit_ground");
                llReleaseControls();
                llResetScript();
           }
           else if(avatar == llAvatarOnSitTarget())
           {
                // You have gotten on
                llRequestPermissions(avatar,PERMISSION_TRIGGER_ANIMATION );
           }
        }
    }
        run_time_permissions(integer perms)
        {
        if(perms)
        {
            llStopAnimation("sit");
            llStartAnimation("sit_ground");
        }
        else
        {
            llUnSit(avatar);
        }
    }
}

Wobei ich die auch noch ned so ganz verstehe :D Irgendwie geht mir daraus ned hervor woher er die Sitzposition bezieht da die oberen Werte ja lediglich die Ausrichtung sein dürften. Scheint ja die Animation [libary:cfc6df3fbb]Bewegungsabläufe für [Avatare]. Diese sind oft in bunten Ball-[Objekte] auch [Poseballs] genannt eingebaut und können nur mit externen Programmen ausserhalb von [SecondLife] neu erstellt werden.[/libary:cfc6df3fbb] "Sit_ground" zu verwenden..aber woher bezieht er die ?

Ich löse es bisher meist so das ich meine Poseballs [libary:cfc6df3fbb]Meist farbiges rundes Objekt welches beim darauf setzen den [Avatar] veranlasst eine [Animation] auszuführen.[/libary:cfc6df3fbb] mit einer transparenten Textur [libary:cfc6df3fbb]Eine [Bilddatei] welche über ein [Objekt] gelegt werden kann. Neue [Texturen] müssen vor einer Verwendung auf einem [Objekt] in [SecondLife] für ca. 10 [L$] hochgeladen werden[/libary:cfc6df3fbb] versehe und mit der Sitzfläche verlinke.
 
Es gibt wirklich zwei Möglichkeiten, entweder Poseball [libary:e53fd036b2]Meist farbiges rundes Objekt welches beim darauf setzen den [Avatar] veranlasst eine [Animation] auszuführen.[/libary:e53fd036b2] oder gleich im Möbel.

Letztendlich sind das relativ ähnliche Scripte, Poseball-Skripte lassen nur den ball verschwinden, wenn jemand sitzt. Bei Reinen Möbeln ist das nicht so klasse.

Die PoseBall-Lösung hat den Nachteil des zusätzlich verbrauchten Prims, aber auch den Vorteil, daß man mehrere PoseBalls mit einem Objekt [libary:e53fd036b2]Ein [Objekt ]in [SecondLife] besteht aus einem oder mehreren [Prims] und kann wiederum mit anderen [Objekte] befüllt werden.[/libary:e53fd036b2] verlinken kann und das setzen auf das Objekt [libary:e53fd036b2]Ein [Objekt ]in [SecondLife] besteht aus einem oder mehreren [Prims] und kann wiederum mit anderen [Objekte] befüllt werden.[/libary:e53fd036b2] dann einfach den nächsten freien Poseball [libary:e53fd036b2]Meist farbiges rundes Objekt welches beim darauf setzen den [Avatar] veranlasst eine [Animation] auszuführen.[/libary:e53fd036b2] verwendet.

Reine Möbel verschwenden keinen Prim [libary:e53fd036b2]Kleinste Baueinheit eines [Objekt] in [SecondLife][/libary:e53fd036b2] und es sieht einfach doof aus, wenn über einem Stuhl ein PoseBall schwebt.

Code:
//*****************************************
//*     Nyterave animation ball script!   *
//*           FREE TO USE V2.1            * 
//*        by Sitting Lightcloud          *
//******************************************/

// * * * * * * * MODIFY BELOW * * * * * * *//


// position to sit on the ball e.g <0.0, 0.0, 0.43>
// sit  0.5 meter above the ball
vector POSITION=<-0.5, 0.0, -0.35>;

// hovertext above ball. "" for none.
// add '\n ' at the end to move text up i.e.
// string HOVERTEXT="Sit Here\n ";
string HOVERTEXT="";

// 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="Nimm Platz";


// hovertext color 'r,g,b' e.g. "255,255,255" (white)
string HOVER_RGB="255,255,255";

// LISTEN sets if this ball should listen for voice commands
// or not. You only need to enable this for 1 ball if you
// link several balls to an object. (to reduce lagg).
// Change to TRUE to enable FALSE to disable. 
integer LISTEN=FALSE;

// What channel to listen for hide/show on. If you want to
// listen to normal conversation (hide/show), set channel
// to 0 otherwise the command will be /channel hide, show 
integer CHANNEL=8;
vector MY_ROT = <0,270,270>; //45 degrees around the z-axis, in Euler form
//MY_ROT *= DEG_TO_RAD; //convert to radians
rotation MY_ROTATE; //90 degrees around the x-axis
//PI_BY_TWO
// * * * * * * * STOP MODIFY * * * * * * * *//


set_text()
{
           llSetText("",<270,0,0>,0.0);     
}

list rgb;
string animation;
integer listener;
default 
{
    state_entry() 
    {
        if (llStringLength(SIT_TEXT)>0)
            llSetSitText(SIT_TEXT);
        MY_ROT *= DEG_TO_RAD;    
        MY_ROTATE = llEuler2Rot( MY_ROT );
        //
        llSitTarget(POSITION, MY_ROTATE); 
        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);
        }
    }


}

Dieses Script holt sich einfach mit animation=llGetInventoryName(INVENTORY_ANIMATION,0); die erste Animation [libary:e53fd036b2]Bewegungsabläufe für [Avatare]. Diese sind oft in bunten Ball-[Objekte] auch [Poseballs] genannt eingebaut und können nur mit externen Programmen ausserhalb von [SecondLife] neu erstellt werden.[/libary:e53fd036b2] aus dem Inv. DES OBJEKTES, also Register Inhalt/Content.

Hint: Man kann die Default-Aktivität, welche bei einem Linksklick auf das Objekt [libary:e53fd036b2]Ein [Objekt ]in [SecondLife] besteht aus einem oder mehreren [Prims] und kann wiederum mit anderen [Objekte] befüllt werden.[/libary:e53fd036b2] ausgeführt wird, auch von "Touch" nach "Sit" ändern, dann haben es die User leichter.
 

Users who are viewing this thread

Zurück
Oben Unten