setTerrainHeight: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
Lou Montana (talk | contribs) (Some wiki formatting) |
||
Line 9: | Line 9: | ||
|descr= {{Wiki|WIP}} | |descr= {{Wiki|WIP}} | ||
Set the current terrain's altitude on provided location(s). | |||
{{Feature|important| | |||
* Heightmap changes: | |||
** are internally converted (rounded) to heightmap coordinates | |||
** are stored in the JIP queue | |||
** are '''not''' removed if the value is back to default value | |||
** are updated in the JIP queue for updated positions '''if''' the same group of positions are edited (order does not matter, but amount does) | |||
** are '''not''' updated and sent twice (old one then new one) if position edits are not exactly the same (see point above and {{Link|#Example 2}}). | |||
* Edited terrain heights are '''not''' saved inside savegames, they need to be restored manually on savegame load. | |||
}} | |||
|s1= [[setTerrainHeight]] [positionAndAltitudeArray, adjustObjects] | |||
|p1= positionAndAltitudeArray: [[Array]] of [[Array]] in format [[PositionASL]] - [<nowiki/>[x1, y1, newASLHeight1], [x2, y2, newASLHeight2], ... ] | |||
|p2= adjustObjects: [[Boolean]] - (Optional, default [[true]]) if true then objects on modified points are moved up/down to keep the same ATL height | |||
{{Feature|important|'''All''' objects above modified terrain will be adjusted, even flying ones.}} | |||
|r1= [[Nothing]] | |r1= [[Nothing]] | ||
Line 31: | Line 33: | ||
{ | { | ||
params ["_start", "_a", "_b", "_h"]; | params ["_start", "_a", "_b", "_h"]; | ||
private _newPositions = []; | |||
for "_xStep" from 0 to _a do | for "_xStep" from 0 to _a do | ||
{ | { | ||
Line 38: | Line 41: | ||
private _newHeight = _start vectorAdd [_xStep, _yStep, 0]; | private _newHeight = _start vectorAdd [_xStep, _yStep, 0]; | ||
_newHeight set [2, _h]; | _newHeight set [2, _h]; | ||
_newPositions pushBack _newHeight; | |||
}; | }; | ||
}; | }; | ||
_newPositions; | |||
}; | }; | ||
Line 48: | Line 52: | ||
</sqf> | </sqf> | ||
| | |x2= Bad example: | ||
<sqf> | <sqf> | ||
// first update | |||
setTerrainHeight [[1000, 1000, 25], [1005, 1000, 25]]; | |||
// second update | |||
setTerrainHeight [[1005, 1000, 50]]; // this will make the JIP queue keep both messages | |||
</sqf> | </sqf> | ||
Good example: | |||
<sqf> | |||
// first update | |||
setTerrainHeight [[1000, 1000, 25], [1005, 1000, 25]]; | |||
// second update | |||
setTerrainHeight [[1000, 1000, 25], [1005, 1000, 50]]; // this will update the JIP queue properly | |||
</sqf> | |||
|seealso= [[getTerrainInfo]] [[getTerrainHeight]] | |seealso= [[getTerrainInfo]] [[getTerrainHeight]] | ||
}} | }} |
Revision as of 15:13, 22 June 2022
Description
- Description:
Set the current terrain's altitude on provided location(s).
- Groups:
- Diagnostic
Syntax
- Syntax:
- setTerrainHeight [positionAndAltitudeArray, adjustObjects]
- Parameters:
- positionAndAltitudeArray: Array of Array in format PositionASL - [[x1, y1, newASLHeight1], [x2, y2, newASLHeight2], ... ]
- adjustObjects: Boolean - (Optional, default true) if true then objects on modified points are moved up/down to keep the same ATL height
- Return Value:
- Nothing
Examples
- Example 1:
- private _fnc_flattenTerrain = { params ["_start", "_a", "_b", "_h"]; private _newPositions = []; for "_xStep" from 0 to _a do { for "_yStep" from 0 to _b do { private _newHeight = _start vectorAdd [_xStep, _yStep, 0]; _newHeight set [2, _h]; _newPositions pushBack _newHeight; }; }; _newPositions; }; private _desiredTerrainHeight = 150; setTerrainHeight [[getPosWorld player, 50, 50, _desiredTerrainHeight] call _fnc_flattenTerrain, true];
- Example 2:
- Bad example:
Good example:// first update setTerrainHeight [[1000, 1000, 25], [1005, 1000, 25]]; // second update setTerrainHeight [[1005, 1000, 50]]; // this will make the JIP queue keep both messages// first update setTerrainHeight [[1000, 1000, 25], [1005, 1000, 25]]; // second update setTerrainHeight [[1000, 1000, 25], [1005, 1000, 50]]; // this will update the JIP queue properly
Additional Information
- See also:
- getTerrainInfo getTerrainHeight
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note