Difference between revisions of "LlStartAnimation"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
{{Issues/SVC-4569}}{{Issues/SVC-6300}}{{Issues/SVC-6866}}{{LSL_Function/permission|PERMISSION_TRIGGER_ANIMATION}}{{LSL_Function/inventory|anim|uuid=false|type}}{{LSL_Function
{{LSL_Function
|inject-2={{Issues/SVC-4569}}{{Issues/SVC-6300}}{{Issues/SVC-6866}}
{{LSL_Function/permission|PERMISSION_TRIGGER_ANIMATION}}
{{LSL_Function/inventory|anim|uuid=false|type}}
|func_id=129|func_sleep=0.0|func_energy=10.0
|func_id=129|func_sleep=0.0|func_energy=10.0
|func=llStartAnimation|sort=StartAnimation
|func=llStartAnimation|sort=StartAnimation
|p1_type=string|p1_name=anim|p1_desc= or [[Internal Animations|built-in animation]]
|p1_type=string|p1_name=anim|p1_desc= or [[Internal Animations|built-in animation]]
|func_footnote
|func_footnote
|func_desc=Start animation '''anim''' for agent that granted [[PERMISSION_TRIGGER_ANIMATION]] if the permission has not been revoked.
|func_desc=Start animation {{LSLP|anim}} for agent that granted [[PERMISSION_TRIGGER_ANIMATION]] if the permission has not been revoked.
|return_text
|return_text
|spec
|spec

Revision as of 21:22, 14 June 2012

Summary

Function: llStartAnimation( string anim );

Start animation anim for agent that granted PERMISSION_TRIGGER_ANIMATION if the permission has not been revoked.

• string anim an item in the inventory of the prim this script is in or built-in animation

To run this function the script must request the PERMISSION_TRIGGER_ANIMATION permission with llRequestPermissions.

Caveats

Permissions
  • If anim is missing from the prim's inventory then an error is shouted on DEBUG_CHANNEL.
  • Only 30 animations can be played at a time. (Prior to 1.25.4 the limit was 15 and prior to 1.25.3 there was no limit at all.)
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> default {

   touch_start(integer detected)
   {
       llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
   }
   run_time_permissions(integer perm)
   {
       if (perm & PERMISSION_TRIGGER_ANIMATION)
       {
           llStartAnimation("sit");
           llOwnerSay("animation will end in 5 seconds");
           llSetTimerEvent(5.0);
       }
   }
   timer()
   {
       llSetTimerEvent(0.0);
       llStopAnimation("sit");
   }

} </lsl> Add an animation or pose inside the same object as this script: <lsl> string animation; // the first animation in inventory will automatically be used

 // the animation name must be stored globally to be able to stop the animation when standing up

default {

   state_entry()
   {
       // set sit target, otherwise this will not work 
       llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
   }

   changed(integer change)
   {
       if (change & CHANGED_LINK)
       {
           key av = llAvatarOnSitTarget();
           if (av) //evaluated as true if not NULL_KEY or invalid
               llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION);
           else // avatar is standing up
           {
               if (animation)
                   llStopAnimation(animation); // stop the started animation
               llResetScript(); // release the avatar animation permissions
           }
       }
   }
   
   run_time_permissions(integer perm)
   {
       if (perm & PERMISSION_TRIGGER_ANIMATION)
       {
           animation = llGetInventoryName(INVENTORY_ANIMATION,0); // get the first animation from inventory
           if (animation)
           {
               llStopAnimation("sit"); // stop the default sit animation
               llStartAnimation(animation);
           }
       }
   }

}

</lsl>

See Also

Events

•  run_time_permissions Permission receiving event

Functions

•  llGetPermissions Get the permissions granted
•  llGetPermissionsKey Get the agent who granted permissions
•  llRequestPermissions Request permissions
•  llStopAnimation

Articles

•  Script permissions
•  Internal_Animations lists internal Animations always available

Deep Notes

All Issues

~ Search JIRA for related Issues
   Allow animations to be specified by key
   llStartAnimationSynced() - start an animation synchronised with a given timestamp
   llPreloadAnimation() - a function for preloading animations ready to be played on-demand without delay

Signature

function void llStartAnimation( string anim );