Difference between revisions of "LlRegionSay"

From Second Life Wiki
Jump to navigation Jump to search
(Unravel the secretive magic)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{LSL_Function/chat|channel|msg|np=*}}
|func_id=331
|func_id=331
|func_sleep=0.0
|func_sleep=0.0
|func_energy=10.0
|func_energy=10.0
|func=llRegionSay
|func=llRegionSay
|p1_type=integer|p1_name=channel|p1_desc
|p1_type=integer|p1_name=channel|p1_desc=Any integer value except 0 (which would be open chat, or PUBLIC_CHANNEL).
|p2_type=string|p2_name=msg|p2_desc
|p2_type=string|p2_name=msg|p2_desc
|func_desc=Says the string {{LSLP|msg}} on channel number {{LSLP|channel}} that can be heard anywhere in the [[region]] by a script [[listen|listening]] on {{LSLP|channel}}.
|func_desc=Says the string {{LSLP|msg}} on channel number {{LSLP|channel}} that can be heard anywhere in the [[region]] by a script [[listen|listening]] on {{LSLP|channel}}.
Line 12: Line 11:
|spec
|spec
|constants
|constants
|caveats=*This function cannot transmit on the {{#var:PUBLIC_CHANNEL}} (channel 0), this is a design feature and not a bug.
|caveats=*This function cannot transmit on {{#var:PUBLIC_CHANNEL}} channel 0, this is a design feature and not a bug.
*If {{LSLP|msg}} is longer than 1024 characters it is truncated to 1024 characters. (Note that in Mono, each character occupies 2 memory bytes).
*If {{LSLP|msg}} is longer than 1024 characters it is truncated to 1024 characters. (Note that in Mono, each character occupies 2 memory bytes).
*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.
Line 43: Line 42:
Negative channels are popular for script communications because the standard SL 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 standard SL 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 {{#var:DEBUG_CHANNEL}} is used as {{LSLP|channel}}, the script will say {{LSLP|msg}} to the Script Warning/Error window.  
If DEBUG_CHANNEL is used as {{LSLP|channel}}, the script will say {{LSLP|msg}} to the Script Warning/Error window.  


If you wish two objects owned by the same person to communicate within a SIM, one idea is to make both scripts compute the channel based on the owner UUID. e.g. :-
If you wish two objects owned by the same person to communicate within a SIM, one idea is to make both scripts compute the channel based on the owner UUID. e.g. :-

Revision as of 16:30, 9 January 2014

Summary

Function: llRegionSay( integer channel, string msg );

Says the string msg on channel number channel that can be heard anywhere in the region by a script listening on channel.

• integer channel Any integer value except 0 (which would be open chat, or PUBLIC_CHANNEL).
• string msg

Regardless of where the prim is, the message will not travel over region borders.

Caveats

  • This function cannot transmit on channel 0, this is a design feature and not a bug.
  • If msg is longer than 1024 characters it is truncated to 1024 characters. (Note that in Mono, each character occupies 2 memory 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

<lsl>default {

   state_entry()
   {
       llRegionSay(25,"This is an incredibly useless program." );
   }

}</lsl>

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

Notes

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> llRegionSay(-5243212,"turn on");</lsl> Negative channels are popular for script communications because the standard SL 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.

If you wish two objects owned by the same person to communicate within a SIM, one idea is to make both scripts compute the channel based on the owner UUID. e.g. :- <lsl>

   gChannel = 0x80000000

See Also

Events

•  listen

Functions

•  llListen
•  llRegionSayTo Sends chat directly to specified target within region
•  llOwnerSay Sends chat to the owner only
•  llWhisper Sends chat limited to 10 meters
•  llSay Sends chat limited to 20 meters
•  llShout Sends chat limited to 100 meters
•  llInstantMessage
•  llDialog
•  llTextBox

Deep Notes

History

  • Introduced with SL 1.16.0

Search JIRA for related Issues

Signature

function void llRegionSay( integer channel, string msg );