Difference between revisions of "LlSetText"

From Second Life Wiki
Jump to navigation Jump to search
m
(<lsl> examples)
Line 19: Line 19:
**Good: 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=
|examples=
Example colors:
<pre>
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>;
</pre>
<pre>
llSetText("I am on", <1.0, 1.0, 1.0>, 1.0);
</pre>
<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".
<pre>
llSetText("I am off", <0.0, 0.0, 0.0>, 1.0);
</pre>
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:
Example of how llSetText could be included in default code to show object's name in green text:
 
<lsl>
default
default
  {
  {
     state_entry()
     state_entry()
Line 52: Line 34:
     }
     }
  }
  }
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').
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').
 
</lsl>
<pre>
Example colors:
<lsl>
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>;
</lsl>
<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":
<lsl>
llSetText("I am on", <1.0, 1.0, 1.0>, 1.0);
</lsl>
<lsl>
llSetText("I am off", <0.0, 0.0, 0.0>, 1.0);
</lsl>
The 1.0 is the alpha setting. 1.0 means fully opaque, and 0.0 would be completely transparent (invisible):
<lsl>
    llSetText("alpha", <0.0, 1.0, 0.0>, 0.5);
</lsl>
Multiple lines:
<lsl>
     llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);
     llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);
</pre>
</lsl>
 
|helpers=
|helpers=
Drag this script out of inventory onto an object to erase its set text:
Drag this script out of inventory onto an object to erase its set text:
<pre>
<lsl>
// http://wiki.secondlife.com/wiki/llSetText
// http://wiki.secondlife.com/wiki/llSetText
default
default
Line 71: Line 72:
     }
     }
}
}
</pre>
</lsl>
|also
|also
|also_functions
|also_functions

Revision as of 18:08, 31 December 2007

Summary

Function: llSetText( string text, vector color, float alpha );

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);
All Issues ~ Search JIRA for related Bugs

Examples

Example of how llSetText could be included in default code to show object's name in green text: <lsl> 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'). </lsl> Example colors: <lsl> 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>; </lsl> <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": <lsl> llSetText("I am on", <1.0, 1.0, 1.0>, 1.0); </lsl> <lsl> llSetText("I am off", <0.0, 0.0, 0.0>, 1.0); </lsl> The 1.0 is the alpha setting. 1.0 means fully opaque, and 0.0 would be completely transparent (invisible): <lsl>

    llSetText("alpha", <0.0, 1.0, 0.0>, 0.5);

</lsl> Multiple lines: <lsl>

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

Useful Snippets

Drag this script out of inventory onto an object to erase its set text: <lsl> // http://wiki.secondlife.com/wiki/llSetText default {

   state_entry()
   {
       llSetText("", <0.0, 0.0, 0.0>, 0.0);
       llRemoveInventory(llGetScriptName());
   }

} </lsl>

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

Search JIRA for related Issues

Signature

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