Difference between revisions of "Listen/fr"

From Second Life Wiki
Jump to navigation Jump to search
Line 8: Line 8:
|constants={{LSL Constants/Chat}}
|constants={{LSL Constants/Chat}}
|spec
|spec
|caveats=*Sur un changement d'état[[state/fr]] ou [[llResetScript|script reset]] toutes les écoutes sont fermées [[llListenRemove|closed]] automatiquement.
|caveats=*Sur un changement d'état ([[state/fr]]) ou une [[llResetScript|réinitialisation du script]], toutes les écoutes sont [[llListenRemove|fermées]] automatiquements.
*When an object changes owner any listen registered with [[llGetOwner]] will not automatically update itself until the script is reset. The scripter can catch this scenario per the example below.
*When an object changes owner any listen registered with [[llGetOwner]] will not automatically update itself until the script is reset. The scripter can catch this scenario per the example below.
|examples=
|examples=

Revision as of 09:05, 20 January 2008

Description

Event: listen( integer cannal, string nom, key id, string message ){ ; }

Déclenché par le chat, utilisez llListen pour l'activer et le filtrer

• integer cannal
• string nom
• key id
• string message
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

  • Sur un changement d'état (state/fr) ou une réinitialisation du script, toutes les écoutes sont fermées automatiquements.
  • When an object changes owner any listen registered with llGetOwner will not automatically update itself until the script is reset. The scripter can catch this scenario per the example below.


Examples

Trivial example to listen to any chat from the object owner and respond once. To reduce lag and avoid spamming surrounding users, it is vastly preferable to listen on channels other than 0 and to trigger the listen event by chatting on an alternative channel such as '/5 hello'. <lsl>// says beep to owner the first time owner says something in main chat; integer listen_handle;

default {

   state_entry()
   {   //Registers the listen to the owner of the object at the moment of the call. This does not automatically update when the owner changes.
       // Change 0 to another positive number to listen for '/5 hello' style of chat.
       listen_handle = llListen(0, "", llGetOwner(), "");
   }
   listen( integer channel, string name, key id, string message )
   {
       llOwnerSay("beep");
       // Stop listening until script is reset
       llListenRemove(listen_handle);
   }
   on_rez(integer param)
   {   //Triggered when the object is rezed, like after the object had been sold from a vendor
       llResetScript();//By resetting the script on rez it forces the listen to re-register.
   }
   changed(integer mask)
   {   //Triggered when the object containing this script changes owner.
       if(mask & CHANGED_OWNER)
       {
           llResetScript();
       }
   }

}</lsl>

See Also

Functions

•  llListen
•  llListenControl
•  llListenRemove
•  llDialog
•  llOwnerSay Sends chat to the owner only to avoid spamming the PUBLIC_CHANNEL
•  llWhisper Sends chat limited to 10 meters
•  llSay Sends chat limited to 20 meters
•  llShout Sends chat limited to 100 meters
•  llRegionSay Sends chat limited to region

Deep Notes

Signature

event void listen( integer cannal, string nom, key id, string message );