llCollisionFilter

From Second Life Wiki
Revision as of 13:44, 27 August 2009 by MathieuBC Noel (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Summary

Function: llCollisionFilter( string name, key id, integer accept );

Sets the collision filter, exclusively or inclusively.

• string name
• key id
• integer accept

if accept == TRUE, only accept collisions with objects name and id (either is optional), otherwise with objects not name or id

Examples

Stop filtering: <lsl>llCollisionFilter("", NULL_KEY, TRUE);</lsl> Filter out all collisions: <lsl>llCollisionFilter("", NULL_KEY, FALSE);</lsl>

Complete script whit llcollisionfilter

<lsl> //The stair sound script. Make a sculpted oe prim stair make sound when an avatar go up on down on It. //MathieuBC Noel scripter and freebie maker. Don't erase that part when you use this script key id  ;

default {

   state_entry()
   {

   }

    collision_start(integer total_number)   //It's write colision start to notofy the computer that       
                                            //the next command line are going to work when the        
                                            //object detect an colision.

   {    
        if (AGENT)                          //The computer star to read the command line when It's 
                                            //an avatar colide on this.
         {
          llGetAgentInfo( id );             //Agent key is get by the object.

          llCollisionFilter("", id, TRUE);  //You have an colision only whit an agant whit the key                  
                                            //taken by the object.

          llSensorRepeat( "", id, AGENT, 3, PI,.7 ); //The sensor is sctivate each .7 second 

            } 
          else
            {  
              state off ;                    //If It's not an AGENT colision the computer must use     
                                             //the state off command line well below in the script 
                                             //sheet.

              }
               }
              collision_end(integer total_number) 
   {    
          llSensorRemove();                    //When the object did not detect an colision, the 
                                               //sensor is remove 
            } 



            sensor(integer  total_number)       //This is the sensor action when It's activate whit 
                                                //the above command line in the begin of this sheet.
   { 


        if(AGENT_WALKING)                       //If the sensor detect in his radius an Agent 
                                                //walking and running please dothe command line 
                                                //below.

           llPlaySound("steps_on_wooden_stairs", 1.0);  //Play the sound name I put in the 
                                                        //inventory object. You can also copy and   
                                                        //past the UUID of the soung between the two 
                                                        //" .

       else                                             //Otherwise (else), if the agent do nothing 
                                                        //read orther command line.


            llStopSound();                              //Stop sound


} 
          land_collision_start(vector pos)              //If the object have an land colision follow 
                                                        //the lines below.

{ llStopSound();

       llSensorRemove();                                //Remove the repeat sensor.

}

       } 

      state off                                         //This is the state off apear in the beginig  
                                                        //of the script.                                   

{

   state_entry()
   {

   llStopSound();                                       //Stop sound                  
   llCollisionFilter("", id, FALSE);                    //Stop the filtering of collision identity   
                                                        //and UIID detection to choose to have and  
                                                        //colision whit It. 


state default ; //Retun to the begening of the script


}

   }
</lsl>

See Also

Events

•  collision_start
•  collision
•  collision_end

Functions

•  llPassCollisions
•  llVolumeDetect

Deep Notes

Search JIRA for related Issues

Signature

function void llCollisionFilter( string name, key id, integer accept );