Difference between revisions of "LlAvatarOnSitTarget/fr"

From Second Life Wiki
Jump to navigation Jump to search
m (fixe)
m (Big proofreading)
Line 3: Line 3:
|return_type=key
|return_type=key
|return_text=correspondant à l'[[UUID/fr|UUID]] de l'avatar assis sur l'objet.
|return_text=correspondant à l'[[UUID/fr|UUID]] de l'avatar assis sur l'objet.
|func_footnote=Si la prim n'a pas de "point d'assise" (un endroit ou l'avatar peut s'assoir) et qu'aucun avatar n'est assis sur la prim alors la fonction renvoie la valeur {{LSL Const/fr|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=Evalué comme faux dans un test conditionnel (comme une clé fausse).}}.
|func_footnote=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 {{LSL Const/fr|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=Evalué comme faux dans un test conditionnel, tout comme les clés invalides).}}.
|caveats=*Une prim n'a d'assise que si [[llSitTarget/fr|llSitTarget]] a été appelée avec un vector '''non nul''' en premier argument.
|caveats=*Une prim n'a de point d'assise que si [[llSitTarget/fr|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 (liée), la seule façon de déterminer le nombre d'avatars assis est de scanner le jeu de lien (link set)<sup>[[#Notes|1]]</sup>.
*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)<sup>[[#Notes|1]]</sup>.
|spec
|spec
|examples=<lsl>
|examples=<lsl>
Line 12: Line 12:
     state_entry()
     state_entry()
     {
     {
         // positionne un point d'assise (indispensable pour faire fonctionner le script)
         // met en place un point d'assise (indispensable pour faire fonctionner le script)
         llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
         llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
     }
     }


     changed(integer change) {
     changed(integer changement)
         if (change & CHANGED_LINK) {  
    {
         if (changement & CHANGED_LINK)
        {  
             key av = llAvatarOnSitTarget();
             key av = llAvatarOnSitTarget();
             if (av) { //Vrai si <> NULL_KEY et valide
 
             if (av) //Vrai si <> NULL_KEY et valide
                 llSay(0, "bonjour " + llKey2Name(av) + ", merci de vous être assis");
                 llSay(0, "bonjour " + llKey2Name(av) + ", merci de vous être assis");
            }
         }
         }
     }
     }
Line 27: Line 29:
</lsl>
</lsl>
|helpers=<lsl>
|helpers=<lsl>
//Renvoie le de lien de l'avatar assis
// Renvoie le numéro de lien de l'avatar assis
integer GetAgentLinkNumber(key avatar)
integer GetAgentLinkNumber(key avatar)
{
{
     integer linkNum = 1 + llGetNumberOfPrims();
     integer linkNum = 1 + llGetNumberOfPrims();
     key linkKey;
     key linkKey;
     //Dans la prochaine étapes, nous allons chercher le linkKey et nous assurer qu'il n'est pas nul.
 
     while((linkKey = llGetLinkKey( --linkNum )))//est ce une clé valide ?
     // À présent, nous cherchons la clé liée en nous assurant qu'elle est non nulle
         if(avatar == linkKey)//est ce l'avatar recherché ?
     while (linkKey = llGetLinkKey( --linkNum )) // est-ce une clé valide ?
             return linkNum;//si c'est l'avatar, on renvoie le n° du lien.
         if (avatar == linkKey)                                     // est-ce l'avatar cherché ?
     //l'avatar n'a pas été trouvé
             return linkNum;                                           // si c'est l'avatar, on renvoie le n° du lien.
     //renvoie un N° qui n'est pas un code LINK_* ni un numéro valde.
 
     return 0x7FFFFFFF;//integer max.
     // L'avatar n'a pas été trouvé
}//Ecrit by Strife Onizuka
     // renvoie un N° qui n'est pas un code LINK_* ni un numéro valde.
     return 0x7FFFFFFF;   // entier maximal
} // Écrit by Strife Onizuka
</lsl>
</lsl>
|related
|related
Line 48: Line 52:
|also_articles={{LSL DefineRow||[[CHANGED_LINK/fr|CHANGED_LINK]]|Constante indiquant une variation dans les liens d'un objet|}}
|also_articles={{LSL DefineRow||[[CHANGED_LINK/fr|CHANGED_LINK]]|Constante indiquant une variation dans les liens d'un objet|}}
|notes=
|notes=
#Pour scanner un lien, utilisez la fonction [[llGetLinkKey/fr|llGetLinkKey]] (regardez [[llGetNumberOfPrims/fr#Useful_Snippets|llGetNumberOfPrims]] pour avoir des exemples).
#Pour analyser un ensemble lié, utilisez une fonction comme [[llGetLinkKey/fr|llGetLinkKey]] (regardez [[llGetNumberOfPrims/fr#Useful_Snippets|llGetNumberOfPrims]] pour des exemples).
#La position d'un avatar sur un objet peut être déterminée par [[llGetObjectDetails/fr|llGetObjectDetails]] (regardez [[llSitTarget/fr#Useful_Snippets|llSitTarget]] pour avoir des exemples).
#La position d'un avatar sur un objet peut être déterminée par [[llGetObjectDetails/fr|llGetObjectDetails]] (regardez [[llSitTarget/fr#Useful_Snippets|llSitTarget]] pour des exemples).
|cat1=Avatar/fr
|cat1=Avatar/fr
|cat2=Prim/fr
|cat2=Prim/fr

Revision as of 05:40, 6 April 2008

Description

Fonction: key llAvatarOnSitTarget( );

Renvoie un key 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.

Avertissements

  • 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

<lsl> 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");
       }
   }

} </lsl>

Codes utiles

<lsl> // 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 </lsl>

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

Évè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
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.