04-29-2013, 07:51 AM
PHP Code:
//Pose Stand With A Nice Hello from You
//Second Life Linden Scripting Language Library (http://wiki.secondlife.com/wiki/Category:LSL_Library)
//Minor Addition by Chimera Firecaster (http://chimerafire.wordpress.com/) - 05/11/2010
//Use:
// 1. Rez an cylinder and create a posing stand from it.
// 2. Give the cylinder a name. For example, if you have a store named Main Street
// Clothing, you would name it Main Street Clothing Posing Stand. If you are
// making this for a friend, then use your name: Mary Lamb Posing Stand. The
// name of the posing stand will appear before the greeting message.
// 3. Place this script into the "Contents" of the Object
// 4. To edit the script, double-click on its name in "Contents'
// 5. Look for "REPLACE YOUR MESSAGE..." below and replace
// the text with your own message.
// 6. On the script editing dialog you will see "Mono"
// Make sure it is checked. Then click on Save.
//Note: this is a FREE script. It is given generously to the Second Life
// community without the expectation of anything in return. It may be
// distributed, but please do not charge for it. That's bad form. Besides
// dishonoring the kindness of others will most certainly bring you bad karma.
//-----Do Not Remove Above Header
key mkLoungingAgentKey = NULL_KEY;
integer miPermissionsAcquired = FALSE;
default
{
state_entry()
{
//overriden sit target
//lower them a bit
vector vLoungeTarget = <0.00, 0.00, 1.00>;
rotation rX;
rotation rY;
rotation rZ;
rotation r;
//build rotations
//Note: this is broken out like this to simplify the
// process of finding the correct sit angle. I
// use the following form until I have the rotation
// that I want perfect, and then I simply
// hardcode the perfected quaterion and remove
// this mess.
//
rX = llAxisAngle2Rot( <1,0,0>, 0 * DEG_TO_RAD); //cartwheel
rY = llAxisAngle2Rot( <0,1,0>, 0 * DEG_TO_RAD); //sumersault
rZ = llAxisAngle2Rot( <0,0,1>, 0 * DEG_TO_RAD); //turn in place
//combine rotations
r = rX * rY * rZ;
//override 'sit' on pie menu
llSetSitText( "Stand" );
//override default sit target and rotation on prim
llSitTarget( vLoungeTarget, r );
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
key agent = llAvatarOnSitTarget();
if ( mkLoungingAgentKey == NULL_KEY && agent != NULL_KEY )
{
//changed user
//cache new user key and request their permissions
mkLoungingAgentKey = agent;
llRequestPermissions(mkLoungingAgentKey,PERMISSION_TRIGGER_ANIMATION);
}
else if ( mkLoungingAgentKey != NULL_KEY && agent == NULL_KEY)
{
//user is getting up
if ( miPermissionsAcquired )
{
//restore anims
llStopAnimation("turn_180");
}
//reset the script to release permissions
llResetScript();
}
}
}
run_time_permissions(integer parm)
{
if(parm == PERMISSION_TRIGGER_ANIMATION)
{
//REPLACE YOUR MESSAGE IN THE AREAS BETWEEN QUOTES " xxxxx " " xxxxx "
//Watch carefully that you only replace the text between quotes
llInstantMessage(mkLoungingAgentKey,"Hello " + llKey2Name(mkLoungingAgentKey) + ". Thanks for using our posing stand and have a wonderful day");
//set permission flag
miPermissionsAcquired = TRUE;
//cancel the sit anim
llStopAnimation("sit");
llStartAnimation("turn_180");
}
}
}