- ConnectionLogin
- TutorielsTutorials
|
|
Forums
probleme acces site web secondlife et voix indisponible by jujube Eleonara on Samedi, 24.Mars 2012 01:17 |
|
|
| LSL 3 Les scripts dans Second Life : Réceptionniste |
| Scripts - Tutoriaux Scripts |
|
L'objectif lorsque nous créons des objets dans Second Life est très souvent de les rendre interactifs. En apprenant à scripter vous pouvez rendre vos objets intelligents, les doter de réactions, de sens, en quelques sortes avoir des objets qui ont un (cerveau). Faire que nos objets puissent aussi effectuer un ou plusieurs travaux à notre place. Vous pouvez faire par exemple :
Dans ce tutoriel vous allez apprendre à jouer avec plusieurs événements et plusieurs fonctions dans un seul script pour faire votre réceptionniste (appelée aussi greeter). Nous allons faire une réceptionniste toute simple pour apprendre quelques fonctions. Commencez par la construction de votre objet ; 2 prims suffiront : 1 pour le tapis et 1 pour la réceptionniste (Faites par exemple : une image de votre propre avatar pour la réceptionniste). Liez les deux prims sachant que le tapis restera le prim principale donc liér en dernier. Donnez un nom à votre objet : Receptionniste - greeter Dans le tapis vous pourrez placer votre script. Nous allons utilisez deux événements : collision_start(integer num) et touch_start (integer total_number). Votre réceptionniste fera bien sûr plusieurs choses : Accueillir, prévenir, donner. 1°) La réceptionniste accueille vos clients:
Votre réceptionniste va souhaiter la bienvenue aux personnes qui vont entrer dans votre shop. Le tapis servira de détecteur, dès que la personne marchera sur ce tapis grâce à l'événement collision. Pour ne pas déranger vos voisins nous n'utiliserons pas la fonction llSay (dire) mais llWhisper (chuchoter). Donc: La personne entre en collision avec le tapis (événement : collision_start) Elle recevra un message de bienvenue chuchoté (fonction : llWhisper ) sur le canal 0 llWhisper(integer canal, string message); cette fonction a besoin de : default
Comme c'est une réceptionniste très intelligente et polie elle va aussi savoir le nom de la personne qui est entré dans votre shop et lui chuchoter " Bienvenue dans mon shop Nom de la personne" Nous allons nous servir de la fonction llDetectedName pour détecter le nom de votre visiteur. string llDetectedName( integer numéro ); string llDetectedName( integer numéro ); cette fonction a besoin: default
Voici ce qui ce passe lorsqu'une personne marche sur votre tapis : elle reçoit un message avec son nom.
2°) La réceptionniste vous prévient de l'arrivée de vos clients et vous donne leur nom : Vous devez rajouter la fonction llOwnerSay à l'intérieur de l'événement collision, en dessous de llWhisper. llOwnerSay(string message) ; cette fonction a besoin de : Attention la fonction llOwnerSay ne vous permet pas de recevoir les messages de votre réceptionniste si vous n'êtes pas sur la même sim que votre objet (réceptionniste). Nous verrons dans le prochain tutoriel comment faire pour recevoir des messages privés en étant sur d'autres sims et qui fonctionnera aussi si vous n'êtes pas connecté dans Second Life, avec la fonction llInstantMessage
default Vous recevrez ce message où que vous soyez dans Second Life : Une personne est entrée dans votre shop! Son nom est : Surfaqua Oh Vous avez donc maintenant un événement qui contient deux fonctions, le visiteur de votre shop entre dans votre shop et marche sur votre tapis, il entre en collision avec le tapis et donc vous utilisez l'événement collision, la personne à ce moment là recevra un message de bienvenue avec son nom avec la fonction llWhisper et la fonction llDetectedName. Au même moment vous être prévenu de l'arrivée de cette personne dans votre shop avec la fonction llOwnerSay et vous saurez son nom avec la fonction llDetectedName. 3°) La réceptionniste va donner un repère (landmark) au client lorsqu'il la touche : Déjà il faut que votre client sache qu'il peut recevoir un repère si il touche la réceptionniste, donc il faut l'avertir : Juste après que la réceptionniste ait souhaité la bienvenue à votre client, elle va lui dire ceci : Touche moi pour recevoir un repère Pour cela il suffit d'utiliser à nouveau la fonction llWhisper mais cette fois sans la fonction llDetectedName et de placer cette fonction en dessous de la première qui souhaitait la bienvenue à votre client. default Maintenant que votre client est prévenu comment il peut recevoir un repère, il faut ajouter l'événement touch_start et dans cet événement la fonction llGiveInventory et la fonction llGetInventoryName comme cela quand votre client touche la réceptionniste (touch_star) elle lui donnera ce qui se trouve dans le contenu de la prim (llGiveInventory) et saura quoi lui donner exactement grâce à la fonction (llGetInventoryName) , et avec la constante (INVENTORY_LANDMARK) c'est un landmark et pas autre chose que vous voulez donner. Votre réceptionniste aura besoin de la clé d'identification de la personne qui a touché pour lui donner l'objet, et nous allons utilisez la fonction llDetectedKey pour cela. default touch_start (integer total_number) llGiveInventory( key cible, string objet ); llDetectedKey(integer numéro); llGetInventoryName(integer type, integer numéro );
Voici plusieurs integer type correspondant à la fonction: llGetInventoryName INVENTORY_ALL : Tous ce qui se trouvera dans le contenu et qui sera transférable pour vous.
Voici a quoi peut ressembler une réceptionniste en 2 prims:
Rejoindre le forum de discussion à propos des scripts
|