Difference between revisions of "LlGetAnimationList"

From Second Life Wiki
Jump to navigation Jump to search
m (remove needless complication)
m
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{LSL Function/avatar|avatar|sim=*}}
|inject-2={{LSL Function/avatar|avatar|sim=*}}{{Issues/BUG-1731}}
|func_id=266|func_sleep=0.0|func_energy=10.0
|func_id=266|func_sleep=0.0|func_energy=10.0
|func=llGetAnimationList|return_type=list|p1_type=key|p1_name=avatar
|func=llGetAnimationList|return_type=list|p1_type=key|p1_name=avatar

Revision as of 02:10, 17 October 2013

Summary

Function: list llGetAnimationList( key avatar );
0.0 Forced Delay
10.0 Energy

Returns a list of keys of playing animations for avatar.

• key avatar avatar UUID that is in the same region

Caveats

  • There is no internal mechanism to get the name of the animations playing.
  • Standard animations can be started and stopped by scripts, so the list returned may not accurately reflect the avatar's state. Use llGetAgentInfo and llGetAnimation when this matters.
  • Some motions are local to the viewer and cannot be detected by scripts.

Examples

This example is a bit involved but there aren't many applications for this function. <lsl>//Simple Animation Override for Walk key old_anim = "6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0"; string new_anim="yoga_float"; integer status; list check; key owner;

default {

   state_entry()
   {
       owner = llGetOwner();
       llRequestPermissions(owner, PERMISSION_TRIGGER_ANIMATION);
       check = [old_anim];
   }
   
   run_time_permissions(integer p)
   {
       if(p & PERMISSION_TRIGGER_ANIMATION)
       {
           llSetTimerEvent(0.2);
       }
   }
   timer()
   {
       if(llGetAgentInfo(owner) & AGENT_WALKING)
       {
           list anims = llGetAnimationList(owner);
           if(~llListFindList(anims, check))
           {
               status = 1;
               llStartAnimation(new_anim);
               llStopAnimation(old_anim);
           }
       }
       else if(status)
       {
           llStopAnimation(new_anim);
           status = 0;
       }
   }
   on_rez(integer p)
   {
       llResetScript();
   }
}</lsl>

See Also

Functions

•  llGetAgentInfo Gets the avatar info
•  llGetAnimation Get the avatar's base animation state
•  llStartAnimation Start an animation on an avatar
•  llStopAnimation Stop an animation playing on an avatar

Deep Notes

Signature

function list llGetAnimationList( key avatar );