llSetText

From Second Life Wiki
Revision as of 01:40, 29 October 2007 by Strife Onizuka (talk | contribs) (It is really annoying when people remove things and don't notice the change.)
Jump to navigation Jump to search

Summary

Function: llSetText( string text, vector color, float alpha );
0.0 Forced Delay
10.0 Energy

Displays text over a prim with specific color and transparency (specified with alpha).

• string text text to display between the quotes
• vector color color in RGB <R, G, B> (<0.0, 0.0, 0.0> = black, <1.0, 1.0, 1.0> = white)
• float alpha from 0.0 (clear) to 1.0 (solid) (0.0 <= alpha <= 1.0)

Caveats

  • A script calling llSetText cannot know if it is or is not changing the floating text, since there is no llGetText function.
  • The floating text is a property of the prim and not the script, thus the text will remain if the script is deactivated or removed.
    • To remove floating text, one must assign an empty string with llSetText("", <1.0, 1.0, 1.0>, 1.0);
  • Vertical whitespace is removed from the end of the text string, so if you want vertical whitespace put any character (like a space) on the last line.
    • Bad: llSetText("Monkeys\n\n\n\n\n", <1.0, 1.0, 1.0>, 1.0);
    • Good: llSetText("Monkeys\n\n\n\n\n ", <1.0, 1.0, 1.0>, 1.0);

Examples

Example colors:

vector white = <1.0, 1.0, 1.0>;
vector red = <1.0, 0.0, 0.0>;
vector green = <0.0, 1.0, 0.0>;
vector blue = <0.0, 0.0, 1.0>;
vector grey = <0.5, 0.5, 0.5>;
vector black = <0.0, 0.0, 0.0>;
llSetText("I am on", <1.0, 1.0, 1.0>, 1.0);

<1.0, 1.0, 1.0> represents the values for red, green, and blue. <1.0, 1.0, 1.0>, means "white" and <0.0, 0.0, 0.0> means "black".

llSetText("I am off", <0.0, 0.0, 0.0>, 1.0);

The 1.0 is the alpha setting. 1.0 means fully opaque, and 0.0 would be completely transparent (invisible).

Example of how llSetText could be included in default code to show object's name in green text:

default
{
    state_entry()
    {
         llSay(0, "Hello, Avatar!");
         llSetText(llGetObjectName(), <0.0, 1.0, 0.0>, 1.0); // Display object's name in green
    }

    touch_start(integer total_number)
    {
         llSay(0, "Touched.");
    }
}

By default the floating text will appear on a single line. However, the floating text can be spread over multiple lines by using a line break "\n" (read SplitLine in section 'See Also').

     llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);

Useful Snippets

Drag this script out of inventory onto an object to erase its set text:

// http://wiki.secondlife.com/wiki/llSetText
default
{
    state_entry()
    {
        llSetText("", <0.0, 0.0, 0.0>, 0.0);
        llRemoveInventory(llGetScriptName());
    }
}

See Also

Articles

•  Color in LSL
•  Translucent Color
• Examples SplitLine Insert 'new line' escape codes at certain positions of a string
• Useful snippet llGetObjectPermMask Label an object with text and newlines to give away or sell

Deep Notes

Signature

function void llSetText( string text, vector color, float alpha );