PASSIVE

From Second Life Wiki

Jump to: navigation, search

Template:Needs Translation/LSL/es Template:Needs Translation/LSL/el Template:Needs Translation/LSL/he Template:Needs Translation/LSL/it Template:Needs Translation/LSL/ko Template:Needs Translation/LSL/nl Template:Needs Translation/LSL/hu Template:Needs Translation/LSL/no Template:Needs Translation/LSL/da Template:Needs Translation/LSL/sv Template:Needs Translation/LSL/tr Template:Needs Translation/LSL/pl Template:Needs Translation/LSL/pt Template:Needs Translation/LSL/ru Template:Needs Translation/LSL/uk Template:Needs Translation/LSL/zh-Hans Template:Needs Translation/LSL/zh-Hant

Contents

Description

Constant: integer PASSIVE = 0x4;

The integer constant PASSIVE has the value 0x4

This is used by sensors to find objects that are not moving.

Related Articles

Constants

Flag Description
AGENT 0x1 This is used to find agents only.
ACTIVE 0x2 This is used to find physical objects that are moving or objects containing an active script.
Flag Description
PASSIVE 0x4 This is used to find physical objects that are not moving or non-physical objects containing an inactive script or a non-scripted object.
SCRIPTED 0x8 This is used to find objects containing an active script.

Functions

•  llDetectedType
•  llSensor
•  llSensorRepeat

Examples

integer type;
 
integer done;
 
default
{
    state_entry()
    {
        done = 0;
        llVolumeDetect(TRUE); // I am now very sensitive to touch. So much so I feel things before they touch me.
    }
    collision_start(integer detected)
    {
        type = llDetectedType(0);
        if(type == AGENT)// = 1
        {
            llSay(0, "This is impossible. Since to make contact either I have to be moving or the avatar does.");
        }
        else if(type == ACTIVE)// = 2
        {
            llSay(0, "I have either been struck by a physical moving object or I have struck a stationary physical object.
            In either case the object was not scripted");
        }
        else if(type == PASSIVE)// = 4
        {
            llSay(0, "If I was moving I have struck a non physical object not containing an active script.");
        }
        else if(type == SCRIPTED)// = 8
        {
            llSay(0, "I have struck an object with an active script");
        }
        else if(type == 3)// AGENT & ACTIVE
        {
            llSay(0, "I have definately made contact with an avatar. If I was stationary the avatar was moving.");
        }
        else if(type == 10)// SCRIPTED & ACTIVE
        {
            llSay(0, "I have been struck by a moving phisical object (not an avatar) containing an active script");
        }
        else if(type == 12)// SCRIPTED & PASSIVE
        {
            llSay(0, "I struck a stationary non-physical object (not an avatar) containing an active script");
            //Seems like a good time to try something a bit less confrontational.
            llSensorRepeat("", "", AGENT, 20.0, PI, 1.0); // Radar!! I'll search only for avatars untill I find one.
        }
    }
    sensor(integer detected)
    {
        if(done == 0)
        {    // Now I'll search for moving physical objects (not avatars) scripted or not.
            llSensorRepeat("", "", ACTIVE, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 1)
        {    // Now I'll search for moving physical objects scripted or not and avatars.
            llSensorRepeat("", "", 3, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 2)
        {    // Now I'll search for non physical objects (not avatars) scripted or not.
            llSensorRepeat("", "", PASSIVE, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 3)
        {    // Now I'll search for non physical objects scripted or not and avatars.
            llSensorRepeat("", "", 5, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 4)
        {    // Now I'll search for stationary non physical and physical objects (not avatars) scripted or not.
            llSensorRepeat("", "", 6, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 5)
        {    // Now I'll search for stationary non physical and physical objects scripted or not and avatars.
            llSensorRepeat("", "", 7, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 6)
        {    // Now I'll search for moving physical objects with active scripts.
            llSensorRepeat("", "", SCRIPTED, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 7)
        {    // Now I'll search for moving physical objects with active scripts. Erm... again.
            llSensorRepeat("", "", 9, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 8)
        {    // Now I'll search for stationary, scripted physical objects.
            llSensorRepeat("", "", 10, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 9)
        {    // And again just in case I missed something....*coughs*
            llSensorRepeat("", "", 11, 20.0, PI, 1.0);
            ++done;
        }
        else if(done == 10)
        {    // Even though I did this before I will now finish by searching for any scripted objects.
            llSensorRepeat("", "", 12, 20.0, PI, 1.0);
            ++done;
            llSay(0, "Phew!");
        }
    }
}
Personal tools
In other languages