LlAttachToAvatarTemp/fr

From Second Life Wiki
Jump to navigation Jump to search

Description

Fonction: llAttachToAvatarTemp( integer attach_point );

suit les mêmes règles que llAttachToAvatar, à l’exception près que l'objet ne sera pas créé dans l inventaire de l'avatar et disparaîtra à sa déconnexion ou au détachement de l objet. En effet , par design , cela permet de "redonner" plusieurs fois à un autre utilisateur un objet en tant qu attachement sans que cela pollue son inventaire.

• integer attach_point ATTACH_* constante ( voir table ci-dessous )

On doit considérer cet objet comme un attachement temporaire ; un utilisateur ne peut pas utiliser les actions "prendre" , "prendre une copie" sur celui ci.

  • D'autre part, le grand avantage de cette fonction est que l'utilisateur n'a pas besoin d'être le propriétaire de l objet pour pouvoir l'attacher.

En revanche, les permissions du script sont à réinitialiser pour le"propriétaire à titre temporaire".

Constante Commentaire
ATTACH_CHEST 1 Poitrine/sternum
ATTACH_HEAD 2 Tête
ATTACH_LSHOULDER 3 Épaule gauche
ATTACH_RSHOULDER 4 Épaule droite
ATTACH_LHAND 5 Main gauche
ATTACH_RHAND 6 Main droite
ATTACH_LFOOT 7 Pied gauche
ATTACH_RFOOT 8 Pied droit
ATTACH_BACK 9 Dos
ATTACH_PELVIS 10 Bassin
ATTACH_MOUTH 11 Bouche
ATTACH_CHIN 12 Menton
ATTACH_LEAR 13 Oreille gauche
Constante Commentaire
ATTACH_REAR 14 Oreille droite
ATTACH_LEYE 15 Œil gauche
ATTACH_REYE 16 Œil droit
ATTACH_NOSE 17 Nez
ATTACH_RUARM 18 Bras droit
ATTACH_RLARM 19 Avant-bras droit
ATTACH_LUARM 20 Bras gauche
ATTACH_LLARM 21 Avant-bras gauche
ATTACH_RHIP 22 Hanche droite
ATTACH_RULEG 23 Jambe droite
ATTACH_RLLEG 24 Tibia droit
ATTACH_LHIP 25 Hanche gauche
ATTACH_LULEG 26 Jambe gauche
Constante Commentaire
ATTACH_LLLEG 27 Tibia gauche
ATTACH_BELLY 28 Ventre
ATTACH_LEFT_PEC 29 pectoraux gauche
ATTACH_RIGHT_PEC 30 pectoraux droits
ATTACH_HUD_CENTER_2 31 HUD au centre 2
ATTACH_HUD_TOP_RIGHT 32 HUD en haut à droite
ATTACH_HUD_TOP_CENTER 33 HUD en haut
ATTACH_HUD_TOP_LEFT 34 HUD en haut à gauche
ATTACH_HUD_CENTER_1 35 HUD au centre
ATTACH_HUD_BOTTOM_LEFT 36 HUD en bas à gauche
ATTACH_HUD_BOTTOM 37 HUD en bas
ATTACH_HUD_BOTTOM_RIGHT 38 HUD en bas à droite
ATTACH_NECK 39 Cou
ATTACH_AVATAR_CENTER 40 Centre de l'avatar

Avertissements

  • Toutes les permissions du script sont à réinitialiser lors de l 'attachement de l'objet temporaire ( probablement pour des mesures de sécurité)
  • L utilisation de llAttachToAvatarTemp sur un objet que vous n avez pas la permission de transférer provoquera une erreur de script No permission to transfer, même si vous l'attachez à vous mêmes ( il faut voir cette fonction comme un transfert)
  • Les points d'attachements peuvent être occupés par plusieurs objets.
  • Si attach_point est zéro , il se retrouve attaché par défaut à la main droite (ATTACH_RHAND).
  • Si l'objet est déjà attaché , la fonction ne fait rien silencieusement , même si le point d'attachement est différent .

Exemples

<lsl>// exemple basique qui ne fait rien d intéressant mais qui illustre son fonctionnement default {

   state_entry()
   {
       llRequestPermissions( llGetOwner(), PERMISSION_ATTACH );
   }
   run_time_permissions( integer vBitPermissions )
   {
       if( vBitPermissions & PERMISSION_ATTACH )
       {
           llAttachToAvatarTemp( ATTACH_LHAND );
       }
       else
       {
           llOwnerSay( "Permission to attach denied" );
       }
   }
   on_rez(integer rez)
   {
       if(!llGetAttached())
       { //reset the script if it's not attached.
           llResetScript();
       }
   }
   attach(key AvatarKey)
   {
       if(AvatarKey)
       {//event is called on both attach and detach, but Key is only valid on attach
           integer test = llGetAttached();
           if (test) {
               llOwnerSay( "The object is attached" );
           } else {
               llOwnerSay( "The object is not attached");
           }
       }
   }

}</lsl>

<lsl>//-- Cet exemple démontre le transfert de propriété d un objet temporaire attaché via llAttachToAvatarTemp() //-- Quelque soit la personne qui touche l objet , aura l objet attaché sous réserve qu'il accepte les permissions qu'on lui demande //-- Mais l'objet attaché n’apparaîtra pas dans l'inventaire. default {

   touch_start(integer num_touches)
   {
       llRequestPermissions( llDetectedKey(0), PERMISSION_ATTACH );
   }
   run_time_permissions( integer vBitPermissions )
   {
       if( vBitPermissions & PERMISSION_ATTACH )
       {
           llAttachToAvatarTemp( ATTACH_LHAND );
       }
       else
       {
           llOwnerSay( "Permission to attach denied" );
       }
   }
   on_rez(integer rez)
   {
       if(!llGetAttached())
       { //reset the script if it's not attached.
           llResetScript();
       }
   }

}</lsl>

<lsl>// Cet exemple illustre comment gérer les permissions après l'appel à llAttachToAvatarTemp. // Parce que le propriétaire a changé , la permission initiale PERMISSION_ATTACH est révoquée et de nouvelles permissions ont besoin d'être demandées . // Une façon de procéder sans que l'utilisateur soit ennuyé par une autre boite de dialogue pour demander les permissions est de // demander de nouvelles permissions lors de l attachement à l avatar . // Et utiliser ainsi , les permissions automatiques accordées pour les objets attachés .

integer gAttach = TRUE;

default {

   touch_start(integer num)
   {
       if (gAttach)  // l'objet n' a pas déjà été attaché
       {
           llRequestPermissions(llDetectedKey(0),PERMISSION_ATTACH);
           gAttach = FALSE;
       }
       else   // L'objet a été attaché , on vérifie les permissions PERMISSION_ATTACH puis on le détache
       {
           if (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION

Voir également

Fonctions

•  llDetachFromAvatar Détache un objet de l'avatar
•  llGetAttached Retourne le numéro du point attachement

Notes avancées

Historique

Date de Release 24/07/2012

Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.