Link message/fr
From Second Life Wiki
Second Life Wiki > Link message/fr
| LSL Portal | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Event: link_message( integer envoyeur_num, integer num, string car, key id ){ ; }| 29 | Event 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 } }
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.

