vector pos;
integer i;
default
{
state_entry()
{
i=0;
llSetStatus(STATUS_PHYSICS,FALSE);
llListen(0,"",NULL_KEY,"");
llSetBuoyancy(1.0);
}
listen(integer channel,string b, key c,string message)
{
if(message=="start")
{
llSetPos(llGetPos()+<llFrand(5.0),llFrand(5.0),llFrand(5.0)>-<2.5,2.5,2.5>);
llSetRot(<llFrand(1.0),llFrand(1.0),llFrand(1.0),llFrand(1.0)>);
llSetStatus(STATUS_PHYSICS,TRUE);
pos=llGetPos();
llListen(10,"",NULL_KEY,"");
llListen(20,"",NULL_KEY,"");
}
else if(message=="stop")llResetScript();
else if(message=="die")llDie();
if(channel==10)llMoveToTarget(llGetPos()+((vector)message-llGetPos())/8,0.5);
else if(channel==20)
{
llRotLookAt((rotation)message,0.5,1.0);
llApplyImpulse(<0.0,5.0,0.0>,TRUE);
pos=llGetPos();
if(pos.z>20)llApplyImpulse(<0.0,0.0,-10.0>,FALSE);
i++;
if(i>50)llResetScript();
}
}
}
Back to script library