LlAvatarOnSitTarget/fr - Second Life Wiki

LlAvatarOnSitTarget/fr

From Second Life Wiki

Jump to: navigation, search

Contents

Description

Fonction: key llAvatarOnSitTarget( );

Renvoie un correspondant à l'UUID de l'avatar assis sur l'objet.


Si la prim n'a pas de "point d'assise" (un endroit ou l'avatar peut s'asseoir) et qu'aucun avatar n'est assis sur la prim alors la fonction renvoie la valeur NULL_KEY.

Inconvénients

  • Une prim n'a de point d'assise que si llSitTarget a été appelée avec un vecteur non nul en premier argument.
  • Si la prim n'a pas de point d'assise ou si l'avatar est assis sur une autre prim, la seule façon de déterminer le nombre d'avatars assis est d'analyser l'ensemble lié (link set)1.

Exemples

 
default
{
    state_entry()
    {
        // met en place un point d'assise (indispensable pour faire fonctionner le script)
        llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
    }
 
    changed(integer changement)
    {
        if (changement & CHANGED_LINK)
        { 
            key av = llAvatarOnSitTarget();
 
            if (av)  //Vrai si <> NULL_KEY et valide
                llSay(0, "bonjour " + llKey2Name(av) + ", merci de vous être assis");
        }
    }
}
 

Extraits de code utiles

 
// Renvoie le numéro de lien de l'avatar assis
integer GetAgentLinkNumber(key avatar)
{
    integer linkNum = 1 + llGetNumberOfPrims();
    key linkKey;
 
    // À présent, nous cherchons la clé liée en nous assurant qu'elle est non nulle
    while (linkKey = llGetLinkKey( --linkNum ))  // est-ce une clé valide ?
        if (avatar == linkKey)                                     // est-ce l'avatar cherché ?
            return linkNum;                                           // si c'est l'avatar, on renvoie le n° du lien.
 
    // L'avatar n'a pas été trouvé
    // renvoie un N° qui n'est pas un code LINK_* ni un numéro valde.
    return 0x7FFFFFFF;   // entier maximal
} // Écrit by Strife Onizuka
 

Notes

  1. Pour analyser un ensemble lié, utilisez une fonction comme llGetLinkKey (regardez llGetNumberOfPrims pour des exemples).
  2. La position d'un avatar sur un objet peut être déterminée par llGetObjectDetails (regardez llSitTarget pour des exemples).

Voir également

Evènement

•  changed Evènement déclenché sur une modification de la prim

Fonctions

•  llSitTarget Permet de définir le point d'assise d'une prim
•  llGetLinkKey Renvoie la clé de la prim ou de l'avatar lié

Articles

•  CHANGED_LINK Constante indiquant une variation dans les liens d'un objet