Difference between revisions of "LSL 101/Functions That Return a Value"
m |
|||
Line 7: | Line 7: | ||
Here's how that would work in a script. | Here's how that would work in a script. | ||
<lsl> | <lsl>default | ||
default | |||
{ | { | ||
state_entry() | state_entry() | ||
Line 15: | Line 14: | ||
llOwnerSay( llGetRegionName() ); | llOwnerSay( llGetRegionName() ); | ||
} | } | ||
} | }</lsl> | ||
</lsl> | |||
Notice that ''llRegionSay'' does not take any parameters, but it still has to be followed by a pair of parentheses. It is 'not' followed by a semicolon, because it is not, by itself, a statement. | Notice that ''llRegionSay'' does not take any parameters, but it still has to be followed by a pair of parentheses. It is ''not'' followed by a semicolon, because it is not, by itself, a statement. | ||
When the SL sim server executes the line | When the SL sim server executes the line | ||
Line 27: | Line 25: | ||
llOwnerSay( "Ganymede" ); | llOwnerSay( "Ganymede" ); | ||
which chats the string "Ganymede" to the object's owner. | which chats the string "Ganymede" to the object's owner. | ||
Now let's make the output a little more meaningful by introducing [[LSL 101/String Concatenation|string concatenation]]. |
Revision as of 11:18, 21 May 2009
← Compile Time Errors | ↑̲ LSL 101 ̲↑ | String Concatenation → |
The built-in functions we've seen so far, llSay and llOwnerSay, act as commands, causing something to happen in SL. But other built-in functions are used to retrieve information from SL and make it available to the script. In this case, we say that the function returns the information.
The built-in function llGetRegionName is an example of this. When executed, it returns the name of whatever sim the script is executing in. If the script is running in Ganymede, for example, executing llGetRegionName would return the string "Ganymede".
Here's how that would work in a script. <lsl>default {
state_entry() { // Announce the name of the current region llOwnerSay( llGetRegionName() ); }
}</lsl>
Notice that llRegionSay does not take any parameters, but it still has to be followed by a pair of parentheses. It is not followed by a semicolon, because it is not, by itself, a statement.
When the SL sim server executes the line
llOwnerSay( llGetRegionName() );
it first executes the llGetRegionName function and (in essence) replaces llGetRegionName() with the string that is returned. This results in something like
llOwnerSay( "Ganymede" );
which chats the string "Ganymede" to the object's owner.
Now let's make the output a little more meaningful by introducing string concatenation.