Difference between revisions of "Listen/it"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with '{{multi-lang|1=Listen|2=/it}} {{LSL_Event|event_id=12|event_delay |event=listen |event_desc=Ascolto della chat, usa llListen/it per abilitare i filtri |p1_type=integer|p1_na...')
 
Line 17: Line 17:
|examples=
|examples=
Semplice esempio che ascolta tutto quello detto dall'Owner del prim. Risponde ripetendo il messaggio. Per evitare il ritardo e l'appesantimento degli script si consiglia di utilizzare canali diversi da 0, per poi scrivere in chat ad esempio "/5 ciao". Lo script è costruito in modo tale da ripetere solo la prima frase detta dall'owner per evitare spam in chat e l'appesantimento dello script.  
Semplice esempio che ascolta tutto quello detto dall'Owner del prim. Risponde ripetendo il messaggio. Per evitare il ritardo e l'appesantimento degli script si consiglia di utilizzare canali diversi da 0, per poi scrivere in chat ad esempio "/5 ciao". Lo script è costruito in modo tale da ripetere solo la prima frase detta dall'owner per evitare spam in chat e l'appesantimento dello script.  
<lsl>//
<lsl>
integer listen_handle;
integer listen_handle;



Revision as of 05:00, 30 May 2010

Description

Event: listen( integer canale, string nome, key UUID, string messaggio ){ ; }

Ascolto della chat, usa llListen/it per abilitare i filtri

• integer canale Integer del canale che vogliamo ascoltare
• string nome nome dell'User o dell'Oggetto che ha detto il messaggio
• key UUID UUID dell'User o dell'Oggetto che ha detto il messaggio
• string messaggio Messaggio che ascoltiamo
Channel Constant Description
DEBUG_CHANNEL 0x7FFFFFFF Chat channel reserved for script debugging and error messages, broadcasts to all nearby users.
PUBLIC_CHANNEL 0x0 Chat channel that broadcasts to all nearby users. This channel is sometimes referred to as: open chat, local chat and public chat.

Caveats

  • Al cambio di state/it o al reset dello script tutti i Listen sono chiusi automaticamente.
  • Quando l'oggetto cambia l'owner tutti i Listen che ascoltano escusivamente l'Owner llGetOwner/it non sono aggiornati automaticamente e ascolteranno l'Owner precedente.
  • Se un messaggio soddisfa i criteri di più Listenviene registrato dallo script, ma solo un evento verrà eseguito.
  • Un prim non riesce ad ascoltare la chat che genera.
  • La posizione del listen deve essere nel Root prim, per scoraggiare chi vuole spiare le conversazioni oltre la parcella.


Examples

Semplice esempio che ascolta tutto quello detto dall'Owner del prim. Risponde ripetendo il messaggio. Per evitare il ritardo e l'appesantimento degli script si consiglia di utilizzare canali diversi da 0, per poi scrivere in chat ad esempio "/5 ciao". Lo script è costruito in modo tale da ripetere solo la prima frase detta dall'owner per evitare spam in chat e l'appesantimento dello script. <lsl> integer listen_handle;

default {

   state_entry()
   {   //Ascolta tutto quello detto dall'Owner del prim, se il prim cambia nome e lo script non è resettato l'Owner non è aggiornato in modo automatico
       // Cambia il numero 0 per evitare l'appesantimento della chat.
       listen_handle = llListen(0, "", llGetOwner(), "");
   }
   listen( integer channel, string name, key id, string message )
   {
       llSay(0, "il mio Owner ha detto "+message);
       // fermo il Listen per il prossimo reset
       llListenRemove(listen_handle);
   }
   on_rez(integer param)
   {   
       llResetScript();//Quando l'oggetto viene rezzato lo script si resetta
   }
   changed(integer mask)
   {   //Quando l'oggetto cambia Owner lo script si resetta
       if(mask & CHANGED_OWNER)
       {
           llResetScript();
       }
   }

}</lsl>

See Also

Functions

•  llListen/it
•  llListenControl/it
•  llListenRemove/it
•  llDialog/it
•  llOwnerSay/it Manda un messaggio solo all'Owner, per evitare lo spam nel PUBLIC_CHANNEL/it
•  llWhisper/it Manda un messaggio limitato a 10 metri di raggio
•  llSay/it Manda un messaggio limitato ai 20 metri di raggio
•  llShout/it Manda un messaggio limitato ai 100 metri di raggio
•  llRegionSay/it Manda un messaggio limitato alla regione

Deep Notes

Signature

event void listen( integer canale, string nome, key UUID, string messaggio );