Difference between revisions of "LlMessageLinked/fr"
Gally Young (talk | contribs) m (fixe) |
(Updated) |
||
Line 12: | Line 12: | ||
|return_text | |return_text | ||
|spec | |spec | ||
|caveats=*Un script peut entendre son propre "message lié" si '''linknum''' | |caveats=*Un script peut entendre son propre "message lié" si '''linknum''' désigne la prim contenant le script {Footnote|There are four ways for a script to target itself: by [[llGetLinkNumber|precise link number]], [[LINK_THIS]], [[LINK_SET]] and [[LINK_ALL_CHILDREN]] (if the prim is a child prim).}}. Cette possibilité crée des risques de boucles infinies. Faites attention à la façon dont vos messages sont traités et transmis. | ||
* | * Les messages envoyés via llMessageLinked à un script qui [[llSleep/fr|dort]], est [[LSL Delay/fr|delayé]] ou qui [[lag/fr|laggue]] sont mis en file d'attente jusqu'à la fin du délai. La file d'attente d'évènements peut contenir 64 évènements. | ||
** Si un évènement est reçu alors que la file d'attente est pleine, ce nouvel évènement est jeté sans que l'on en soit averti. | |||
** Évitez d'envoyer simultanément des messages liés à un grand nombre de scripts, car cela peut causer des "pointes de lag". Cela apparaît la plupart du temps quand on utilise les drapeaux multiprims LINK_*, et cela peut ralentir ou arrêter l'exécution d'un script. | |||
** Évitez d'envoyer des messages liés à une cible plus vite qu'ellee ne peut les traiter. Si vous faites cela, vous risquez de remplir la file d'atttene des évènements et que les messages suivants ne soient perdus sans que vous n'en soyez averti. | |||
* Quand l'[[state/fr|état]] d'un script change, tous les évènements en attente sont perdus, y compris les messages liés mis en file d'attente. | |||
* Si '''link_num''' est un numéro de lien invalide, la fonction échoue en silence. | |||
* Si '''str''' et '''id''' épuisent la mémoire disponible du script qui intercepte l'évènement link_message résultant, ce script plantera avec une erreur de [[LSL_Errors/fr#Script_run-time_error:_Stack-Heap_Collision|collision entre le tas et la pile]]. | |||
|examples=<lsl>default{ // Suppositions : // nom de l'objet : LSLWiki // nom du script : _lslwiki | |examples=<lsl>default{ // Suppositions : // nom de l'objet : LSLWiki // nom du script : _lslwiki | ||
state_entry() { | state_entry() { |
Revision as of 02:50, 11 October 2008
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 désigne la prim contenant le script {Footnote
Exemples
Voir également
Fonctions
• | llGetLinkNumber | – | Renvoie le N° de lien de la prim le contenant. |
. Cette possibilité crée des risques de boucles infinies. Faites attention à la façon dont vos messages sont traités et transmis.
- Les messages envoyés via llMessageLinked à un script qui dort, est delayé ou qui laggue sont mis en file d'attente jusqu'à la fin du délai. La file d'attente d'évènements peut contenir 64 évènements.
- Si un évènement est reçu alors que la file d'attente est pleine, ce nouvel évènement est jeté sans que l'on en soit averti.
- Évitez d'envoyer simultanément des messages liés à un grand nombre de scripts, car cela peut causer des "pointes de lag". Cela apparaît la plupart du temps quand on utilise les drapeaux multiprims LINK_*, et cela peut ralentir ou arrêter l'exécution d'un script.
- Évitez d'envoyer des messages liés à une cible plus vite qu'ellee ne peut les traiter. Si vous faites cela, vous risquez de remplir la file d'atttene des évènements et que les messages suivants ne soient perdus sans que vous n'en soyez averti.
- Quand l'état d'un script change, tous les évènements en attente sont perdus, y compris les messages liés mis en file d'attente.
- Si link_num est un numéro de lien invalide, la fonction échoue en silence.
- Si str et id épuisent la mémoire disponible du script qui intercepte l'évènement link_message résultant, ce script plantera avec une erreur de collision entre le tas et la pile.
|examples=<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> |helpers=<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, "|"); // converti un list en un string llMessageLinked(LINK_THIS, 0, list_parameter, "") }
link_message(integer sender_num, integer num, string list_argument, key id) { list re_list = llParseString2List(list_argument, ["|"], []); // redécoupe le string en list. }
}</lsl> |also_header |also_events=|-style="vertical-align:top;" | style="color:gray;" |• | link_message | style="color:gray;" | – | Evènement déclenché lorsqu'un message lié est reçu. | |also_functions |also_articles |also_footer |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.
|cat1=Communications/fr |cat2=Link/fr |cat3=Link Message/fr |cat4 }}