Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

when sitting on a object

MrDanny Magic
Registered User
Join date: 24 Jul 2008
Posts: 2
07-24-2008 07:28
Hello im fairly new at lsl and im really stuck on something i just started building furniture to open a store and want to be able to add a poseball inside of the furniture content and when clicked the poseball shows up ready to sit on in a position where i tell it.

EG. seat when clicked my sitting poseball comes out where it should and i am able to right click it and sit down and the poseball turns invisable. Then when i have finished sitting i can stand up and put the poseball away again by clicking the seat can anyone please help me i have searched through many forums and the wiki but can't seem to find out how to do it thank you.
Dora Gustafson
Registered User
Join date: 13 Mar 2007
Posts: 779
07-24-2008 07:36
there are free scripts available all over the place for poseballs. Those I have on mind do not show by clicking the furniture but you can tell them 'show' or 'hide'. that is allmost what you ask:)
Here is one:
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.0, 0.0, 0.05>;

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

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


// 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;

// * * * * * * * STOP MODIFY * * * * * * * *//




set_text()
{
if (llStringLength(HOVERTEXT)>0)
{
rgb=llCSV2List(HOVER_RGB);
llSetText(HOVERTEXT,<llList2Float(rgb,0)*0.003921568627450980392156862745098,llList2Float(rgb,1)*0.003921568627450980392156862745098,llList2Float(rgb,2)*0.003921568627450980392156862745098>,1.0);

}
else
llSetText("",<0,0,0>,0.0);
}
start_listen()
{
llListenRemove(listener);
if (LISTEN==TRUE)
listener=llListen(CHANNEL,"","","");
}
hide_me()
{
llSetAlpha(0.0, ALL_SIDES);
llSetText("",<0,0,0>,0.0);
}
show_me()
{
llSetAlpha(1.0, ALL_SIDES);
set_text();
}
list rgb;
string animation;
integer listener;
default
{
state_entry()
{
if (llStringLength(SIT_TEXT)>0)
llSetSitText(SIT_TEXT);
llSitTarget(POSITION, ZERO_ROTATION);
set_text();
start_listen();
}

on_rez(integer r)
{
start_listen();
}

listen(integer channel, string name, key id, string msg)
{
if (msg=="hide")
{
hide_me();
llMessageLinked(LINK_SET,0,"hide", NULL_KEY);
}
else if (msg=="show")
{
show_me();
llMessageLinked(LINK_SET,0,"show", NULL_KEY);
}
}

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);
llSetAlpha(1.0, ALL_SIDES);
set_text();
animation="";
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
llStopAnimation("sit");
animation=llGetInventoryName(INVENTORY_ANIMATION,0);
llStartAnimation(animation);
llSetAlpha(0.0, ALL_SIDES);
llSetText("",<0,0,0>,0.0);
}
}

link_message(integer sender_num, integer num, string str, key id)
{
if (str=="hide")
{
hide_me();
}
else if (str=="show")
{
show_me();
}
}
}
_____________________
From Studio Dora
MrDanny Magic
Registered User
Join date: 24 Jul 2008
Posts: 2
thanks so much
07-24-2008 07:51
thank you very much for your help
Daten Thielt
Registered User
Join date: 1 Dec 2006
Posts: 104
07-24-2008 14:12
even better idea scrap the psoeballs and save urself some prims. just imbed the script into a prim and adjust the sit position