Difference between revisions of "LlListenRemove"

From Second Life Wiki
Jump to navigation Jump to search
m (LSL llListenRemove moved to LlListenRemove: removing prefix)
m (Whoops, forgot an equal sign, put an extra '|', and placed the haiku line where usually the templates have it!)
 
(21 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{LSL Function/handle|handle|listen}}
|func_id=27|func_sleep=0.0|func_energy=10.0
|func_id=27|func_sleep=0.0|func_energy=10.0
|func=llListenRemove|p1_type=integer|p1_name=number
|func=llListenRemove
|p1_type=integer|p1_subtype=handle|p1_name=handle
|func_footnote
|func_footnote
|func_desc=removes listen event callback number
|func_desc=Removes listen event callback {{LSLP|handle}}
|return_text
|return_text
|spec
|spec
|caveats
|caveats=*On [[state]] change or [[llResetScript|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 {{LSLP|handle}} has already been released or is invalid.
|constants
|constants
|examples
|examples=<syntaxhighlight lang="lsl2">
// 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
    }
}</syntaxhighlight>
|helpers
|helpers
|also_functions=*{{LSLG|llListen}}
|also_functions={{LSL DefineRow||[[llListen]]}}
*{{LSLG|llListenControl}}
{{LSL DefineRow||[[llListenControl]]}}
|also_events=*{{LSLG|listen}}
|also_events={{LSL DefineRow|[[listen]]|}}
|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
|sort=ListenRemove
|sort=ListenRemove
|haiku={{Haiku|Wee break of the day|A good listener removed|out of primitive}}
|cat1=Communications
|cat1=Communications
|cat2=Chat
|cat2=Chat

Latest revision as of 04:39, 23 April 2022

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

// 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
    }
}

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 );

Haiku

Wee break of the day
A good listener removed
out of primitive