up and down

Creating scripts
Post Reply
User avatar
Constance Peregrine
Posts: 2349
Joined: Sun Dec 23, 2012 11:35 am
Has thanked: 2778 times
Been thanked: 1482 times

up and down

Post by Constance Peregrine »

I really can't think of what to call this...lol

But I have been looking for something like this for awhile and finally found it inside a spider that Selea Core offered. Tested in a simple box in opensim but not in Kitely.

It makes the prim go up then down....I am sure smarter folx than I can find some uses for it-))

Code: Select all


// sensor variables
float sensor_interval = 2.0;    // interval between scans in seconds
float sensor_range = 10.0;        // range in meters
//movement variables
integer sky = 0;
float TOP = 4.6;
float SPEED = 2;
float target;
vector pos;
vector mpos;

default
{
 on_rez(integer start_param) {
        llResetScript();
    }

        state_entry()
    {
        pos = llGetPos();
        if(sky == 0)
        {
            target = pos.z + TOP;
        }
        else
        {
             target = pos.z - TOP;
        }
        llSetTimerEvent(sensor_interval); //Repeats the sensor.
    }
     timer()
    {
        llSensor("",NULL_KEY,AGENT,sensor_range,PI);
    }
      sensor(integer num_detected)
    {
        state moving;
    }   
    touch_end(integer n) 
    {
        state moving;
    }
      state_exit()
    {
        llSetTimerEvent(0.0);        
    }
}

state moving
{
 on_rez(integer start_param) 
    {
       llResetScript();
    }    
    state_entry()
    {
        llSetTimerEvent(1.0); 
    }
    
    timer()
    {
        mpos = llGetPos();
        if( mpos.z!=target )
        {
            if( mpos.z>target )
            {
                mpos.z = mpos.z - SPEED;
            }
            else
            {
                mpos.z = mpos.z + SPEED;
            }
        }
        
        if(  llFabs(mpos.z - target) < SPEED )
        {
            mpos.z = target;   
            llSetPos(mpos);
        
            if(sky == 0)
            {
                sky = 1;
                target = pos.z;
            }
            else
            {
                sky = 0;
                llSetTimerEvent(0.0);
                state default;
            }
        }   
        llSetPos(mpos);
    }
}
Laissez faire et laissez passer, le monde va de lui même!
My little sounds store https://www.kitely.com/market?store=2040306

Ephemeral wanderer...
Post Reply