OpenSim Tutorial : Cours de LSL - Module 5
La véritable puissance de LSL réside dans le fait qu'il permet à un objet de communiquer et d'interagir avec le reste du monde. Traiter de tout ce qu'il est possible de faire nécessiterait un ouvrage séparé mais les sections à venir devraient vous permettre de démarrer.
Le chat
Dans notre premier exemple, nous montrions qu'un objet peut discuter avec le reste du monde à l'aide de la fonction llSay. Elle permet de communiquer avec les personnes proches de l'objet, mais assure aussi une communication locale entre objets.
Le script qui précède est un simple récepteur de chat qui donne les bases d'un chat scripté. Il se contente de répéter tout ce que dit le propriétaire de l'objet. Lorsque le script démarre, llListen configure l'objet listen de sorte que l'objet puisse écouter pour discuter. llListen permet de filtrer ce que vous voulez écouter par le canal de chat, le nom, l'UUID et le message.
Dans l'exemple, le script écoute sur le canal 0, c'est-à-dire le canal de chat public sur lequel discutent tous les avatars. Il existe quelques milliards de canaux de chat afin que les objets puissent discuter entre eux sans craindre la collision des messages. Les paramètres de nom et de message restent vides dans ce cas, le script écoute donc tous les noms et tous les messages. llGetOwner renvoie l'UUID du propriétaire, aussi, dans ce cas, le script finit par écouter le chat public du propriétaire du script.
Lorsque le script " entend " quelque chose qui réponde aux critères établis dans llListen, l'évènement listen est déclenché. Dans ce cas, nous passons simplement le message entendu par llSay.
La discussion envoyée avec llSay peut être entendue dans un rayon de 20 mètres ; la discussion peut aussi être envoyée avec llWhisper (10 mètres) ou llShout (100 mètres).
Pour maintenir la discussion privée, vous pouvez aussi employer llOwnerSay : seul le propriétaire de l'objet pourra entendre le dialogue.
IM
Il arrive que l'on veuille envoyer un message à une personne qui ne se trouve pas dans un rayon visible par Whisper, Say ou Shout ou encore que l'on veuille maintenir le message privé. La manière la plus simple consiste à utiliser un message instantané [IM]. Les IM peuvent être entendus n'importe où dans Logicamp mais uniquement par le destinataire concerné. Pour envoyer un IM vous devez connaître l'UUID du destinataire
Si le résident est déconnecté, le message est enregistré jusqu'à ce qu'il se connecte. Attention, les objets ne peuvent pas envoyer d'IM à d'autres objets.
Capteurs
Les capteurs permettent de recueillir des informations sur les avatars et les objets proches du vôtre. Configurer un capteur, c'est un peu comme configurer une écoute pour une discussion. Lorsque llSensor est appelé, les paramètres filtrent les résultats et, s'il y a des concordances, appellent un évènement sensor. La principale différence réside dans le fait que, même si llListen est continu, llSensor constitue une requête unique. Le script suivant illustre l'emploi d'un capteur.
Remarques :
La vitesse de répétition du senseur est affectée par la " dilatation temporelle " (lag) de la région.
Dans plusieurs situations, la fonction llVolumeDetect consomme moins de ressources que la fonction llSensorRepeat
Si détection prend la valeur TRUE, l'objet devient fantôme et déclenche les évènements collision_start et collision_end lorsque qu'un autre objet commence ou arrête de l'interpénétrer
|