Difference between revisions of "LlGetAnimationList"

From Second Life Wiki
Jump to navigation Jump to search
(typo)
(you should use llGetAgentInfo to detect if a user is typing)
Line 4: Line 4:
|func_footnote
|func_footnote
|func_desc
|func_desc
|return_text=of all playing animations for avatar '''id''' by key.
|return_text=of all playing animations for avatar described by the key '''id'''.
|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.
|constants
|constants
|examples=
|examples=
<lsl>// Zand's Keyboard Script
This example is a bit involved but there aren't many applications for this function.
// by Zand Gundersen
<lsl>//Simple Animation Override for Walk
// Makes Object only appear while typing.
key old_anim = "6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0";
//
string new_anim="yoga_float";
// THIS SCRIPT IS PUBLIC DOMAIN! Do not delete the credits at the top of this script!
integer status;
// Feel free to copy, modify, and use this script.
list check;
 
key owner;
list anims;
key ANIM_TYPE="c541c47f-e0c0-058b-ad1a-d6ae3a4584d9";


default
default
Line 23: Line 21:
     state_entry()
     state_entry()
     {
     {
         llSetTimerEvent(.2);
         owner = llGetOwner();
        llRequestPermissions(owner, PERMISSION_TRIGGER_ANIMATION);
        check = [old_anim];
     }
     }
      
      
    run_time_permissions(integer p)
    {
        if(p & PERMISSION_TRIGGER_ANIMATION)
        {
            llSetTimerEvent(0.2);
        }
    }
     timer()
     timer()
     {
     {
        anims = llGetAnimationList(llGetOwner());
         if(llGetAgentInfo(owner) & AGENT_WALK)
         if(~llListFindList(anims,[ANIM_TYPE]))
         {
         {
             llSetLinkAlpha(LINK_SET,1.0,ALL_SIDES);          
             list anims = llGetAnimationList(owner);
            if(~llListFindList(anims, check))
            {
                status = 1;
                llStartAnimation(new_anim);
                llStopAnimation(old_anim);
            }
         }
         }
         else
         else if(status)
         {
         {
             llSetLinkAlpha(LINK_SET,0.0,ALL_SIDES);
             llStopAnimation(new_anim);
            status = 0;
         }
         }
    }
    on_rez(integer p)
    {
        llResetScript();
     }
     }
}</lsl>
}</lsl>

Revision as of 20:45, 7 April 2008

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.

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_WALK)
       {
           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 an over simplified avatar info string
•  llStartAnimation Start an animation on an avatar
•  llStopAnimation Stop an animation playing on an avatar

Deep Notes

Signature

function list llGetAnimationList( key id );