123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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.
- }
- }
- }
|