Difference between revisions of "AGENT"
Jump to navigation
Jump to search
(This is prolly a good time to learn how to make templates. Please teach.) |
Mako Nozaki (talk | contribs) |
||
Line 3: | Line 3: | ||
|type=integer | |type=integer | ||
|value={{LSL Hex|0x1}} | |value={{LSL Hex|0x1}} | ||
|desc | |desc=This is used by sensors to find avatars. | ||
|constants={{LSL Constants Sensor|no_wrapper=true}} | |||
|caveats=There is no avatar whose llDetectedType() is ''equal to'' 1([[AGENT]]) since there is no avatar who doesn't require the physical calculation, even if they are just standing. Agent's type will be equal to 3([[AGENT]]<nowiki>|</nowiki>[[ACTIVE]]). You will always need to use this flag as an mask. | |||
|examples=<lsl>integer type; | |examples=<lsl>integer type; | ||
Line 110: | Line 112: | ||
} | } | ||
}</lsl> | }</lsl> | ||
|functions= | |functions= | ||
{{LSL DefineRow||[[llDetectedType]]|}} | {{LSL DefineRow||[[llDetectedType]]|}} |
Revision as of 23:03, 21 May 2010
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Description
Constant: integer AGENT = 0x1;The integer constant AGENT has the value 0x1
This is used by sensors to find avatars.
Caveats
Related Articles
Constants
|
Functions
• | llDetectedType | |||
• | llSensor | |||
• | llSensorRepeat |
Examples
<lsl>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!"); } }
}</lsl>