Difference between revisions of "LlStartAnimation/fr"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Multi-lang}}
{{LSL_Function/permission/fr|PERMISSION_TRIGGER_ANIMATION}}
{{LSL_Function/permission/fr|PERMISSION_TRIGGER_ANIMATION}}{{LSL_Function/inventory/fr|anim|uuid=false|type}}{{LSL_Function/fr
{{LSL_Function/inventory/fr|anim|uuid=false|type=animation}}
{{LSL_Function/fr
|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_type=string|p1_name=anim
|func_footnote
|func_footnote
|func_desc=Lance l'animation '''anim''' pour l'agent qui a donné au script le pouvoir [[PERMISSION_TRIGGER_ANIMATION]] et si les pouvoirs n'ont pas été révoqués depuis.
|func_desc=Lance l'animation '''anim''' pour l'agent qui a donné au script le droit [[PERMISSION_TRIGGER_ANIMATION/fr|PERMISSION_TRIGGER_ANIMATION]] et si les droits n'ont pas été révoqués depuis.
|return_text
|return_text
|spec
|spec
|caveats
|caveats=* 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)
|constants
|constants
|examples=
|examples=
<Pre>
<lsl>
default
default
{
{
Line 18: Line 19:
         llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
         llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
     }
     }
     run_time_permissions(integer perm)
     run_time_permissions(integer perm)
     {
     {
Line 23: Line 25:
         {
         {
             llStartAnimation("sit");
             llStartAnimation("sit");
             llOwnerSay("animation will end in 5 seconds");
             llOwnerSay("l'animation se terminera dans 5 secondes");
             llSetTimerEvent(5.0);
             llSetTimerEvent(5.0);
         }
         }
     }
     }
     timer()
     timer()
     {
     {
Line 33: Line 36:
     }
     }
}
}
</Pre>
</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>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llStopAnimation]]|Arrete une animation}}
|also_functions={{LSL DefineRow||[[llStopAnimation/fr|llStopAnimation]]|Arrête une animation}}
|also_tests
|also_tests
|also_events
|also_events
|also_articles={{LSL DefineRow||[[Internal_Animations]]|Donne la liste des animations toujours disponibles dans SL}}
|also_articles={{LSL DefineRow||[[Internal_Animations/fr|Animations prédéfinies]]|Donne la liste des animations toujours disponibles dans SL}}
|notes
|notes
|cat1=Animation
|cat1=Avatar/fr
|cat2
|cat2=Animation/fr
|cat3
|cat3
|cat4
|cat4
}}
}}

Latest revision as of 01:43, 24 September 2010


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.