Difference between revisions of "LlOwnerSay"

From Second Life Wiki
Jump to navigation Jump to search
m
m (<lsl> tag to <source>)
 
(10 intermediate revisions by 6 users not shown)
Line 3: Line 3:
|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_desc=Says {{LSLP|msg}} to the owner only.
|func_desc=Says {{LSLP|msg}} to the object's owner only, if the owner is currently in the same [[region]].
|return_text
|return_text
|spec
|spec
|caveats=
|caveats=
* If {{LSLP|msg}} is longer than 1023 bytes, it will be truncated to 1023 bytes.
* 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 ~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.
* 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}}).
* 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=
|examples=
<lsl>
<source lang="lsl2">
default
default
{
{
Line 21: Line 22:
     }
     }
}
}
</lsl>
</source>
|helpers=
|helpers=
<lsl>
<source lang="lsl2">
// llOwnerSay extension for preventing silent failures
// llOwnerSay extension for preventing silent failures
// paste this code at the top of the script and replace
// paste this code at the top of the script and replace
// any calls to llOwnerSay below it with uOwnerSayPlus
// any calls to llOwnerSay with uOwnerSayPlus


owner_say(string inputString)
uOwnerSayPlus(string inputString)
{
{
     key owner = llGetOwner();
     key owner = llGetOwner();
Line 34: Line 35:
     // single owner that the region still has a handle for
     // single owner that the region still has a handle for
     if (llKey2Name(owner))
     if (llKey2Name(owner))
    {
         llOwnerSay(inputString);
         llOwnerSay(inputString);
    }
     // group owned, must send the message publicly
     // group owned, must send the message publicly
     else if (llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0) == owner)
     else if (llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0) == owner)
         llWhisper(PUBLIC_CHANNEL, "/me : " + inputString);
    {
         llWhisper(0, "/me : " + inputString);
    }
     // single owner, not present, send them an IM
     // single owner, not present, send them an IM
     else
     else
    {
         llInstantMessage(owner, inputString);
         llInstantMessage(owner, inputString);
    }
}
}
</lsl>
</source>
|also_functions=
|also_functions=
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}
Line 48: 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=
Line 57: 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 13:06, 22 January 2015

Summary

Function: llOwnerSay( string msg );
0.0 Forced Delay
10.0 Energy

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

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

Tests

• llOwnerSay Test

Signature

function void llOwnerSay( string msg );

Haiku

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