Difference between revisions of "Template:LSL Constants Sensor"

From Second Life Wiki
Jump to navigation Jump to search
m (it's the equals x_x)
m (AGENT is deprecated, use AGENT_BY_LEGACY_NAME instead)
Line 11: Line 11:
{{!}} {{#var:value}}
{{!}} {{#var:value}}
{{!}} {{#var:comment}}
{{!}} {{#var:comment}}
{{!}} DEPRECATED: Use AGENT_BY_LEGACY_NAME
{{!}} <font color="red">'''DEPRECATED:'''</font> Use AGENT_BY_LEGACY_NAME
{{!}}-
{{!}}-
{{!}} {{#vardefine:AGENT_BY_LEGACY_NAME|{{LSL Const|AGENT_BY_LEGACY_NAME|integer|1|hex=0x1|c=Agents}}}}{{#var:AGENT_BY_LEGACY_NAME}}
{{!}} {{#vardefine:AGENT_BY_LEGACY_NAME|{{LSL Const|AGENT_BY_LEGACY_NAME|integer|1|hex=0x1|c=Agents}}}}{{#var:AGENT_BY_LEGACY_NAME}}
Line 72: Line 72:
     {
     {
         type = llDetectedType(0);
         type = llDetectedType(0);
         if(type == AGENT)// = 1
         if(type == AGENT_BY_LEGACY_NAME)// = 1
         {
         {
             llSay(0, "This is impossible. Since there is no avatar who doesn't require the physical calculation.");
             llSay(PUBLIC_CHANNEL, "This is impossible. Since there is no avatar who doesn't require the physical calculation.");
         }
         }
         else if(type == ACTIVE)// = 2
         else if(type == ACTIVE)// = 2
         {
         {
             llSay(0, "I have been struck by a physical object not containing any script.");
             llSay(PUBLIC_CHANNEL, "I have been struck by a physical object not containing any script.");
         }
         }
         else if(type == PASSIVE)// = 4
         else if(type == PASSIVE)// = 4
         {
         {
             llSay(0, "This is impossible. Non-physical objects cannot trigger this event.");
             llSay(PUBLIC_CHANNEL, "This is impossible. Non-physical objects cannot trigger this event.");
         }
         }
         else if(type == SCRIPTED)// = 8
         else if(type == SCRIPTED)// = 8
         {
         {
             llSay(0, "This is impossible. Since there is no object which isn't physical nor non-physical.");
             llSay(PUBLIC_CHANNEL, "This is impossible. Since there is no object which isn't physical nor non-physical.");
         }
         }
         else if(type == 3)// AGENT & ACTIVE
         else if(type == 3)// AGENT_BY_LEGACY_NAME & ACTIVE
         {
         {
             llSay(0, "I have been struck by an avatar.");
             llSay(PUBLIC_CHANNEL, "I have been struck by an avatar.");
         }
         }
         else if(type == 10)// SCRIPTED & ACTIVE
         else if(type == 10)// SCRIPTED & ACTIVE
         {
         {
             llSay(0, "I have been struck by a phisical object containing any script.");
             llSay(PUBLIC_CHANNEL, "I have been struck by a physical object containing any script.");
         }
         }
         else if(type == 12)// SCRIPTED & PASSIVE
         else if(type == 12)// SCRIPTED & PASSIVE
         {
         {
             llSay(0, "This is impossible. Non-physical objects cannot trigger this event.");
             llSay(PUBLIC_CHANNEL, "This is impossible. Non-physical objects cannot trigger this event.");
         }
         }
     }
     }
Line 109: Line 109:
     touch_start(integer numberDetected)
     touch_start(integer numberDetected)
     {
     {
         llSensor("", "", ACTIVE | PASSIVE | AGENT, 20.0, PI); // activates the sensor.
         llSensor("", "", ACTIVE | PASSIVE | AGENT_BY_LEGACY_NAME, 20.0, PI); // activates the sensor.
     }
     }


Line 121: Line 121:
             message += (string)i + ", " + llDetectedName(i) + ", ";
             message += (string)i + ", " + llDetectedName(i) + ", ";
             list typeList;
             list typeList;
             if(AGENT & type)
             if(AGENT_BY_LEGACY_NAME & type)
             {
             {
                 typeList += "AGENT";
                 typeList += "AGENT_BY_LEGACY_NAME";
             }
             }
             if(ACTIVE & type)
             if(ACTIVE & type)
Line 138: Line 138:
             }
             }
             message += llDumpList2String(typeList, "|");
             message += llDumpList2String(typeList, "|");
             llWhisper(0, message);
             llWhisper(PUBLIC_CHANNEL, message);
             i++;
             ++i;
         }
         }
     }
     }
Line 146: Line 146:
     {
     {
         // This is impossible if range = 20.0 and you are standing within 10m!
         // This is impossible if range = 20.0 and you are standing within 10m!
         llWhisper(0, "Nothing is near me at present.");  
         llWhisper(PUBLIC_CHANNEL, "Nothing is near me at present.");  
     }
     }
}
}
Line 161: Line 161:
         integer type = llDetectedType(i);
         integer type = llDetectedType(i);
         string message;
         string message;
         llWhisper(0, (string)i + ", " + llDetectedName(i));
         llWhisper(PUBLIC_CHANNEL, (string)i + ", " + llDetectedName(i));
         i++;
         ++i;
     }
     }
}
}
Line 169: Line 169:
     touch_start(integer detected)
     touch_start(integer detected)
     {
     {
         llWhisper(0, "AGENT");
         llWhisper(PUBLIC_CHANNEL, "AGENT_BY_LEGACY_NAME");
         llSensor("", "", AGENT, 20.0, PI);
         llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME, 20.0, PI);
     }
     }
     sensor(integer detected)
     sensor(integer detected)
Line 177: Line 177:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "ACTIVE");
             llWhisper(PUBLIC_CHANNEL, "ACTIVE");
             llSensor("", "", ACTIVE, 20.0, PI);
             llSensor("", NULL_KEY, ACTIVE, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 184: Line 184:
         {
         {
             tellit(detected);
             tellit(detected);
             llWhisper(0, "AGENT|ACTIVE");
             llWhisper(PUBLIC_CHANNEL, "AGENT_BY_LEGACY_NAME|ACTIVE");
             llSensor("", "", AGENT | ACTIVE, 20.0, PI);
             llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME | ACTIVE, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 191: Line 191:
         {
         {
             tellit(detected);
             tellit(detected);
             llWhisper(0, "PASSIVE");
             llWhisper(PUBLIC_CHANNEL, "PASSIVE");
             llSensor("", "", PASSIVE, 20.0, PI);
             llSensor("", NULL_KEY, PASSIVE, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 198: Line 198:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "AGENT|PASSIVE");
             llWhisper(PUBLIC_CHANNEL, "AGENT_BY_LEGACY_NAME|PASSIVE");
             llSensor("", "", AGENT | PASSIVE, 20.0, PI);
             llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME | PASSIVE, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 205: Line 205:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "ACTIVE|PASSIVE");
             llWhisper(PUBLIC_CHANNEL, "ACTIVE|PASSIVE");
             llSensor("", "", ACTIVE | PASSIVE, 20.0, PI);
             llSensor("", NULL_KEY, ACTIVE | PASSIVE, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 212: Line 212:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "AGENT|ACTIVE|PASSIVE");
             llWhisper(PUBLIC_CHANNEL, "AGENT_BY_LEGACY_NAME|ACTIVE|PASSIVE");
             llSensor("", "", AGENT | ACTIVE | PASSIVE, 20.0, PI);
             llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME | ACTIVE | PASSIVE, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 219: Line 219:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "SCRIPTED");
             llWhisper(PUBLIC_CHANNEL, "SCRIPTED");
             llSensor("", "", SCRIPTED, 20.0, PI);
             llSensor("", NULL_KEY, SCRIPTED, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 226: Line 226:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "AGENT|SCRIPTED");
             llWhisper(PUBLIC_CHANNEL, "AGENT|SCRIPTED");
             llSensor("", "", AGENT | SCRIPTED, 20.0, PI);
             llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME | SCRIPTED, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 233: Line 233:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "ACTIVE|SCRIPTED");
             llWhisper(PUBLIC_CHANNEL, "ACTIVE|SCRIPTED");
             llSensor("", "", ACTIVE | SCRIPTED, 20.0, PI);
             llSensor("", NULL_KEY, ACTIVE | SCRIPTED, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 240: Line 240:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "AGENT|ACTIVE|SCRIPTED");
             llWhisper(PUBLIC_CHANNEL, "AGENT_BY_LEGACY_NAME|ACTIVE|SCRIPTED");
             llSensor("", "", AGENT | ACTIVE | SCRIPTED, 20.0, PI);
             llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME | ACTIVE | SCRIPTED, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 247: Line 247:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llWhisper(0, "PASSIVE|SCRIPTED");
             llWhisper(PUBLIC_CHANNEL, "PASSIVE|SCRIPTED");
             llSensor("", "", PASSIVE | SCRIPTED, 20.0, PI);
             llSensor("", NULL_KEY, PASSIVE | SCRIPTED, 20.0, PI);
             ++done;
             ++done;
         }
         }
Line 254: Line 254:
         {     
         {     
             tellit(detected);
             tellit(detected);
             llSay(0, "Phew!");
             llSay(PUBLIC_CHANNEL, "Phew!");
         }
         }
     }
     }
Line 260: Line 260:
     no_sensor()
     no_sensor()
     {
     {
         llWhisper(0, "None.");
         llWhisper(PUBLIC_CHANNEL, "None.");
         if(done == 11)
         if(done == 11)
         {
         {
             llSay(0, "Phew!");
             llSay(PUBLIC_CHANNEL, "Phew!");
         }
         }
         else
         else

Revision as of 11:13, 2 November 2012

Flag Mask Description (llDetectedType()) Description (llSensor() and llSensorRepeat() mask)
AGENT 0x1 Agents DEPRECATED: Use AGENT_BY_LEGACY_NAME
AGENT_BY_LEGACY_NAME 0x1 Agents This is used to find agents by legacy name.
AGENT_BY_USERNAME 0x10 Agents This is used to find agents by username.
ACTIVE 0x2 Physical tasks. (Physical objects & agents) Physical objects that are moving or objects containing an active script. Thus, it is using SL server resources now.
PASSIVE 0x4 Non-physical objects. Non-scripted or script is inactive and non-physical or, if physical, not moving. Thus, it is not using SL server resources now.
SCRIPTED 0x8 Objects containing any active script. Objects that has any script, which is doing anything in simulator just now.
llDetectedType() Scripted Not Scripted
Physical 10 (ACTIVE|SCRIPTED) 2 (ACTIVE)
Non-Physical 12 (PASSIVE|SCRIPTED) 4 (PASSIVE)

Using llDetectedType in collision event:

<lsl> integer type;

default {

   state_entry()
   {
       llVolumeDetect(TRUE);
   }
   collision_start(integer detected)
   {
       type = llDetectedType(0);
       if(type == AGENT_BY_LEGACY_NAME)// = 1
       {
           llSay(PUBLIC_CHANNEL, "This is impossible. Since there is no avatar who doesn't require the physical calculation.");
       }
       else if(type == ACTIVE)// = 2
       {
           llSay(PUBLIC_CHANNEL, "I have been struck by a physical object not containing any script.");
       }
       else if(type == PASSIVE)// = 4
       {
           llSay(PUBLIC_CHANNEL, "This is impossible. Non-physical objects cannot trigger this event.");
       }
       else if(type == SCRIPTED)// = 8
       {
           llSay(PUBLIC_CHANNEL, "This is impossible. Since there is no object which isn't physical nor non-physical.");
       }
       else if(type == 3)// AGENT_BY_LEGACY_NAME & ACTIVE
       {
           llSay(PUBLIC_CHANNEL, "I have been struck by an avatar.");
       }
       else if(type == 10)// SCRIPTED & ACTIVE
       {
           llSay(PUBLIC_CHANNEL, "I have been struck by a physical object containing any script.");
       }
       else if(type == 12)// SCRIPTED & PASSIVE
       {
           llSay(PUBLIC_CHANNEL, "This is impossible. Non-physical objects cannot trigger this event.");
       }
   }

} </lsl> Using llDetectedType in sensor event: <lsl> default {

   touch_start(integer numberDetected)
   {
        llSensor("", "", ACTIVE