CODE
vector offset=<0.2,0,0.1>;
key avatar;
integer is_sitting;
default
{
state_entry()
{
llSitTarget(offset,ZERO_ROTATION);
llListen(789789, "", "", "");
avatar = llGetKey();
is_sitting = 0;
}
touch_start(integer num)
{
llDialog(llDetectedKey(0), "Choose your position:", ["animation1", "animation2", "animation3", "animation4", "animation5"], 789789);
}
listen( integer channel, string name, key id, string message )
{
if( message == "animation1" )
{ if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llSetLinkPrimitiveParams(2, [ PRIM_POSITION,<0,0,0.25>, PRIM_ROTATION,<0,-0.02,0,1> ] );
llStartAnimation("animation1");
}}
if( message == "animation2" )
{if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llSetLinkPrimitiveParams(2, [ PRIM_POSITION,<0,0,0.5> ,PRIM_ROTATION,<0,-0.03,0,1>] );
llStartAnimation("animation2");
}}
if( message == "animation3" )
{if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llSetLinkPrimitiveParams(2, [ PRIM_POSITION,<0.3,0,0.42> ] );
llStartAnimation("animation3");
}}
if( message == "animation4" )
{if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llSetLinkPrimitiveParams(2, [ PRIM_POSITION,<0,0,1.4>,PRIM_ROTATION,<0,0,0,1> ] );
llStartAnimation("animation4"); }}
if( message == "animation5" )
{
if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llSetLinkPrimitiveParams(2, [ PRIM_POSITION,<0,0,0.41> ] );
llStartAnimation("animation5");
}}
}
changed(integer change)
{
if(change & CHANGED_LINK)
{
key avatar = llAvatarOnSitTarget();
if(avatar != NULL_KEY)
{
llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION);
llSetLinkPrimitiveParams(2, [ PRIM_POSITION,<0,0,0.25>, PRIM_ROTATION,<0,-0.02,0,1> ] );
llStartAnimation("animation1");
}
else
{
if((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && is_sitting)
{
is_sitting = 0;
llStopAnimation("animation1");
llStopAnimation("animation2");
llStopAnimation("animation3");
llStopAnimation("animation4");
llStopAnimation("animation5");
}
}
}
}
run_time_permissions(integer a)
{
if (a & PERMISSION_TRIGGER_ANIMATION)
{
string null=(string)NULL_KEY;
list a=llGetAnimationList(avatar);
integer b;
for (b;b<llGetListLength(a);b++)
{
if (llList2String(a,b)!= null )
{
if(llList2String(a,b) != "2408fe9e-df1d-1d7d-f4ff-1384fa7b350f")
{
llStopAnimation(llList2String(a,b));
}
}
}
}
}
on_rez(integer start_param)
{
llResetScript();
}
}