MySay

From Second Life Wiki
Jump to: navigation, search

Summary

Function: mySay( string objectName, string msg );

Cleaner chat on a user's screen. Gives a less-cluttered, more professional looking output.

• string objectName
• string msg

mySay(string objectName, string msg)
{
    string nameBeforeChange = llGetObjectName();
 
    llSetObjectName(objectName);
    llSay(PUBLIC_CHANNEL, "/me " + msg);
 
    llSetObjectName(nameBeforeChange);
}

See also: mySayOwner, Category:LSL_Chat

Examples

mySay("","Processing, please wait.");

//user sees just: 17:04 Processing, please wait.
//You don't need to specify anything in the first parameter. The second one is limited to the normal chat limitation of a maximum of 255 bytes for that string. You may if you wish in the function swap in llWhisper or llShout.

If you have many different scripts in the same prim using mySay and competing at the same time for the object name, one might grab object name while it is blank, and then set it back to blank, wiping out the object name. This version compensates for that competition.

mySay(string objectName, string msg)
{
    string nameBeforeChange = llGetObjectName();
 
    while (nameBeforeChange == "")
        nameBeforeChange = llGetObjectName();
 
    llSetObjectName(objectName);
    llSay(PUBLIC_CHANNEL, "/me " + msg);
 
    llSetObjectName(nameBeforeChange);
}

Notes

What this does:

Instead of users having their vision obscured by text like this covering half their screen:

[14:04] Animated Living Sofa Combo Couple & Solo 2.1e whispers: Lie F 1

They see just this:

[14:04] Lie F 1