User:Daemonika Nightfire/Scripts/Animation Sit: Difference between revisions
Jump to navigation
Jump to search
| Line 7: | Line 7: | ||
'''Sctipt Time''' ~0.002 ms | '''Sctipt Time''' ~0.002 ms | ||
<lsl> | <lsl> | ||
string | key avatar = ""; | ||
integer sitting; | string animation = ""; | ||
integer sitting = 0; | |||
integer permission = 0; | |||
show() | show() | ||
{ | { | ||
llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT,"SIT HERE",<0.9,0.6,0.2>,1.0, PRIM_COLOR, ALL_SIDES,<1,1,1>,1.0]); | |||
} | } | ||
hide() | hide() | ||
{ | { | ||
llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT,"",ZERO_VECTOR,0.0, PRIM_COLOR, ALL_SIDES,ZERO_VECTOR,0.0]); | |||
} | } | ||
default | default | ||
{ | { | ||
| Line 22: | Line 27: | ||
{ | { | ||
show(); | show(); | ||
animation = llGetInventoryName(INVENTORY_ANIMATION, 0); | |||
llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD)); | llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD)); | ||
} | } | ||
run_time_permissions(integer | |||
run_time_permissions(integer permission) | |||
{ | { | ||
if( | if(permission & PERMISSION_TRIGGER_ANIMATION) | ||
{ | { | ||
sitting | if(sitting) | ||
llStopAnimation("sit_generic"); | { | ||
llStopAnimation("sit_generic"); | |||
llStopAnimation("sit"); | |||
llStartAnimation(animation); | |||
hide(); | |||
} | |||
} | } | ||
} | } | ||
changed(integer change) | changed(integer change) | ||
{ | { | ||
if(change & CHANGED_LINK) | if(change & CHANGED_LINK) | ||
{ | { | ||
if(!sitting) | |||
if( | |||
{ | { | ||
sitting = 1; | |||
avatar = llAvatarOnSitTarget(); | |||
llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION); | llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION); | ||
} | } | ||
else | else if(sitting) | ||
{ | { | ||
if(llKey2Name(avatar) != "") | |||
if( | |||
{ | { | ||
llStopAnimation( | llStopAnimation(animation); | ||
} | } | ||
avatar = ""; | |||
permission = 0; | |||
sitting = 0; | sitting = 0; | ||
show(); | |||
} | } | ||
} | } | ||
if(change & CHANGED_OWNER | if(change & (CHANGED_OWNER|CHANGED_REGION_START|CHANGED_INVENTORY)) | ||
{ | { | ||
llResetScript(); | llResetScript(); | ||
} | } | ||
} | } | ||
on_rez(integer start_param) | on_rez(integer start_param) | ||
{ | { | ||
Revision as of 07:11, 31 August 2012
*DS* ~ Animation Sit with Show/Hide for Balls
To set the Position & Rotation of the Avatar, edit the following Line in each Script. <lsl> llSitTarget("Position in meters" <x,y,z>,llEuler2Rot("Rotation in degrees" <x,y,z>*DEG_TO_RAD)); </lsl> This Script must be placed together with a Pose / Animation in the Object.
Sctipt Time ~0.002 ms
<lsl> key avatar = ""; string animation = ""; integer sitting = 0; integer permission = 0;
show() {
llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT,"SIT HERE",<0.9,0.6,0.2>,1.0, PRIM_COLOR, ALL_SIDES,<1,1,1>,1.0]);
}
hide() {
llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT,"",ZERO_VECTOR,0.0, PRIM_COLOR, ALL_SIDES,ZERO_VECTOR,0.0]);
}
default {
state_entry()
{
show();
animation = llGetInventoryName(INVENTORY_ANIMATION, 0);
llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD));
}
run_time_permissions(integer permission)
{
if(permission & PERMISSION_TRIGGER_ANIMATION)
{
if(sitting)
{
llStopAnimation("sit_generic");
llStopAnimation("sit");
llStartAnimation(animation);
hide();
}
}
}
changed(integer change)
{
if(change & CHANGED_LINK)
{
if(!sitting)
{
sitting = 1;
avatar = llAvatarOnSitTarget();
llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION);
}
else if(sitting)
{
if(llKey2Name(avatar) != "")
{
llStopAnimation(animation);
}
avatar = "";
permission = 0;
sitting = 0;
show();
}
}
if(change & (CHANGED_OWNER|CHANGED_REGION_START|CHANGED_INVENTORY))
{
llResetScript();
}
}
on_rez(integer start_param)
{
llResetScript();
}
} </lsl>
*DS* ~ Animation Sit without Show/Hide for Furniture
This Script must be placed together with a Pose / Animation in the Object.
Sctipt Time ~0.002 ms
<lsl> key avatar = ""; string animation = ""; integer sitting = 0; integer permission = 0;
default {
state_entry()
{
animation = llGetInventoryName(INVENTORY_ANIMATION, 0);
llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD));
}
run_time_permissions(integer permission)
{
if(permission & PERMISSION_TRIGGER_ANIMATION)
{
if(sitting)
{
llStopAnimation("sit_generic");
llStopAnimation("sit");
llStartAnimation(animation);
}
}
}
changed(integer change)
{
if(change & CHANGED_LINK)
{
if(!sitting)
{
sitting = 1;
avatar = llAvatarOnSitTarget();
llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION);
}
else if(sitting)
{
if(llKey2Name(avatar) != "")
{
llStopAnimation(animation);
}
avatar = "";
permission = 0;
sitting = 0;
}
}
if(change & (CHANGED_OWNER|CHANGED_REGION_START|CHANGED_INVENTORY))
{
llResetScript();
}
}
on_rez(integer start_param)
{
llResetScript();
}
} </lsl>