Forums

Help login failed by Plash on Jeudi, 26.Avril 2012 18:22
Second Life connection impossible by Doggy on Jeudi, 26.Avril 2012 17:25
Breedable pets et animals Second Life by aden on Samedi, 31.Mars 2012 19:13
Shapes Mesh by born Resident on Lundi, 20.Février 2012 11:20
Tuto Puppeteer by Josiane on Mercredi, 01.Février 2012 13:34
Transparence de la tenue by hani amaterasu on Vendredi, 27.Janvier 2012 22:50
Ajouter des faces, où des arêtes by brucie on Jeudi, 26.Janvier 2012 16:02

Qui est online

Nous avons 365 invités en ligne

Publicité SL

Second Life avatars 3d>>

Social



Second Life : DisplayName et Username, aspects des scripts LSL
Note des utilisateurs: / 0
MauvaisTrès bien 
Tutoriaux Scripts
Écrit par Garmin Kawaguichi   

Ceci est une version en français explicative de l'article du wiki signé par l'excellent Kelly Linden. Pour une vision plus globale de l'impact des DisplayNames dans Second Life, reportez-vous à l'article qui y est consacré dans le Canard Virtuel{Lien à venir incessamment sous peu}.

Attention : tout ce qui est dit dans cet article ne sera vrai que lorsque la fonctionnalité DisplayName aura été implémentée dans le viewer et les serveurs ; il est aussi supposé que le lecteur connaît déjà les anciennes fonctions citées ou sait comment accéder à leur documentation.

Utilisateur existant : un utilisateur ayant créé son compte avant l'introduction de DisplayName.
Nouvel utilisateur : un utilisateur ayant créé son compte après l'introduction de DisplayName.


Comment llKey2Name(key id) fonctionnera?
Cette fonction retournera le nom complet de l'utilisateur :

  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident

Comment llSensor fonctionnera?
On trouvera trois nouvelles constantes à utiliser dans llSensor : AGENT_BY_LEGACY_NAME, AGENT_BY_DISPLAY_NAME, AGENT_BY_USERNAME (la constante actuelle AGENT sera identique à AGENT_BY_LEGACY_NAME).

  • AGENT_BY_LEGACY_NAME :  Jeannot.Lapin (existant) et  Antoine98765 (nouveau)
  • AGENT_BY_DISPLAY_NAME : "Je suis un lapinot :))" (existant) et "C'est moi Tony"(nouveau)
  • AGENT_BY_USERNAME  : Jeannot Lapin (existant) et  Antoine98765 Resident (nouveau)
Il sera possible d'utiliser OR bit à bit ( | ) pour un splendide résultat panaché (??? à vérifier)

Comment llDetectedName(0) fonctionnera dans les évènements sensor, collision et touch?
llDetectedName renverra le nom complet de l'utilisateur :
  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident

Comment llRequestAgentData(key id, DATA_NAME) fonctionnera?
Cela déclenchera un évènement dataserver qui retournera  le nom complet de l'utilisateur :
  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident

Comment llListen et l'évènement listen fonctionneront?
Dans llListen le champ name filtrera le nom complet de l'utilisateur et l'évènement listen rapportera aussi le nom complet de l'utilisateur :
  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident

Qu'en sera-t'il du header X-SecondLife-Owner-Name pour une requête HTTP sortante?
On y trouvera  le nom complet de l'utilisateur :
  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident

Comment par script connaître le DisplayName d'un utilisateur?
Deux nouvelles fonctions ont été rajoutées : string llGetDisplayName(key id) et key llRequestDisplayName(key id)

Comment llGetDisplayName(key id) fonctionnera?
Elle retournera le DisplayName de l'utilisateur qui aura la clé "id" et qui se trouvera dans la même région : "Je suis un lapinot :))"(existant) et "C'est moi Tony"(nouveau).
C'est là qu'il faudra être vigilant : étant donné que la modification d'un DisplayName pourra prendre jusqu'à 72 heures pour être intégrée dans les bases LL, il y aura sûrement un décalage entre ce qui est affiché au-dessus d'un utilisateur et ce qui sera rapporté par cette fonction.

Comment key llRequestDisplayName(key id) fonctionnera?
Cela déclenchera un événement dataserver, comme pour  llRequestAgentData, avec le DisplayName de l'utilisateur qui aura la clé "id" sans que ce dernier soit nécessairement dans la même région.
C'est là qu'il faudra être vigilant : étant donné que la modification d'un DisplayName pourra prendre jusqu'à 72 heures pour être intégrée dans les bases LL, il y aura sûrement un décalage entre ce qui est affiché au-dessus d'un utilisateur et ce qui sera rapporté par cette fonction.

Est-ce que  llGetDisplayName et  llRequestDisplayName retourneront toujours le même résultat?
Il n'y aura aucune garantie que cela sera vrai pendant la période de 72 heures nécessaire pour la prise en compte du changement de DisplayName. Entre autres, il sera possible que  llGetDisplayName puisse retourner le nouveau DisplayName bien avant que  llRequestDisplayName le fasse!!!

Comment un script obtiendra-t'il un nom d'utilisateur?
Deux nouvelles fonctions ont été rajoutées : string llGetUsername(key id) et key llRequestUsername(key id)

Comment llGetUsername(key id) fonctionnera?
Elle retournera le nom complet du compte qui aura la clé "id" et qui se trouvera dans la même région :
  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident
Comment key llRequestUsername(key id) fonctionnera?
Cela déclenchera un événement dataserver, comme pour  llRequestAgentData, avec le nom complet du compte qui aura la clé "id" sans que ce dernier soit nécessairement dans la même région :
  • Utilisateur existant : le nom complet du compte (comme avant) : Jeannot Lapin
  • Nouvel utilisateur : le nom du compte complété par Resident : Antoine98765 Resident

Comment obtenir le DisplayName d'un utilisateur dans dans les évènements sensor, collision et touch?
La solution est simple :
string sNomSurLaTete = llGetDisplayName(llDetectedKey(0));

Est-ce que mes scripts existants vont planter à case des nouveaux types de noms?
Non, ils ne devraient pas,
C'est le "devraient" qui est inquiétant!

Que se passera-t'il si je crée des listes de noms d'avatars et que je les compare aux noms fournis par des fonctions existantes?
Par exemple, avant l'introduction de DisplayName, j'ai fait une liste sur NoteCard des gens que j'autorise à ouvrir la porte de mon SkyBox. Que va-t'il se passer avec l'introduction de DisplayName?
  • Utilisateur existant : le nom complet sera renvoyé par llDetectedName quand on touchera la porte et correspondra encore avec celui de la NoteCard ; Jeannot Lapin reste Jeannot Lapin sur la NoteCard.
  • Nouvel utilisateur : il faudra écrire le nom complet dans la NoteCard suivi d'un espace et du mot Resident ; pour  Antoine98765 il faudra écrire dans la NoteCard Antoine98765 Resident.

Évitez absolument d'utiliser DisplayName dans ce genre de cas!!!!

Que va-t'il se passer si un objet demande à quelqu'un d'écrire son nom puis le compare avec le résultat obtenu avec sensor ou toute autre fonction?
Ça va certainement foirer. Tout va dépendre de celui qui introduit son nom ; à quel type de nom pensera-t'il? Celui de son compte? Son nom complet? Celui qu'il porte sur la tête? Saura-t'il que Resident est son "nom de famille"? Va savoir!
Donc il serait judicieux de trouver autre chose ou de préciser in extenso le type de nom qui est attendu. Et encore, même là j'ai des doutes.

Même genre de réponse si on teste uniquement le prénom en prenant tout ce qu'il y a avant le premier espace car DisplayName accepte un ou plusieurs espaces.

Traduit et adapté par Garmin Kawaguichi
(qui sera peut-être un jour aussi Garmin.Kawaguichi ou Garmin c'est moi! Tu me vois?)

 

 

Ajouter un Message

Si vous ne voyez pas vos messages c est que vous n êtes pas enregistré sur Avatars-3d en tant que membre. Ils seront examinés par un administrateur avant d être publié! Si vous désirez publier rapidement vos messages enregistrez vous ici

Code de sécurité
Rafraîchir