Difference between revisions of "STATUS PHANTOM"
Jump to navigation
Jump to search
m |
m (Replaced <source> with <syntaxhighlight>) |
||
(2 intermediate revisions by 2 users not shown) | |||
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. | ||
<syntaxhighlight lang="lsl2">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. | |||
} | |||
}</syntaxhighlight> | |||
|constants= | |constants= | ||
{{!}} | {{!}} |
Latest revision as of 18:31, 27 September 2024
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.
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.
}
}