LlListen/fr

From Second Life Wiki
Jump to navigation Jump to search

Description

Fonction: integer llListen( integer canal, string nom, key id, string msg );

Ouvre un écoute pour le msg sur le canal émis par nom et id.

Renvoie un integer qui peut être utilisé pour activer ou desactiver l'écoute.

• integer canal n'importe quel integer valide (positif ou négatif).
• string nom
• key id
• string msg

Si msg, nom ou id sont vides, ils ne sont pas utilisés pour filtrer les messages entrants. Si id est une clé invalide ou une clé nulle elle est assimilée à un vide.

Spécifications

Pour que l'évènement listen soit déclenché, l'ensemble des critères doivent correspondre. Premièrement, le message doit avoit été transmis sur le bon canal. Le nom doit correspondre exactement à celui qui parle. L'id doit correspondre à la clé de celui qui parle. Le msg doit être exactement le message envoyé.

Numéros de canal constants Descriptions
DEBUG_CHANNEL 0x7FFFFFFF Canal réservé au débogage et aux messages d'alertes des scripts.
PUBLIC_CHANNEL 0x0 Canal réservé pour parler à tous les avatars alentours.

Avertissements

  • Un changement d'état ou une réinitialisation du script supprime automatiquement toutes les écoutes.
    • Un état peut être utilisé pour supprimer simplement toutes les écoutes
  • Un script ne peut gérer plus de 64 écoutes en simultané.
    • Si le nombre d'écoute est supérieur, le script émet une erreur
  • Eviter d'utiliser le canal 0 et utilisez quand c'est possible les zones nom et id pour éviter le lag. (Lag)
    • llListen(0,"","","") génère énormément de lag car il écoute tout ce que tout le monde dit autour de vous(dans la limite de votre perception).
  • Le canaux négatifs sont à utiliser uniquement pour les interraction entre objets (l'utilisation manuelle des canaux négatifs est impossible)
    • Il s'agit d'une limitation du client et non d'une limitation technique

Exemples

Voici un exemple d'utilisation du listen à partir d'un objet qui répondra (une fois) à chaque fois que le propriétaire parlera sur le chat (en "say"). Pour réduire le lag et éviter le spam pour les personnes alentours, il est préférable d'écouter sur un canal autre que le 0 (say) et d'utiliser plutôt un canal altenatif tel que le 5 : '/5 hello' .

// dit 'bip' au propriétaire la première fois que qu'il parle dans le canal principal (say);
integer listen_handle;

default
{
    state_entry()
    {   // Crée une écoute avec la clé du propriétaire, cette section du code n'est pas ré-exécutée automatiquement en cas de changement de propriétaire.
        // Vous pouvez changer le canal 0 en n'importe quel nombre positif (par exemple le 5 (pour parler, utilisez : '/5 hello')
        listen_handle = llListen(0, "", llGetOwner(), "");
    }
    listen( integer canal, string name, key id, string message )
    {
        llOwnerSay("bip");
        // Arrête d'écouter jusqu'à ce que le script soit ré-initialisé.
        llListenRemove(listen_handle);
    }
    on_rez(integer param)
    {   //Déclenché lorsque l'objet est rez, comme par exemple aprés que l'objet ait été vendu.
        llResetScript();//En forçant la ré-initialisation au moment du rez, on force le listen à se ré-enregistrer.
    }
    changed(integer mask)
    {   //Déclenché lorsque l'objet contenant le script change de propriétaire.
        if(mask & CHANGED_OWNER)
        {
            llResetScript();
        }
    }
}

Voir également

Évènement

•  listen Evènements déclenchés par une écoute

Fonctions

•  llListen Permet de créer une écoute
•  llListenControl Permet d'activer ou de désactiver une écoute
•  llListenRemove Permet de supprimer une écoute
•  llDialog Permet d'ouvrir une boite de dialogue bleue
•  llOwnerSay Envoie un message lisible uniquement par le propriétaire (évite de spammer le PUBLIC_CHANNEL)
•  llWhisper Envoie une message limité à 10 mètres
•  llSay Envoie un message limité à 20 métres
•  llShout Envoi un message limité à 100 mètres.
•  llRegionSay Envoie un message limité à la région
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.