Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Pose stands

Hecate Copperfield
Registered User
Join date: 2 Jan 2009
Posts: 5
02-25-2009 23:16
Can someone tell me how I can make my own pose stand? Thanks Hectae
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
02-26-2009 06:50
It's a matter of inserting a fairly simple script into whatever object you want to use as the stand. If you can't write scripts yourself, look for it in the LSL scripting wiki or, even better, poke around SL for freebies and take one apart. There are zillions of free pose stands out there and they're almost all modifiable.
Hecate Copperfield
Registered User
Join date: 2 Jan 2009
Posts: 5
More on pose stands
02-26-2009 13:03
Thanks for that but could you direct me to either that simple script or a modifiable free pose stand. Many thanks for your assistance Hecate x
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
02-26-2009 13:49
OK, I'll do both. This may seem like self-promotion, but try visiting my shop (Sa Roligt!) at and looking for the freebie box that says something like "Free tools to help adjust your clothing for a better fit." There's a pose stand in there.

In case you want to save yourself a trip, here's the standard script that is in most pose stands ......

CODE


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)
{

//set permission flag
miPermissionsAcquired = TRUE;

//cancel the sit anim
llStopAnimation("sit");

llStartAnimation("turn_180");
}
}
}


Click the "New Script" button in the Contents tab in the contents of whatever you make into a pose stand, and copy this text into it in place of the dummy script that SL gives you. Save it and you're done. It should work like a dream.
Hecate Copperfield
Registered User
Join date: 2 Jan 2009
Posts: 5
Syntax error
02-26-2009 23:06
Thank you for your assistance.
I placed the script as you said but received the syntax error code 48,51
which I believe pointed to these lines. I'm new to code and would appreciate your help

Thanks again

llRequestPermissions(mkLoungingAgentKey,PERMISSION _TRIGGER_ANIMATION);
}
else if ( mkLoungingAgentKey != NULL_KEY && agent == NULL_KEY)
{
Dekka Raymaker
thinking very hard
Join date: 4 Feb 2007
Posts: 3,898
02-27-2009 03:08
I don't know anything about scripting but i could be that you need to remove the space after permissions ~> PERMISSION _
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
02-27-2009 06:37
From: Hecate Copperfield
Thank you for your assistance.
I placed the script as you said but received the syntax error code 48,51
which I believe pointed to these lines. I'm new to code and would appreciate your help

Thanks again

llRequestPermissions(mkLoungingAgentKey,PERMISSION _TRIGGER_ANIMATION);
}
else if ( mkLoungingAgentKey != NULL_KEY && agent == NULL_KEY)
{


Hmmm..... There's nothing wrong with either line -- not too surprising, since the whole thing was simply cut and pasted from a working script -- so my guess is that it has to do with an extra line break somewhere. Check this.... The line that starts with "llRequestPermissions" ends with the semicolon after "PERMISSION_TRIGGER_ANIMATION)". That's all one line. If it isn't in yours, make it one. See if that helps.

Or go to my shop and pick up a freebie to take apart. ;)
Hecate Copperfield
Registered User
Join date: 2 Jan 2009
Posts: 5
Works a treat
02-27-2009 09:34
Perfect....works a treat many thanks. There was a slight gap between a word and a hyphen.

ps lovely shop you have

Hecate xx