clockwerk-opensim-config
/assets/ScriptsAssetSet/KanEd-Test04.lsl |
@@ -0,0 +1,51 @@ |
integer counter; |
integer second; |
vector startPosition; |
|
default |
{ |
state_entry() |
{ |
llSay( 0, "Hello, Avatar! Touch to change position."); |
counter = 0; |
startPosition = llGetPos(); |
} |
|
touch_start(integer total_number) |
{ |
counter = counter + 1; |
|
llSay( 0, "Touched by angel number " + (string)counter); |
|
llSetTimerEvent( 1 ); // arrange for a "timer event" every second. |
} |
|
timer() // do these instructions every time the timer event occurs. |
{ |
second++; |
|
// choose three random distances between 0. and 10.0. |
float X_distance = llFrand( 10.0 ); |
float Y_distance = llFrand( 10.0 ); |
float Z_distance = llFrand( 10.0 ); |
|
// combine these distance components into a vector and use it |
// to increment the starting position and reposition the object. |
vector increment = < X_distance, Y_distance, Z_distance >; |
vector newPosition = startPosition + increment; |
llSetPos( newPosition ); // reposition object. |
|
if ( second > 19 ) // then time to wrap this up. |
{ |
// move object back to starting position... |
while ( llVecDist( llGetPos(), startPosition ) > 0.001) |
{ |
llSetPos( startPosition ); |
} |
|
llSay( 0, "Object now resting and resetting script." ); |
llResetScript(); // return object to ready state. |
} |
} |
} |
|