LlList2ListStrided

From Second Life Wiki

Jump to: navigation, search

Function: list llList2ListStrided( list src, integer start, integer end, integer stride );

198 Function ID
0.0 Delay
10.0 Energy

Returns a list of all the entries whose index is a multiple of stride in the range start to end.

• list src
• integer start start index
• integer end end index
• integer stride


start, end & stride support negative indexes.

Specification

Index Positive Negative
First 0 -length
Last length - 1 -1

Mentally first translate any negative indexes into positive indexes

  • If start <= end then the range operated on starts at start and ends at end. [start, end]
  • If start > end then the range operated on starts at 0 and goes to end and then starts again at start and goes to -1. [0, end] + [start, -1]

Positive indexes past the length (after the last index), or negative indexes past the beginning (before the first index) are valid. The effects are predictable, the entries are treated as if they were there but were removed just before output.

See negative indexes for more information.

Examples

 
list menu = ["1", "one", "2", "two", "3", "three"];
default
{
    state_entry()
    {
        llListen(10, "", llGetOwner(), "");
    }
    touch_start(integer detected)
    {
        list buttons = llList2ListStrided(menu, 0, -1, 2);
        llDialog(llDetectedKey(0), "choose a number", buttons, 10);
    }
    listen(integer channel, string obj, key id, string message)
    {
        integer index = llListFindList(menu, [message]);
        if (index != -1)
        {
            llOwnerSay("you chose " + llList2String(menu, index + 1) + " (" + message + ")");
        }
    }
}
 

See Also

Articles

•  Negative Index
Personal tools