Difference between revisions of "LlStartAnimation/fr"
Jump to navigation
Jump to search
m |
m |
||
(One intermediate revision by the same user not shown) | |||
Line 9: | Line 9: | ||
|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= | ||
Line 34: | Line 34: | ||
llSetTimerEvent(0.0); | llSetTimerEvent(0.0); | ||
llStopAnimation("sit"); | 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); | |||
} | |||
} | |||
} | } | ||
} | } |
Latest revision as of 00:43, 24 September 2010
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.