setMarkerPolyline: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (path argument)
m (Text replacement - "{{Feature|informative|'''Multiplayer optimisation:''' Global marker commands always broadcast the ''entire'' marker state over the network. As such, the number of network messages exchanged when creating or editing a marker can be reduced by performing all but the last operation using local marker commands, then using a global marker command for the last change (and subsequent global broadcast of all changes applied to the marker).}}" to "{{Feature|informative| '''Multipla...)
 
(23 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command
{{RV|type=command


|game1= arma3dev |Game name=
|game1= arma3
|version1= 2.02


|version= 2.01 |Game version=
|eff= global


|eff= global |effect=
|gr1= Markers
 
|gr1= Markers |GROUP1=
____________________________________________________________________________________________


|descr= Sets a polyline marker's path.
|descr= Sets a polyline marker's path.
{{Informative|'''Multiplayer optimisation:''' Global marker commands always broadcast the ''entire'' marker state over the network. As such, the number of network messages exchanged when creating or editing a marker can be reduced by performing all but the last operation using local marker commands, then using a global marker command for the last change (and subsequent global broadcast of all changes applied to the marker).}}
{{Feature|informative|
|Description=
'''Multiplayer optimisation:''' Global marker commands always broadcast the ''entire'' marker state over the network.
As such, the number of network messages exchanged when creating or editing a marker can be reduced by performing all but the last operation using local marker commands, then using a global marker command for the last change (and subsequent global broadcast of all changes applied to the marker).
}}


|pr= |Problems=
|s1= marker [[setMarkerPolyline]] path
____________________________________________________________________________________________


|s1= marker [[setMarkerPolyline]] path |Syntax=
|p1= marker: [[String]]


|p1= marker: [[String]]
|p2= path: [[Array]] of pairs [[Number]], [[Number]] - {{hl|[x1, y1, x2, y2, ... xn, yn]}}
|p2= path: [[Array]] - <tt>[x1, y1, x2, y2, ... xn, yn]</tt>{{Important| Be aware that this command expects an array with a minimum array size of 4 elements and that the array count always needs to be dividable by 4
{{Feature|important|
and return a whole number.}}
Be aware that this command expects an array with a minimum array size of 4 and that the array count always needs to be dividable by 2 and return a whole number. Code:
|r1= [[Nothing]] |Return Value=
<sqf>count path >= 4 && count path mod 2 == 0; // true → valid path</sqf>
____________________________________________________________________________________________
}}
 
|r1= [[Nothing]]


|x1= Changes <tt>"marker_1"</tt> into a polyline and draws a sine curve on your position<code>"marker_1" [[setMarkerShape]] "polyline";
|x1= Changes {{hl|"marker_1"}} into a polyline and draws a sine curve on [[player]]'s position:
[[private]] _return = [] ;
<sqf>
// createMarker ["marker_1", [0,0,0]];
"marker_1" setMarkerShape "polyline";
private _return = [] ;


[[for]] "_i" [[from]] 0 [[to]] 100 [[step]] 0.1 do {
for "_i" from 0 to 100 step 0.1 do
_return [[pushBack]] (_i + [[getPos]] [[player]]#0);
{
_return [[pushBack]] ((sin (_i*10))*10 + [[getPos]] [[player]]#1);
_return pushBack (_i + getPosASL player # 0);
_return pushBack ((sin (_i * 10)) * 10 + getPosASL player # 1);
} ;
} ;


"marker_1" [[setMarkerPolyline]] _return;</code> |Example 1=
"marker_1" setMarkerPolyline _return;
____________________________________________________________________________________________
</sqf>


|seealso= [[markerPolyline]] [[setMarkerPolylineLocal]] |See Also=
|seealso= [[markerPolyline]] [[setMarkerPolylineLocal]]
}}
}}
<dl class="command_description">
<!-- BEGIN Note Section -->
<!-- END Note Section -->
</dl>
<h3 style="display:none">Bottom Section</h3>

Latest revision as of 21:28, 28 October 2024

Hover & click on the images for description

Description

Description:
Sets a polyline marker's path.
Multiplayer optimisation: Global marker commands always broadcast the entire marker state over the network. As such, the number of network messages exchanged when creating or editing a marker can be reduced by performing all but the last operation using local marker commands, then using a global marker command for the last change (and subsequent global broadcast of all changes applied to the marker).
Groups:
Markers

Syntax

Syntax:
marker setMarkerPolyline path
Parameters:
marker: String
path: Array of pairs Number, Number - [x1, y1, x2, y2, ... xn, yn]
Be aware that this command expects an array with a minimum array size of 4 and that the array count always needs to be dividable by 2 and return a whole number. Code:
count path >= 4 && count path mod 2 == 0; // true → valid path
Return Value:
Nothing

Examples

Example 1:
Changes "marker_1" into a polyline and draws a sine curve on player's position:
// createMarker ["marker_1", [0,0,0]]; "marker_1" setMarkerShape "polyline"; private _return = [] ; for "_i" from 0 to 100 step 0.1 do { _return pushBack (_i + getPosASL player # 0); _return pushBack ((sin (_i * 10)) * 10 + getPosASL player # 1); } ; "marker_1" setMarkerPolyline _return;

Additional Information

See also:
markerPolyline setMarkerPolylineLocal

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