AGENT BY LEGACY NAME
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Contents |
Description
Constant: integer AGENT_BY_LEGACY_NAME = 0x1;The integer constant AGENT_BY_LEGACY_NAME has the value 0x1
See Avatar Names
Related Articles
Constants
| ||||||||||||||||||||||||||||
Functions
| • | llDetectedType | |||
| • | llSensor | |||
| • | llSensorRepeat |
Articles
| • | Object Type |
Examples
Using llDetectedType in collision event:
integer type; default { state_entry() { llVolumeDetect(TRUE); } collision_start(integer detected) { type = llDetectedType(0); if (type == AGENT_BY_LEGACY_NAME)// = 1 { llSay(0, "This is impossible. Since there is no avatar who doesn't require the physical calculation."); } else if (type == ACTIVE)// = 2 { llSay(0, "I have been struck by a physical object not containing any script."); } else if (type == PASSIVE)// = 4 { llSay(0, "This is impossible. Non-physical objects cannot trigger this event."); } else if (type == SCRIPTED)// = 8 { llSay(0, "This is impossible. Since there is no object which isn't physical nor non-physical."); } else if (type == (AGENT_BY_LEGACY_NAME | ACTIVE) ) // 1 + 2 { llSay(0, "I have been struck by an avatar."); } else if (type == (SCRIPTED | ACTIVE) ) // = 8 + 2 { llSay(0, "I have been struck by a physical object containing any script."); } else if (type == (SCRIPTED | PASSIVE) ) // = 8 + 4 { llSay(0, "This is impossible. Non-physical objects cannot trigger this event."); } } }
Using llDetectedType in sensor event:
default { touch_start(integer numberDetected) { llSensor("", "", ACTIVE | PASSIVE | AGENT_BY_LEGACY_NAME, 20.0, PI); // activates the sensor. } sensor (integer numberDetected) { integer i; while(i < numberDetected) { integer type = llDetectedType(i); string message; message += (string)i + ", " + llDetectedName(i) + ", "; list typeList; if (type & AGENT_BY_LEGACY_NAME) { typeList += "AGENT_BY_LEGACY_NAME"; } if (type & ACTIVE) { typeList += "ACTIVE"; } if (type & PASSIVE) { typeList += "PASSIVE"; } if (type & SCRIPTED) { typeList += "SCRIPTED"; } message += llDumpList2String(typeList, "|"); llWhisper(0, message); ++i; } } no_sensor() { // This is impossible if range = 20.0 and you are standing within 10m! llWhisper(0, "Nothing is near me at present."); } }
Using filter in llSensor* functions:
// Report nearby sensed objects and avatars under sundry categories list SenseTypes; integer gIndex; SenseNextType() { string text = llList2String( SenseTypes, gIndex); integer tipe = llList2Integer(SenseTypes, gIndex + 1); if (tipe) { llWhisper(0, text); llSensor("", NULL_KEY, tipe, 20.0, PI); gIndex += 2; // increment by stride } else llWhisper(0, "--- Finished ---"); } default { touch_start(integer detected) { // Make a Strided list of text and sensor type combinations // (Can't use '|' in Global, unfortunately) SenseTypes = [ "AGENT_BY_LEGACY_NAME", AGENT_BY_LEGACY_NAME, "ACTIVE", ACTIVE, "AGENT_BY_LEGACY_NAME|ACTIVE", AGENT_BY_LEGACY_NAME|ACTIVE, "PASSIVE", PASSIVE, "AGENT_BY_LEGACY_NAME|PASSIVE", AGENT_BY_LEGACY_NAME|PASSIVE, "ACTIVE|PASSIVE", ACTIVE|PASSIVE, "AGENT_BY_LEGACY_NAME|ACTIVE|PASSIVE", AGENT_BY_LEGACY_NAME|ACTIVE|PASSIVE, "SCRIPTED", SCRIPTED, "AGENT|SCRIPTED", AGENT|SCRIPTED, "ACTIVE|SCRIPTED", ACTIVE|SCRIPTED, "AGENT_BY_LEGACY_NAME|ACTIVE|SCRIPTED", AGENT_BY_LEGACY_NAME|ACTIVE|SCRIPTED, "PASSIVE|SCRIPTED", PASSIVE|SCRIPTED, "", 0 ]; gIndex = 0; SenseNextType(); // Kick off the sensing sequence } sensor(integer detected) { integer x; while (x < detected) { llWhisper(0, (string) (x+1) + ": " + llDetectedName(x) ); ++x; } SenseNextType(); } no_sensor() { llWhisper(0, "none"); SenseNextType(); } }
See Object Type for details

