Difference between revisions of "Link message/it"

From Second Life Wiki
Jump to navigation Jump to search
(Undo revision 1161421 by Violet Hammerer (Talk))
 
(One intermediate revision by the same user not shown)
(No difference)

Latest revision as of 10:57, 16 August 2012

Description

Event: link_message( integer sender_num, integer num, string str, key id ){ ; }

Lanciato quando lo script riceva un messaggio collegato che è stato mandato da una chiamata a llMessageLinked. llMessageLinked viene usato per inviare messaggi da uno script a un altro.

• integer sender_num Il numero di collegamento del prim che contiene lo script che ha chiamato llMessageLinked.
• integer num Secondo parametro della chiamata llMessageLinked.
• string str Terzo parametro della chiamata llMessageLinked.
• key id Quarto parametro della chiamata llMessageLinked.

id viene usato spesso come secondo campo stringa (in LSL il tipo key è implementato come una string con operatori personalizzati). La trasformazione tra i tipi string e key non ha effetti sui dati in essi contenuti. Le dimensioni di str e id sono limitate solamente dalla memoria script disponibile.

Caveats

  • Si possono accodare 64 eventi link_message, superati i quali, vengono scartati silenziosamente! Non fate troppe cose nell'evento se questi potrebbero arrivare velocemente.
  • sender_num non rispecchia il modo in cui è stato mandato un messaggio, non c'è modo di sapere se è stato inviato col flag LINK_* o il numero specifico di collegamento.
  • Se str e id sono più grandi della memoria disponibile, lo script crasherà silenziosamente con una Collisione Stack-Heap.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> // Questo è solo uno script di esempio, non dovreste gestire il tocco in questo modo all'interno di un unico script.

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 + ") mi ha toccato!");
   }

} </lsl>

Useful Snippets

<lsl> // Questo è solo uno script di esempio, non dovreste gestire i messaggi collegati in questo modo all'interno di un unico script.

default {

   // Per diffondere un numero illimitato di argomenti di qualsiasi tipo.
   // Presupposto, la stringa separatrice non viene utilizzata in nessuna stringa sorgente!
   state_entry() 
   {
       list mia_lista = [1, 2.0, "una stringa", <1, 2, 3>, <1, 2, 3, 4>, llGetOwner()];  
       string parametro_lista = llDumpList2String(mia_lista, "

Notes

Uno script può ascoltare i propri messaggi.

See Also

Functions

•  llMessageLinked/it

Deep Notes

Signature

event void link_message( integer sender_num, integer num, string str, key id );