Difference between revisions of "LlModifyLand"

From Second Life Wiki
Jump to navigation Jump to search
Line 79: Line 79:
</div>
</div>
|examples
|examples
<lsl>
default
{
    touch_start(integer ana)
    {
        llModifyLand(LAND_RAISE,1);
    }
}
</lsl>
|helpers
|helpers
|also_functions
|also_functions

Revision as of 13:16, 28 August 2014

Summary

Function: llModifyLand( integer action, integer brush );

Modify land with action on brush

• integer action LAND_* flag
• integer brush LAND_*_BRUSH flag

The position of the prim is used to determine the input for various flags.

Action Description
LAND_LEVEL 0 Levels on prim center
LAND_RAISE 1 Raises the land
LAND_LOWER 2 Lowers the land
LAND_SMOOTH 3 Smooths the land
LAND_NOISE 4 Makes the land rough
LAND_REVERT 5 Restores to baked value
Brush Value Size
LAND_SMALL_BRUSH 0 2m x 2m
LAND_MEDIUM_BRUSH 1 4m x 4m
LAND_LARGE_BRUSH 2 8m x 8m
The constant values in the compiler are wrong.
Use these values instead.

Caveats

  • This function has no effect if the script's owner is offline or not in the same sim as the scripted object.
  • This function has no effect if the scripted object is deeded to a group.
  • Playing with this command, I have found that the LAND_SMALL_BRUSH edits a 4m x 4m area. The LAND_MEDIUM_BRUSH and the LAND_LARGE_BRUSH, both edit an 8m x 8m area. However using 0 instead of LAND_SMALL_BRUSH will edit a 2m x 2m area. I have bug reported this, but until it gets fixed, it should be noted. correct values for the brushes are 0, 1 and 2, not 1, 2, and 3. - Bev
  • If the script is in a prim that is attached to an avatar or is in the child prim of a linkset, then the local position relative to it's attachment point or root prim is used rather than the position within the region. (BUG-4929)
  • If land is not owned by script owner or the owner doesn't have terraform permissions, the script will silently fail.
  • You cannot change altitude beyond land terraform limits for the specified parcel.

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   Brush constants are all off-by-one.
   llModifyLand modifies wrong location in region, when called in a child prim

Examples

Deep Notes

All Issues

~ Search JIRA for related Issues
   LSL: llModifyLandStrength
   Brush constants are all off-by-one.
   llModifyLand modifies wrong location in region, when called in a child prim

Signature

function void llModifyLand( integer action, integer brush );
integer LAND_SMALL_BRUSH = 1;//Should do 2m x 2m but does 4m x 4m
integer LAND_MEDIUM_BRUSH = 2;//Should do 4m x 4m but does 8m x 8m
integer LAND_LARGE_BRUSH = 3;//8m x 8m