Link message/fr - Second Life Wiki

Link message/fr

From Second Life Wiki

Second Life Wiki > Link message/fr
Jump to: navigation, search

Contents

Description

Event: link_message( integer envoyeur_num, integer num, string car, key id ){ ; }

Déclenché lorsqu'un script reçoit un message lié par un appel à la fonction llMessageLinked. llMessageLinked est utilisé pour envoyer des informations entre scripts

• integer envoyeur_num
• integer num
• string car
• key id

id est souvent utilisé comme une second zone string (en LSL le type key est implémenté comme un string réservé à certains traitements spécifiques). La conversion entre string et key est sans effet sur les données. La taille de car et de id est juste limitée par la mémoire disponible.

Défauts

  • 64 évènements "link_message" peuvent être mis en attente de traitement, passé ce nombre, les évènements supplémentaires sont ignorés (sans alerte). Faites attention aux opérations à réaliser au cours d'un évènement surtout si ce dernier se déclenchent trés souvent.
  • envoyeur_num ne réflète pas la méthode d'envoi utilisée, il n'y a aucune façon de savoir si le message a été envoyé avec un code LINK_* ou avec un N° de lien spécifique.
  • Si les tailles de car et id sont supérieures à la mémoire disponible, le script plantera avec un message "Stack-Heap Collision".

Exemples

//voici un script de démonstration, vous ne devriez normalement pas utiliser la fonction dans un script unique de cette façon 
 
default
{
    touch_start(integer c)
    {
        llMessageLinked(LINK_THIS, 0, llDetectedName(0), llDetectedKey(0));
    }
    link_message(integer source, integer num, string str, key id)
    {
        llWhisper(0, str + " (" + (string)id + ") m'a touché!");
    }
}

Codes utiles

//voici un script de démonstration, vous ne devriez normalement pas utiliser la fonction dans un script unique de cette façon 
 
default{ // Permet de communiquer un nombre illimité d'argument de n'importe quel type.
	// A condition que le séparateur de list ne soit pas utilisé dans un string du list!
    state_entry() {    
        list ma_list = [1, 2.0, "un string", <1, 2, 3>, <1, 2, 3, 4>, llGetOwner()];  
        string liste_paramètres = llDumpList2String(ma_list, "|");	// Converti le list en string
        llMessageLinked(LINK_THIS, 0, liste_paramètres, NULL_KEY)
    }
 
    link_message(integer sender_num, integer num, string liste_arguments, key id) {
        list re_list = llParseString2List(liste_arguments, ["|"], [""]);	// Reconverti le string en list
    }    
}

Notes

Un script peut écouter ses propres messages liés.

Voir aussi

Fonctions

•  llMessageLinked Permet de générer des messages liés
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.