- ConnectionLogin
- TutorielsTutorials
|
|
Forums
probleme acces site web secondlife et voix indisponible by jujube Eleonara on Samedi, 24.Mars 2012 01:17 |
|
|
| Second Life : DisplayName et Username, aspects des scripts LSL |
| 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}.
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).
Comment llDetectedName(0) fonctionnera dans les évènements sensor, collision et touch? llDetectedName renverra le nom complet de l'utilisateur :
Comment llRequestAgentData(key id, DATA_NAME) fonctionnera? Cela déclenchera un évènement dataserver qui retournera le nom complet de l'utilisateur :
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 :
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 :
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 :
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 :
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?
Évitez absolument d'utiliser DisplayName dans ce genre de cas!!!!
|