Difference between revisions of "LlOwnerSay"

From Second Life Wiki
Jump to navigation Jump to search
(Changed max byte count to 1024. Tested against llSay and the return was identical. If I'm wrong, sorry for the bother.)
m (<lsl> tag to <source>)
 
(25 intermediate revisions by 13 users not shown)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{LSL_Function/limits}}{{LSL_Function/chat||msg}}
|func_id=292|func_sleep=0.0|func_energy=10.0
|func_id=292|func_sleep=0.0|func_energy=10.0
|func=llOwnerSay|p1_type=string|p1_name=msg
|func=llOwnerSay|p1_type=string|p1_name=msg
|func_footnote=Owner must be in the same [[region]].
|func_desc=Says {{LSLP|msg}} to the object's owner only, if the owner is currently in the same [[region]].
|func_desc=Says '''msg''' to the owner only.
|return_text
|return_text
|spec
|spec
|caveats=*Truncates '''msg''' to 1024 bytes if '''msg''' is more than 1024 bytes long.
|caveats=
* If {{LSLP|msg}} is longer than 1024 bytes, it will be truncated to 1024 bytes. This can convey 1024 ASCII characters, or fewer if non-ASCII are present.
* Silently fails ~45 seconds after the owner leaves the region the object is in.
* Silently fails when the object to which the script is attached is [[deed]]ed to a group.
* Some viewers do not display llOwnerSay text when {{LSLP|msg}} is empty ({{String}}).
* Produces swirly particle effects for the owner (who sees the message) but these effects do not appear to be visible to other avatars (who don't).
|constants
|constants
|examples=<pre>
|examples=
default {
<source lang="lsl2">
     touch_start()
default
{
     touch_start(integer num_detected)
     {
     {
         llOwnerSay("Ouch!" );
         llOwnerSay("Ouch!");
     }
     }
}
}
</pre>
</source>
|helpers
|helpers=
<source lang="lsl2">
// llOwnerSay extension for preventing silent failures
// paste this code at the top of the script and replace
// any calls to llOwnerSay with uOwnerSayPlus
 
uOwnerSayPlus(string inputString)
{
    key owner = llGetOwner();
 
    // single owner that the region still has a handle for
    if (llKey2Name(owner))
    {
        llOwnerSay(inputString);
    }
    // group owned, must send the message publicly
    else if (llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0) == owner)
    {
        llWhisper(0, "/me : " + inputString);
    }
    // single owner, not present, send them an IM
    else
    {
        llInstantMessage(owner, inputString);
    }
}
</source>
|also_functions=
|also_functions=
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
Line 22: Line 55:
{{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||[[llInstantMessage]]|}}
{{LSL DefineRow||[[llRegionSayTo]]|Sends private chat region wide}}
{{LSL DefineRow||[[llInstantMessage]]|Sends private chat anywhere on the grid}}
|also_events
|also_events
|also_tests
|also_tests=
{{LSL DefineRow|[[llOwnerSay Test]]|}}
|also_articles
|also_articles
|notes
|notes
Line 30: Line 65:
|negative_index
|negative_index
|cat1=Communications
|cat1=Communications
|haiku={{Haiku|Speak to me only.|Murmur secrets in my ear:|Clandestine whispers.}}
|cat2
|cat2
|cat3
|cat3
|cat4
|cat4
}}
}}

Latest revision as of 14:06, 22 January 2015

Summary

Function: llOwnerSay( string msg );

Says msg to the object's owner only, if the owner is currently in the same region.

• string msg message to be transmitted

Caveats

  • If msg is longer than 1024 bytes, it will be truncated to 1024 bytes. This can convey 1024 ASCII characters, or fewer if non-ASCII are present.
  • Silently fails ~45 seconds after the owner leaves the region the object is in.
  • Silently fails when the object to which the script is attached is deeded to a group.
  • Some viewers do not display llOwnerSay text when msg is empty ("").
  • Produces swirly particle effects for the owner (who sees the message) but these effects do not appear to be visible to other avatars (who don't).
All Issues ~ Search JIRA for related Bugs

Examples

default
{
    touch_start(integer num_detected)
    {
        llOwnerSay("Ouch!");
    }
}

Useful Snippets

// llOwnerSay extension for preventing silent failures
// paste this code at the top of the script and replace
// any calls to llOwnerSay with uOwnerSayPlus

uOwnerSayPlus(string inputString)
{
    key owner = llGetOwner();

    // single owner that the region still has a handle for
    if (llKey2Name(owner))
    {
        llOwnerSay(inputString);
    }
    // group owned, must send the message publicly
    else if (llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0) == owner)
    {
        llWhisper(0, "/me : " + inputString);
    }
    // single owner, not present, send them an IM
    else
    {
        llInstantMessage(owner, inputString);
    }
}

See Also

Functions

•  llRegionSay Sends chat region wide
•  llWhisper Sends chat limited to 10 meters
•  llSay Sends chat limited to 20 meters
•  llShout Sends chat limited to 100 meters
•  llRegionSayTo Sends private chat region wide
•  llInstantMessage Sends private chat anywhere on the grid

Articles

•  Limits SL limits and constrictions

Deep Notes

Search JIRA for related Issues

Tests

• llOwnerSay Test

Signature

function void llOwnerSay( string msg );

Haiku

Speak to me only.
Murmur secrets in my ear:
Clandestine whispers.