Difference between revisions of "LlRegionSayTo"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
{{LSL_Function/chat|channel|msg|np=*}}{{LSL_Function/uuid|target|sim=*}}{{LSL_Function
{{LSL_Function/chat|channel|msg}}{{LSL_Function
|mode=pre-release
|mode=pre-release
|func_id=331
|func_id=364
|func_sleep=0.0
|func_sleep=0.0
|func_energy=10.0
|func_energy=10.0
|func=llRegionSayTo
|func=llRegionSayTo
|p1_type=key|p1_name=target|p1_desc
|sort=Say
|p2_type=integer|p2_name=channel|p2_desc
|p1_type=key|p1_name=target
|p3_type=string|p3_name=msg|p3_desc
|p2_type=integer|p2_name=channel
|func_desc=Says the string '''msg''' on channel number '''channel''', that can be heard anywhere in the [[region]] only by scripts in '''target''' [[listen|listening]] on '''channel'''.
|p3_type=string|p3_name=msg
|func_footnote=Regardless of where the prim is, the message will not travel over region borders.
|func_desc=Says the text supplied in string '''msg''' on channel supplied in integer '''channel''' to the object or avatar specified by '''target'''
|return_text
|return_text
|spec
|spec
|constants
|caveats=
|caveats=*This function cannot transmit on the {{#var:PUBLIC_CHANNEL}}, this is a design feature and not a bug.
*Text is spoken directly to the object or avatar within the same region as the script.
*If '''msg''' is longer than 1023 bytes it is truncated to 1023 bytes.
*Scripts on other prims can not listen and receive these text messages, with an exception for attachments described below.
*A prim can '''not''' hear itself, to prevent problems with recursion.
*Text can be a maximum of 1024 bytes.
*If sent to an agent '''not''' on channel 0, all of the agents attachments will hear the message.
*A prim cannot hear itself, to prevent problems with recursion.
*If sent to an agent '''on''' channel 0, it will appear to the agent as a normal talking prim via the viewer, and will not be heard by attachments.
*Sending text on DEBUG_CHANNEL is not supported
*Text sent to an avatar's ID on channel zero will be sent to the viewer.
*Text sent to an avatar's ID on non-zero channels can be heard by any attachment on the avatar
|examples=<lsl>default
|examples=<lsl>default
{
{
     collision_start(integer i)
     touch()
     {
     {
         llRegionSayTo(llDetectedKey(0), DEBUG_CHANNEL, "Ouch! That hurts!" );
         llRegionSayTo(llGetDetectedKey(0), 0, "You touched this!");
     }
     }
}</lsl>
}</lsl>
|helpers
|helpers
|also_events=
|also_events=
{{LSL DefineRow||[[listen]]|}}
{{LSL DefineRow||[[listen]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|Receives chat}}
|also_functions=
|also_functions=
{{LSL DefineRow||[[llListen]]|}}
{{LSL DefineRow||[[llListen]]|Ask for listen events}}
{{LSL DefineRow||[[llOwnerSay]]|Sends chat to the owner only}}
{{LSL DefineRow||[[llInstantMessage]]|Sends chat to the owner only (or to some other user only) to avoid spamming the {{#var:PUBLIC_CHANNEL}}}}
{{LSL DefineRow||[[llWhisper]]|Sends chat limited to 10 meters}}
{{LSL DefineRow||[[llOwnerSay]]|Sends chat to the owner only to avoid spamming the PUBLIC_CHANNEL}}
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
{{LSL DefineRow||[[llSay]]|Sends chat limited to 20 meters}}
{{LSL DefineRow||[[llSay]]|Sends chat limited to 20 meters}}
{{LSL DefineRow||[[llShout]]|Sends chat limited to 100 meters}}
{{LSL DefineRow||[[llShout]]|Sends chat limited to 100 meters}}
{{LSL DefineRow||[[llRegionSay]]|Sends chat that can be heard anywhere in the region}}
{{LSL DefineRow||[[llWhisper]]|Sends chat limited to 10 meters}}
{{LSL DefineRow||[[llInstantMessage]]|}}
{{LSL DefineRow||[[llDialog]]|}}
{{LSL DefineRow||[[llTextBox]]|}}
|also_tests
|also_tests
|also_articles
|also_articles={{LSL DefineRow||[[Hello Avatar]]}}
|notes=If one object 'says' something to another object (e.g., a button that, when touched,
|notes=
turns on a lamp), it is a good idea to use a very negative channel, e.g.,
* Channel {{HoverText|0|Zero}} is the {{#var:PUBLIC_CHANNEL}}. This should only be used for chat intended to be sent to the viewer.
<lsl>   llRegionSay(-5243212,"turn on");</lsl>
* 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>
    llRegionSayTo("55499a64-45c3-4b81-8880-8ffb5a7c251b",-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.
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.
 
|cat1
If {{#var:DEBUG_CHANNEL}} is used as '''channel''', the script will say '''msg''' to the Script Warning/Error window.
|cat2
 
* As of 1.18.3, using llRegionSay on the {{#var:DEBUG_CHANNEL}} will wrap around and display on channel 0, with a range of 100m.
|history=
*Introduced with SL 1.16.0
|cat1=Communications
|cat2=Chat
|cat3
|cat3
|cat4
|cat4
}}
}}

Revision as of 15:08, 20 April 2011

Emblem-important-red.png Pre-release Documentation Warning!

This function is not available yet. This documentation was written prior to its final release so it may not match the final implementation.

Summary

Function: llRegionSayTo( key target, integer channel, string msg );

Says the text supplied in string msg on channel supplied in integer channel to the object or avatar specified by target

• key target
• 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 is spoken directly to the object or avatar within the same region as the script.
  • Scripts on other prims can not listen and receive these text messages, with an exception for attachments described below.
  • Text can be a maximum of 1024 bytes.
  • A prim cannot hear itself, to prevent problems with recursion.
  • Sending text on DEBUG_CHANNEL is not supported
  • Text sent to an avatar's ID on channel zero will be sent to the viewer.
  • Text sent to an avatar's ID on non-zero channels can be heard by any attachment on the avatar
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>default {

   touch()
   {
       llRegionSayTo(llGetDetectedKey(0), 0, "You touched this!");
   }
}</lsl>

Notes

  • Channel 0 is the PUBLIC_CHANNEL. This should only be used for chat intended to be sent to the viewer.
  • 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>

   llRegionSayTo("55499a64-45c3-4b81-8880-8ffb5a7c251b",-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
•  llSay Sends chat limited to 20 meters
•  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 llRegionSayTo( key target, integer channel, string msg );