Difference between revisions of "LlListenRemove"

From Second Life Wiki
Jump to navigation Jump to search
m
(Better variable name. Improve comments)
Line 11: Line 11:
*No error is thrown if {{LSLP|handle}} has already been released or is invalid.
*No error is thrown if {{LSLP|handle}} has already been released or is invalid.
|constants
|constants
|examples=<lsl>integer olf;
|examples=<lsl>
// Listen for one line of chat from the owner, echo it back to them, then stop listening
integer ListenHandle;
default
default
{
{
    //Repeats one line of text then stops listening
     state_entry()
     state_entry()
     {
     {
         olf = llListen(0, "", llGetOwner(), "");
         // Start listening on channel 0, for text from owner only
        ListenHandle = llListen(0, "", llGetOwner(), "");
     }
     }
     listen(integer channel, string name, key id, string message)
     listen(integer channel, string name, key id, string message)
     {
     {
         llOwnerSay(message);
         llOwnerSay(message);           // Echo the message back to the owner
         llListenRemove(olf);
         llListenRemove(ListenHandle);   // Stop listening
     }
     }
}</lsl>
}</lsl>
Line 31: Line 33:
|also_tests
|also_tests
|also_articles
|also_articles
|notes
|notes=*It is good practice to remove listeners when they are no longer required, or set them inactive via [[llListenControl]]
|permission
|permission
|negative_index
|negative_index

Revision as of 01:27, 10 January 2013

Summary

Function: llListenRemove( integer handle );
0.0 Forced Delay
10.0 Energy

Removes listen event callback handle

• integer handle handle to control listen event

Caveats

  • On state change or script reset all listens are removed automatically.
    • A state change can be used as a shortcut to releasing all listens in the script.
  • No error is thrown if handle has already been released or is invalid.

Examples

<lsl> // Listen for one line of chat from the owner, echo it back to them, then stop listening integer ListenHandle; default {

   state_entry()
   {
       // Start listening on channel 0, for text from owner only
       ListenHandle = llListen(0, "", llGetOwner(), "");
   }
   listen(integer channel, string name, key id, string message)
   {
       llOwnerSay(message);            // Echo the message back to the owner
       llListenRemove(ListenHandle);   // Stop listening
   }
}</lsl>

Notes

  • It is good practice to remove listeners when they are no longer required, or set them inactive via llListenControl

See Also

Events

• listen

Functions

•  llListen
•  llListenControl

Deep Notes

Signature

function void llListenRemove( integer handle );