Difference between revisions of "LlModifyLand"

From Second Life Wiki
Jump to navigation Jump to search
(Document BUG-4944)
m (I'm not sure if using Template:Issues this way is a good idea. I'm doing it anyway.)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|inject-2={{Issues/SVC-3272}}
|inject-2={{Issues/SVC-3272}}{{Issues|BUG-4929|[[llModifyLand]] modifies wrong location in region, when called in a child prim|type=bug}}
|func_id=159|func_sleep=0.0|func_energy=10.0
|func_id=159|func_sleep=0.0|func_energy=10.0
|func=llModifyLand
|func=llModifyLand

Revision as of 20:19, 30 January 2014

Summary

Function: llModifyLand( integer action, integer brush );
0.0 Forced Delay
10.0 Energy

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)

Examples

Deep Notes

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