NewLine: Difference between revisions
Jump to navigation
Jump to search
Ryu Darragh (talk | contribs) No edit summary |
|||
| Line 25: | Line 25: | ||
} | } | ||
return message; | return message; | ||
} | |||
</lsl> | |||
A shorter alternative: | |||
<lsl> | |||
string NewLine(string message) | |||
{ | |||
list lWords = llParseStringKeepNulls(message, ["\\n"], []); | |||
return llDumpList2String(lWords, "\n"); | |||
} | } | ||
</lsl> | </lsl> | ||
| Line 30: | Line 39: | ||
<div id="box"> | <div id="box"> | ||
== Example == | == Example == | ||
<div style="padding: 0.5em;"> | <div style="padding: 0.5em;"> | ||
Revision as of 03:23, 29 January 2010
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Specification
<lsl> string NewLine(string message) {
integer newlinepos = llSubStringIndex(message, "\\n");
while(newlinepos >= 0)
{
message = llDeleteSubString(message, newlinepos, newlinepos + 1);
message = llInsertString(message, newlinepos, "\n");
newlinepos = llSubStringIndex(message, "\\n");
}
return message;
} </lsl>
A shorter alternative: <lsl> string NewLine(string message) {
list lWords = llParseStringKeepNulls(message, ["\\n"], []); return llDumpList2String(lWords, "\n");
} </lsl>
Example
Example used in a prim to generate floating text. <lsl> string NewLine(string message) {
integer newlinepos = llSubStringIndex(message, "\\n");
while(newlinepos >= 0)
{
message = llDeleteSubString(message, newlinepos, newlinepos + 1);
message = llInsertString(message, newlinepos, "\n");
newlinepos = llSubStringIndex(message, "\\n");
}
return message;
}
default {
on_rez(integer rez_param)
{
llResetScript();
}
state_entry()
{
llSetText("", <1,1,1>, 0.0);
llListen(1, "", llGetOwner(), "");
}
listen(integer channel, string name, key id, string str)
{
str = NewLine(str);
llSetText(str, <1,1,1>, 1.0);
}
} </lsl> In chat,
"/1 test test test" causes the prim to display:
test test test
"/1 test\ntest\ntest" causes the prim to display:
test
test
test