Difference between revisions of "LlSay"

From Second Life Wiki
Jump to: navigation, search
m
m (linked "constants" in LSL tip to it's category page.)
Line 17: Line 17:
 
*A prim can '''not''' hear itself, this to prevent problems with recursion. It can however hear other prims within the same object.
 
*A prim can '''not''' hear itself, this to prevent problems with recursion. It can however hear other prims within the same object.
 
|examples=
 
|examples=
{{LSL Tip|For sake of better readability of your code, please make use of constants. You can use [[PUBLIC_CHANNEL]] instead of channel 0 and [[DEBUG_CHANNEL]] instead of channel +2,147,483,647.}}
+
{{LSL Tip|For sake of better readability of your code, please make use of [[:Category:LSL_Constants|constants]]. You can use [[PUBLIC_CHANNEL]] instead of channel 0 and [[DEBUG_CHANNEL]] instead of channel +2,147,483,647.}}
 
<lsl>
 
<lsl>
 
default
 
default

Revision as of 18:59, 7 December 2012

Summary

Function: llSay( integer channel, string msg );

Says the text supplied in string msg on channel supplied in integer channel.

• integer channel output chat channel, any integer value
• string msg message to be transmitted
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

  • Messages sent on channel zero[1] and DEBUG_CHANNEL are throttled to a rate of <200/10sec, per region, per owner/user.
    • Once the rate is exceeded, all following messages on channel zero or DEBUG_CHANNEL will be dropped until the send rate is again below 200/10sec for the previous 10 sec. Dropped messages, despite being dropped still count against the limit.
  • Text spoken can only be heard within 20 meters of the speaking prim (rather than the root). This is contrary to how the event listen works, where a message can only be heard by any prim in the object if and only if the root prim is capable of hearing it.
  • Text can only be a maximum of 1023 bytes.
  • A prim can not hear itself, this to prevent problems with recursion. It can however hear other prims within the same object.
All Issues ~ Search JIRA for related Bugs

Examples

KBcaution.png Important: For sake of better readability of your code, please make use of constants. You can use PUBLIC_CHANNEL instead of channel 0 and DEBUG_CHANNEL instead of channel +2,147,483,647.

<lsl> default {

   state_entry()
   {
       // PUBLIC_CHANNEL has the integer value 0
       llSay(PUBLIC_CHANNEL, "Hello, Avatar!");
   }

} </lsl>

To avoid making your object spam its neighborhood, use llInstantMessage, llOwnerSay or llRegionSayTo.

Useful Snippets

Notes

  • Channel 0 is the PUBLIC_CHANNEL. Everyone can hear chat transmitted on this channel. All other channels are private channels (not sent to users, with the exception of DEBUG_CHANNEL).
  • Consider using llInstantMessage, llOwnerSay, or the DEBUG_CHANNEL for debugging purposes. If DEBUG_CHANNEL is used as channel, the script will say msg to the Script Warning/Error window.
  • If one object 'says' something to another object (e.g., a button that, when touched, turns on a lamp), it is a good idea to use a very negative channel, e.g.,

<lsl>

   llSay(-5243212,"turn on");

</lsl> Negative channels are popular for script communications because the client is unable to chat directly on those channels ("/-xxxx message" won't chat "message" on channel "-xxxx", it will chat "/-xxxx message" on channel zero). The only way to do so prior to llTextBox was to use llDialog which was limited to 24 bytes.

See Also

Events

•  listen                 Receives chat

Functions

•  llListen Ask for listen events
•  llInstantMessage Sends chat to the owner only (or to some other user only) to avoid spamming the PUBLIC_CHANNEL
•  llOwnerSay Sends chat to the owner only to avoid spamming the PUBLIC_CHANNEL
•  llRegionSay Sends chat region wide
•  llShout Sends chat limited to 100 meters
•  llWhisper Sends chat limited to 10 meters

Articles

•  Hello Avatar

Deep Notes

Search JIRA for related Issues

Footnotes

  1. ^ Channel zero is also known as: PUBLIC_CHANNEL, open chat, local chat and public chat

Signature

function void llSay( integer channel, string msg );