Difference between revisions of "LlSay"

From Second Life Wiki
Jump to navigation Jump to search
m (<lsl> example)
m
Line 1: Line 1:
{{LSL_Function
{{LSL_Function/chat|channel|msg}}{{LSL_Function
|func_id=23
|func_id=23
|func_sleep=0.0
|func_sleep=0.0
Line 10: Line 10:
|return_text
|return_text
|spec
|spec
|constants={{LSL Constants/Chat}}
|constants
|caveats=*Text can only be a maximum of 1024 bytes.
|caveats=*Text can only be a maximum of 1024 bytes.
*Phrases spoken with llSay can only be heard within 20 meters of the speaking object.
*Phrases spoken with llSay can only be heard within 20 meters of the speaking object.
Line 27: Line 27:
|also_functions=
|also_functions=
{{LSL DefineRow||[[llListen]]|}}
{{LSL DefineRow||[[llListen]]|}}
{{LSL DefineRow||[[llOwnerSay]]|Sends chat to the owner only to avoid spamming the [[PUBLIC_CHANNEL]]}}
{{LSL DefineRow||[[llOwnerSay]]|Sends chat to the owner only to avoid spamming the {{#var:PUBLIC_CHANNEL}}}}
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
{{LSL DefineRow||[[llWhisper]]|Sends chat limited to 10 meters}}
{{LSL DefineRow||[[llWhisper]]|Sends chat limited to 10 meters}}
Line 35: Line 35:
|also_articles
|also_articles
|notes=
|notes=
Consider using [[llOwnerSay]] or channel {{LSL Const|DEBUG_CHANNEL|integer|hex=0x7FFFFFFF}} for debugging purposes.
Consider using [[llOwnerSay]] or channel {{#var:DEBUG_CHANNEL}} for debugging purposes.


If one object 'says' something to another object (e.g., a button that, when touched,
If one object 'says' something to another object (e.g., a button that, when touched,
Line 42: Line 42:
     llSay(-5243212,"turn on");
     llSay(-5243212,"turn on");
</lsl>
</lsl>
It is impossible for an avatar to chat on a negative channel, and extremely unlikely that some
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.
other object would accidently say something on such a channel. (Of course, the intended target
of the message must be set to 'listen' on this channel.)


If {{LSL Const|DEBUG_CHANNEL|integer|hex=0x7FFFFFFF}} is used as ''channel'', the script will say ''msg'' to the Script Warning/Error window.  
If {{#var:DEBUG_CHANNEL}} is used as '''channel''', the script will say '''msg''' to the Script Warning/Error window.  


If 0 is used as ''channel'', the script will say ''msg'' so anyone can see it as normal chat. All other integers used are private channels.
Channel {{HoverText|0|Zero}} is {{#var:PUBLIC_CHANNEL}}. Everyone can hear chat transmitted on this channel. All other channels are private channels (not sent to users).
|cat1=Communications
|cat1
|cat2=Chat
|cat2
|cat3
|cat3
|cat4
|cat4
}}
}}

Revision as of 10:04, 24 May 2008

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 can only be a maximum of 1024 bytes.
  • Phrases spoken with llSay can only be heard within 20 meters of the speaking object.
  • A prim can not hear itself, to prevent problems with recursion.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>default {

   state_entry()
   {
       llSay(0,"This is an incredibly useless program." );
   }

}</lsl>

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

Notes

Consider using llOwnerSay or channel DEBUG_CHANNEL for debugging purposes.

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 (if never more negative than the most negative 32-bit integer that is -2,147,483,648), 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.

If DEBUG_CHANNEL is used as channel, the script will say msg to the Script Warning/Error window.

Channel 0 is PUBLIC_CHANNEL. Everyone can hear chat transmitted on this channel. All other channels are private channels (not sent to users).

See Also

Events

•  listen

Functions

•  llListen
•  llOwnerSay Sends chat to the owner only to avoid spamming the PUBLIC_CHANNEL
•  llRegionSay Sends chat region wide
•  llWhisper Sends chat limited to 10 meters
•  llShout Sends chat limited to 100 meters
•  llInstantMessage

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