Difference between revisions of "STATUS PHANTOM"
Jump to navigation
Jump to search
m |
Fred Gandt (talk | contribs) (Added example and description.) |
||
Line 3: | Line 3: | ||
|type=integer | |type=integer | ||
|value={{LSL Hex|0x10}} | |value={{LSL Hex|0x10}} | ||
|desc | |desc=This property (set FALSE by default) when set TRUE turns the object un-solid (objects and avatars can pass through it). | ||
|examples | |examples=A simple "secret" door. The object will turn un-solid (phantom) when the owner collides with it. So, if this script is in a prim that is part of your wall, it will allow only you to pass through. | ||
<lsl>default | |||
{ // Triggered when objects (including avatars) collide with the object containing this script | |||
collision_start(integer nd) | |||
{ | |||
while(nd) | |||
{ // Cycle through the detected keys of those objects that collided this time checking if each is the owner. | |||
if(llDetectedKey(--nd) == llGetOwner()) | |||
llSetStatus(STATUS_PHANTOM, TRUE); // Become un-solid | |||
} | |||
} | |||
collision_end(integer nd) | |||
{ | |||
if(llGetStatus(STATUS_PHANTOM)) // If the object is un-solid | |||
llSetStatus(STATUS_PHANTOM, FALSE); // Set the object solid. | |||
} | |||
}</lsl> | |||
|constants= | |constants= | ||
{{!}} | {{!}} |
Revision as of 03:32, 27 April 2010
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Description
Constant: integer STATUS_PHANTOM = 0x10;The integer constant STATUS_PHANTOM has the value 0x10
This property (set FALSE by default) when set TRUE turns the object un-solid (objects and avatars can pass through it).
Caveats
Related Articles
Constants
|
Functions
• | llSetStatus | |||
• | llGetStatus |
Examples
A simple "secret" door. The object will turn un-solid (phantom) when the owner collides with it. So, if this script is in a prim that is part of your wall, it will allow only you to pass through. <lsl>default { // Triggered when objects (including avatars) collide with the object containing this script
collision_start(integer nd) { while(nd) { // Cycle through the detected keys of those objects that collided this time checking if each is the owner. if(llDetectedKey(--nd) == llGetOwner()) llSetStatus(STATUS_PHANTOM, TRUE); // Become un-solid } } collision_end(integer nd) { if(llGetStatus(STATUS_PHANTOM)) // If the object is un-solid llSetStatus(STATUS_PHANTOM, FALSE); // Set the object solid. }
}</lsl>