Difference between revisions of "LlGetRegionFlags"

From Second Life Wiki
Jump to navigation Jump to search
m (Replaced <source> with <syntaxhighlight>)
 
(16 intermediate revisions by 6 users not shown)
Line 3: Line 3:
|func=llGetRegionFlags
|func=llGetRegionFlags
|return_type=integer
|return_type=integer
|func_footnote
|func_desc
|func_desc=Get the region flags (REGION_FLAG_*) for the region the object is in.
|return_text=that is the region flags (REGION_FLAG_*) for the region the object is in.
|return_text
|func_footnote=Only a small number of flags are actually used; the rest (shown below in strike-through) are always zero.  In particular, it is not possible to detect the status of "Allow Land Resell", "Allow Land Join/Divide", or "Block Land Show in Search"; nor, obviously, it is possible for a script to detect that "Disable Scripts" has been set.
|spec
|spec
|caveats
|caveats
|constants
|constants={{LSL Constants/Region}}
|examples
|examples=<syntaxhighlight lang="lsl2">default
{
    touch_start(integer total_number)
    {
        if( llGetRegionFlags() & REGION_FLAG_SANDBOX )
        {
            llOwnerSay("Region is a sandbox.");
        }
        else
        {
            llOwnerSay("Region is not a sandbox.");
        }
    }
}
</syntaxhighlight>
|helpers
|helpers
|also_functions
|also_functions=
{{LSL DefineRow||[[llGetEnv]]|for region settings that don't fit in a flag}}
{{LSL DefineRow||[[llGetParcelFlags]]|}}
{{LSL DefineRow||[[llRequestSimulatorData]]}}
|also_tests
|also_tests
|also_events
|also_events
|also_articles
|also_articles
|notes
|notes
|permission
|location={{SourceLink/github|viewer|indra/llmessage/llregionflags.h}}
|inventory
|history=<div>
|negative_index
*{{SVN|960|rev=93583|branch=Release|anchor=file25|date=Saturday, 02 August 2008|ser=1.23.4.93096}} REGION_FLAGS_SKIP_MONO_SCRIPTS added.</div>
|cat1=Land
|cat1=Region
|cat2
|cat2=Region/Flags
|cat3
|cat3
|cat4
|cat4
}}
}}

Latest revision as of 08:59, 11 February 2023

Summary

Function: integer llGetRegionFlags( );
0.0 Forced Delay
10.0 Energy

Returns an integer that is the region flags (REGION_FLAG_*) for the region the object is in.

Only a small number of flags are actually used; the rest (shown below in strike-through) are always zero. In particular, it is not possible to detect the status of "Allow Land Resell", "Allow Land Join/Divide", or "Block Land Show in Search"; nor, obviously, it is possible for a script to detect that "Disable Scripts" has been set.

Flag Value Description
REGION_FLAG_ALLOW_DAMAGE 0x00000001 Find if a region is entirely damage enabled
REGION_FLAG_FIXED_SUN 0x00000010 Find if a region has a fixed sun position
REGION_FLAG_BLOCK_TERRAFORM 0x00000040 Find if a region terraforming disabled
REGION_FLAG_SANDBOX 0x00000100 Find if a region is a sandbox
REGION_FLAG_DISABLE_COLLISIONS 0x00001000 Find if a region has disabled collisions
REGION_FLAG_DISABLE_PHYSICS 0x00004000 Find if a region has disabled physics
REGION_FLAG_BLOCK_FLY 0x00080000 Find if a region blocks flying
REGION_FLAG_ALLOW_DIRECT_TELEPORT 0x00100000 Find if a region allows direct teleports
REGION_FLAG_RESTRICT_PUSHOBJECT 0x00400000 Find if a region restricts llPushObject calls
REGION_FLAGS_ALLOW_LANDMARK 0x00000002 Can you make landmarks here?
REGION_FLAGS_ALLOW_SET_HOME 0x00000004 Do we allow the home position to be set here?
REGION_FLAGS_RESET_HOME_ON_TELEPORT 0x00000008 Do we reset the home position when someone teleports away from here?
REGION_FLAGS_TAX_FREE†* 0x00000020 Tax free zone (no taxes on objects, land, etc.)
Taxes were abolished with SL version 1.2. See SL Wikia:Taxes
REGION_FLAGS_BLOCK_LAND_RESELL 0x00000080 Can't release, sell, or buy land.
REGION_FLAGS_NULL_LAYER†* 0x00000200
REGION_FLAGS_HARD_ALLOW_LAND_TRANSFER†* 0x00000400 Region allows land reselling
REGION_FLAGS_SKIP_UPDATE_INTEREST_LIST†* 0x00000800 Region allows posting of classified ads
REGION_FLAGS_SKIP_SCRIPTS 0x00002000
REGION_FLAGS_EXTERNALLY_VISIBLE 0x00008000
REGION_FLAGS_ALLOW_RETURN_ENCROACHING_OBJECT 0x00010000
REGION_FLAGS_ALLOW_RETURN_ENCROACHING_ESTATE_OBJECT 0x00020000
REGION_FLAGS_BLOCK_DWELL 0x00040000
REGION_FLAGS_ESTATE_SKIP_SCRIPTS 0x00200000 Is there an administrative override on scripts in the region at the moment. This is the similar skip scripts, except this flag is persisted in the database on an estate level.
REGION_FLAGS_DENY_ANONYMOUS 0x00800000
REGION_FLAGS_DENY_IDENTIFIED†* 0x01000000
REGION_FLAGS_DENY_TRANSACTED†* 0x02000000
REGION_FLAGS_ALLOW_PARCEL_CHANGES 0x04000000
REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER†* 0x08000000
REGION_FLAGS_ALLOW_VOICE 0x10000000
REGION_FLAGS_BLOCK_PARCEL_SEARCH 0x20000000
REGION_FLAGS_DENY_AGEUNVERIFIED 0x40000000
REGION_FLAGS_SKIP_MONO_SCRIPTS†* 0x80000000
†  REGION_FLAGS_* are internal and not exposed to the compiler (hence the strike through), despite this their values may be valid in the mask. In other words, there may be no nice name for the constant that the compiler will accept but the values may work. Remember that LL does not support these; they may redefine the flags without notice, this has happened in the past.
REGION_FLAGS_* flags in red have been removed from the source code, the values may get reassigned and reused!

Examples

default
{
    touch_start(integer total_number)
    {
        if( llGetRegionFlags() & REGION_FLAG_SANDBOX )
        {
            llOwnerSay("Region is a sandbox.");
        }
        else
        {
            llOwnerSay("Region is not a sandbox.");
        }
    }
}

See Also

Functions

•  llGetEnv for region settings that don't fit in a flag
•  llGetParcelFlags
•  llRequestSimulatorData

Deep Notes

History

Source

Signature

function integer llGetRegionFlags();