using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;namespace SecondLife { public class Script : OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass { public Script() { }
int counter;
int second;
public void default_event_state_entry()
{
llSay( 0, "Hello, Avatar! Touch to change color and size.");
counter = 0;
}
public void default_event_touch_start(int total_number)
{
counter = counter + 1;
llSay( 0, "Touched by angel number " + counter.ToString());
llSetTimerEvent( 2 ); // create a "timer event" every 2 seconds.
}
public void default_event_timer() // do these instructions every time the timer event occurs.
{
second++;
// choose three random RGB color components between 0. and 1.0.
double red = llFrand( 1.0 );
double green = llFrand( 1.0 );
double blue = llFrand( 1.0 );
// combine color components into a vector and use that vector
// to set object color.
LSL_Types.Vector3 prim_color = new LSL_Types.Vector3( red, green, blue );
llSetColor( prim_color, ALL_SIDES ); // set object color to new color.
// a choose random number between 0. and 10 for use as a scale factor.
double new_scale = llFrand( 10.0 );
llSetScale(new LSL_Types.Vector3( new_scale, new_scale, new_scale ) ); // set object scale.
if ( second > 400 ) // then time to wrap this up.
{
// turn object black, print "resting" message, and reset object....
llSetColor( new LSL_Types.Vector3( 0, 0, 0 ), ALL_SIDES );
llSay( 0, "Object now resting and resetting script." );
llResetScript(); // return object to ready state.
}
}
} }