LlMessageLinked/fr
Jump to navigation
Jump to search
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: llMessageLinked( integer linknum, integer num, string str, key id );164 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
Déclenche un évènement link_message avec les paramètres num, str et id dans le groupe ou le lien linknum.
• integer | linknum | – | N° de lien ou un code LINK_* | |
• integer | num | |||
• string | str | |||
• key | id |
|
|
Avertissements
- Un script peut entendre son propre "message lié" si linknum est positionné à LINK_SET ou LINK_THIS. Cette option crée des risques de boucles infinies. Faites attention à la façon dont vos messages sont traités.
- Certains utilisateurs ont observé des échecs dans l'envoi simultané de messages liés à un grand nombre de scripts dans des prims différentes en utilisant LINK_SET, LINK_ALL_OTHERS & LINK_ALL_CHILDREN (cad sans rendre toutes les prims destinatrices). Si vous rencontrez ce problèmes, une astuce consiste à placer les scripts dans la même prim et à utiliser des fonctions telles llSetLinkPrimitiveParams pour modifier une prim sans qu'elle ne contienne le script et à utiliser un simple message lié.
Exemples
<lsl>default{ // Suppositions : // nom de l'objet : LSLWiki // nom du script : _lslwiki
state_entry() { llMessageLinked(LINK_THIS, 0, llGetScriptName(), ""); }
link_message(integer sender_num, integer num, string msg, key id) { llOwnerSay(msg); // Le propriétaire de l'objet LSLWiki entendra : // LSLWiki:_lslwiki }
}</lsl>
Codes utiles
<lsl>default { // une façon rapide de débuguer link_message
link_message(integer sender_num, integer num, string msg, key id) { llSay(DEBUG_CHANNEL, llList2CSV([sender_num, num, msg, id])); }
}</lsl> <lsl>// Il s'agit ici juste d'un exemple, vous ne devriez pas utiliser les messages liés (link message) de cette façon.
default{ // comment communiquer un nombre illimité de paramètres. // On suppose que le caractère de séparation des strings n'est utilisé dans aucun string de la source.
state_entry() { list my_list = [1, 2.0, "a string", <1, 2, 3>, <1, 2, 3, 4>, llGetOwner()]; string list_parameter = llDumpList2String(my_list, "
Notes
- Utilisez llMessageLinked dans une simple prim permet aux développeurs de réduire certaines limites du LSL en permettant à des scripts de coopérer et de réaliser des actions syncronisées. Faites attention à ne pas créer de boucles infinies.
- Les tailles de str et de id sont à priori seulement limitées par la mémoire disponible.
Voir également
Évènement
• | link_message | – | Evènement déclenché lorsqu'un message lié est reçu. |
Fonctions
• | llGetLinkNumber | – | Renvoie le N° de lien de la prim le contenant. |
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.