Swarming a

From The SchomEmunity Wiki
Jump to: navigation, search
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