createMarkerLocal: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Text replacement - "<sqf>([^↵][^\/]*↵[^\/]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(11 intermediate revisions by the same user not shown)
Line 20: Line 20:
|eff= local
|eff= local


|descr= Creates a [[Multiplayer Scripting#Locality|local]] marker at the given position. Marker exists only on PC that created it. The marker name has to be unique, if a marker with the given name exists, the command will be ignored. Use [[deleteMarkerLocal]] to delete local marker.<br><br>
|descr= Creates a [[Multiplayer Scripting#Locality|local]] marker at the given position - the marker only exists on the machine that created it. The marker name has to be unique, if a marker with the given name exists, the command will be ignored. Use [[deleteMarkerLocal]] to delete a local marker.<br><br>
If position is given in 3D format, {{hl|z}} coordinate is stored with the marker and will be used when marker is passed to commands like [[createVehicle]], [[createUnit]], [[createAgent]], [[createMine]], [[setVehiclePosition]] for example. However [[getMarkerPos]] and [[markerPos]] will always return 0 for {{hl|z}}.  
If the position is given in 3D format, {{hl|z}} coordinate is stored with the marker and will be used when marker is passed to commands like [[createVehicle]], [[createUnit]], [[createAgent]], [[createMine]], [[setVehiclePosition]] for example. However [[getMarkerPos]] and [[markerPos]] will always return 0 for {{hl|z}}.  


{{Feature | important | Local markers have their own set of local commands "xxMarkerxxLocal" to work with. If you use global marker commands on a local marker, the local marker will become '''global'''.}}
{{Feature|important|Local markers have their own set of local commands "xxMarkerxxLocal" to work with. If you use global marker commands on a local marker, the local marker will become '''global'''.}}


|mp= [[createMarkerLocal]] is local, so it should be used along with the other local commands. For global equivalent use [[createMarker]].
|mp= [[createMarkerLocal]] is local, so it should be used along with the other local commands. For global equivalent use [[createMarker]].
|pr= [[setMarkerDrawPriority]] sorts [[allMapMarkers]] from least to most priority. Before {{GVI|arma3|2.18|size= 0.75}} [[createMarker]]/[[createMarkerLocal]] did '''not''' care about drawing priority and added the created marker to the end of the array, making it top priority. Running [[setMarkerDrawPriority]] again sorted this issue.


|s1= [[createMarkerLocal]] [name, position, channel, creator]
|s1= [[createMarkerLocal]] [name, position, channel, creator]
Line 31: Line 33:
|p1= name: [[String]]
|p1= name: [[String]]


|p2= position: [[Array]] or [[Object]] - format position: [[Position#Introduction|Position2D]], [[Position#PositionAGL|PositionAGL]] or [[Object]] (object's [[Position#PositionWorld|PositionWorld]] is used)
|p2= position: [[Array]] or [[Object]] - format position: [[Position#Introduction|Position2D]], [[Position#PositionAGL|PositionAGL]] or [[Object]] (object's model centre is used (see [[getPosWorld]]))


|p3= channel: [[Number]] - (Optional)The marker side for MP.
|p3= channel: [[Number]] - (Optional)The marker side for multiplayer
|p3since= arma3 2.02
|p3since= arma3 2.02


|p4= creator: [[Object]] - (Optional) The marker creator for MP.
|p4= creator: [[Object]] - (Optional) The marker creator for multiplayer
|p4since= arma3 2.02
|p4since= arma3 2.02


|r1= [[String]] - the marker's name or empty string if the marker name is not unique.
|r1= [[String]] - the marker's name, or an empty string if the marker name is not unique


|x1= <code>_marker = [[createMarkerLocal]] ["Marker1", [[position]] [[player]]];</code>
|x1= <sqf>_marker = createMarkerLocal ["Marker1", position player];</sqf>


|seealso= [[allMapMarkers]] [[deleteMarkerLocal]] [[createMarker]] [[setMarkerBrushLocal]] [[setMarkerColorLocal]] [[setMarkerDirLocal]] [[setMarkerPosLocal]] [[setMarkerShapeLocal]] [[setMarkerSizeLocal]] [[setMarkerTextLocal]] [[setMarkerTypeLocal]] [[setMarkerAlphaLocal]] [[deleteMarkerLocal]] [[BIS_fnc_markerToString]] [[BIS_fnc_stringToMarkerLocal]]
|seealso= [[allMapMarkers]] [[deleteMarkerLocal]] [[createMarker]] [[setMarkerBrushLocal]] [[setMarkerColorLocal]] [[setMarkerDirLocal]] [[setMarkerPosLocal]] [[setMarkerShapeLocal]] [[setMarkerSizeLocal]] [[setMarkerTextLocal]] [[setMarkerTypeLocal]] [[setMarkerAlphaLocal]] [[deleteMarkerLocal]] [[BIS_fnc_markerToString]] [[BIS_fnc_stringToMarkerLocal]]
Line 50: Line 52:
|timestamp= 20070106172100
|timestamp= 20070106172100
|text= To create a marker which is visible on the map you need to define ''at least'' the following three settings:
|text= To create a marker which is visible on the map you need to define ''at least'' the following three settings:
<code>_markerstr = [[createMarkerLocal]] ["markername",[_Xpos,_Ypos]];
<sqf>
_markerstr [[setMarkerShapeLocal]] "ICON";
_markerstr = createMarkerLocal ["markername",[_Xpos,_Ypos]];
_markerstr [[setMarkerTypeLocal]] "DOT";</code>
_markerstr setMarkerShapeLocal "ICON";
_markerstr setMarkerTypeLocal "DOT";
</sqf>
}}
}}

Latest revision as of 11:35, 3 September 2024

Hover & click on the images for description

Description

Description:
Creates a local marker at the given position - the marker only exists on the machine that created it. The marker name has to be unique, if a marker with the given name exists, the command will be ignored. Use deleteMarkerLocal to delete a local marker.

If the position is given in 3D format, z coordinate is stored with the marker and will be used when marker is passed to commands like createVehicle, createUnit, createAgent, createMine, setVehiclePosition for example. However getMarkerPos and markerPos will always return 0 for z.
Local markers have their own set of local commands "xxMarkerxxLocal" to work with. If you use global marker commands on a local marker, the local marker will become global.
Multiplayer:
createMarkerLocal is local, so it should be used along with the other local commands. For global equivalent use createMarker.
Problems:
setMarkerDrawPriority sorts allMapMarkers from least to most priority. Before Arma 3 logo black.png2.18 createMarker/createMarkerLocal did not care about drawing priority and added the created marker to the end of the array, making it top priority. Running setMarkerDrawPriority again sorted this issue.
Groups:
Markers

Syntax

Syntax:
createMarkerLocal [name, position, channel, creator]
Parameters:
name: String
position: Array or Object - format position: Position2D, PositionAGL or Object (object's model centre is used (see getPosWorld))
since Arma 3 logo black.png2.02
channel: Number - (Optional)The marker side for multiplayer
since Arma 3 logo black.png2.02
creator: Object - (Optional) The marker creator for multiplayer
Return Value:
String - the marker's name, or an empty string if the marker name is not unique

Examples

Example 1:
_marker = createMarkerLocal ["Marker1", position player];

Additional Information

See also:
allMapMarkers deleteMarkerLocal createMarker setMarkerBrushLocal setMarkerColorLocal setMarkerDirLocal setMarkerPosLocal setMarkerShapeLocal setMarkerSizeLocal setMarkerTextLocal setMarkerTypeLocal setMarkerAlphaLocal deleteMarkerLocal BIS_fnc_markerToString BIS_fnc_stringToMarkerLocal

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
Hoz - c
Posted on Jan 06, 2007 - 17:21 (UTC)
To create a marker which is visible on the map you need to define at least the following three settings:
_markerstr = createMarkerLocal ["markername",[_Xpos,_Ypos]]; _markerstr setMarkerShapeLocal "ICON"; _markerstr setMarkerTypeLocal "DOT";