LSL Status/Kan-ed4
From OpenSimulator
(Difference between revisions)
m (Robot: Cosmetic changes) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | {{ | + | {{Quicklinks}} |
<br /> | <br /> | ||
Line 57: | Line 57: | ||
'''Status:''' Working! | '''Status:''' Working! | ||
+ | |||
+ | [[Category:Scripts]] |
Latest revision as of 19:31, 3 March 2012
Code
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. } } }
Status: Working!