LlStartAnimation/fr
Jump to navigation
Jump to search
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: llStartAnimation( string anim );129 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
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.