LlStartAnimation/fr

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Description

Fonction: llStartAnimation( string anim );

Lance l'animation anim pour l'agent qui a donné au script le droit PERMISSION_TRIGGER_ANIMATION et si les droits n'ont pas été révoqués depuis.

• string anim un animation de l'inventaire

Nécessite le droit PERMISSION_TRIGGER_ANIMATION pour s'exécuter

Avertissements

  • Ne vous reposez pas sur les droits accordés automatiquement à soi-même. Utilisez toujours l'évènement run_time_permissions.
  • Si le script n'a pas le droit PERMISSION_TRIGGER_ANIMATION, il renverra (en criant) une erreur sur le canal DEBUG_CHANNEL et l'opération échouera (mais le script continuera à s'exécuter).
  • Une fois que le droit PERMISSION_TRIGGER_ANIMATION est accordé, il peut être révoqué depuis le script (par exemple avec un nouvel appel à llRequestPermissions). Sinon le script ne perdra ses droits que s'il est réinitialisé ou dérezzé (effacé, détaché ou repris).
  • Si anim n'est pas dans l'inventaire de la prim ou n'est pas un animation alors une erreur se produit sur le canal DEBUG_CHANNEL.
  • 30 animations au maximum peuvent être jouées simultanément (avant 1.25.3 il n'y avait pas de limite puis la limite était de 15 jusqu'à 1.25.4)

Exemples

<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("l'animation se terminera dans 5 secondes");
           llSetTimerEvent(5.0);
       }
   }
   timer()
   {
       llSetTimerEvent(0.0);
       llStopAnimation("sit");
   }

} </lsl> Ajouter une animation ou une pose dans le même objet que le script suivant <lsl> string animation; // le nom de l'animation sera stocké dans cette variable globale

default {

   state_entry()
   {
       // definition d'un sittarget
       llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); 
       // recuperation du nom de la premiere animation de l'inventaire de l'objet
       animation = llGetInventoryName(INVENTORY_ANIMATION,0); 
   }

   changed(integer change)
   {
       if (change & CHANGED_LINK)
       {
           key av = llAvatarOnSitTarget();
           if (av!=NULL_KEY) // l'avatar s'assoit
           {
               llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION);
           {
           else // l'avatar se leve
           {
               if (animation) llStopAnimation(animation); // stoppe l'animation
               llResetScript(); // fait un reset du script pour réinitialiser les permissions
           }
       }
   }
   
   run_time_permissions(integer perm)
   {
       if (perm & PERMISSION_TRIGGER_ANIMATION)
       {
           if (animation)
           {
               llStopAnimation("sit"); // stoppe l'animation par defaut d'un avatar assis
               llStartAnimation(animation);
           }
       }
   }

} </lsl>

Voir également

Évènement

•  run_time_permissions Évènement de réception des droits

Fonctions

•  llGetPermissions Renvoie les droits accordés
•  llGetPermissionsKey Renvoie l'agent qui a accordé les droits
•  llRequestPermissions Demande des droits
•  llStopAnimation Arrête une animation

Articles

•  Droit des scripts Article sur les droits
•  Animations prédéfinies Donne la liste des animations toujours disponibles dans SL
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.