RSS
 

Archive for June, 2008

LSL tests: recursive function

18 Jun

It’s good practice to make code easy to maintain, so sometimes you’ll want to use less code using recursive functions. In order to find out how to this works in Second Life I created this small recusive example:

integer i = 0;
integer top = 0;
integer Monkeys()
{
    llOwnerSay("monkeys");
    i++;
    if (i <= top)
        return Monkeys();
    else
        return i;
}
default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }
    touch_start(integer total_number)
    {
        i = 0;
        top = Monkeys();
        llOwnerSay((string)top);
    }
}

This script says monkeys an increasing amount of times every time you touch it by calling itself if and keeping track of the total amount of times the function is called. First time there will be 1 monkey, next time 2 monkeys etc. Find more products at our shop in Badmoon.

 
Comments Off

Posted in Uncategorized

 

LSL tests: walking states

17 Jun

I had to create a simple script to turn a neon sign on and off. I decided to have both versions of the sign in a single texture and changing the offset with a script. Instead of using a timer and using llSetTimeout() instead I opted to pause the script for a small amount of time. The script does not respond when it’s sleeping which should be less laggy then the timeout. All i do then at the start of a state is offsetting the texture to show the on/off alternatively.

default
{
    state_entry()
    {
        llOffsetTexture(0.0,0.25,ALL_SIDES);
        llSleep(1.37);
        state off;
    }
}

state off
{
    state_entry()
    {
        llOffsetTexture(0.0,0.75,ALL_SIDES);
        llSleep(.723);
        state default;
    }
}

Hope this is of use to you. See the result in our Higher / Lower game at Badmoon.

 
Comments Off

Posted in Uncategorized