Difference between revisions of "LlGetAnimationList"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 7: Line 7:
|spec
|spec
|caveats=*There is no internal mechanism to get the name of the animations playing.
|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.
|constants
|constants
|examples=
|examples=
Line 60: Line 61:
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llGetAgentInfo]]|Gets the avatar info}}
|also_functions={{LSL DefineRow||[[llGetAgentInfo]]|Gets the avatar info}}
{{LSL DefineRow||[[llGetAnimation]]|Get an over simplified avatar info string}}
{{LSL DefineRow||[[llGetAnimation]]|Get the avatar's base animation state}}
{{LSL DefineRow||[[llStartAnimation]]|Start an animation on an avatar}}
{{LSL DefineRow||[[llStartAnimation]]|Start an animation on an avatar}}
{{LSL DefineRow||[[llStopAnimation]]|Stop an animation playing on an avatar}}
{{LSL DefineRow||[[llStopAnimation]]|Stop an animation playing on an avatar}}

Revision as of 20:05, 1 May 2009

Summary

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

Returns a list of all playing animations for avatar described by the key id.

• key id 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.

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 id );