createMarker: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "</dl> <!-- DISCONTINUE Notes --> <!-- CONTINUE Notes --> <dl class="command_description">" to "")
m (Text replacement - "\| *(arma[0-9]) * " to "|game1= $1 ")
Line 1: Line 1:
{{Command
{{Command


| arma1
|game1= arma1


|1.00
|1.00

Revision as of 16:52, 18 January 2021

link=:Category:Introduced with Armed Assault version creates a new map marker at the given position. the marker will be created for every connected player as well as all jip players. the marker name has to be unique; the command will be ignored if a marker with the given name already exists. ⚠ the marker will be visible only once at least markertype has been defined: _marker = createmarker ["markername", player]; // not visible yet. _marker setmarkertype "hd_dot"; // visible. ⓘ if the marker position is given in 3d format, the z-coordinate is stored with the marker and will be used when the marker is passed to commands such as createvehicle, createunit, createagent, createmine or setvehicleposition. when a marker is manually placed in the editor, z is always 0, which means the marker is placed on the ground. but when the player places a marker on the map in game, it is placed at sea level, so the z-coordinate of that marker is -getterrainheightasl markerpos <usermarker>. ⓘ 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).[[:Category:Introduced with Armed Assault version creates a new map marker at the given position. the marker will be created for every connected player as well as all jip players. the marker name has to be unique; the command will be ignored if a marker with the given name already exists.
the marker will be visible only once at least markertype has been defined:
_marker = createmarker ["markername", player]; // not visible yet. _marker setmarkertype "hd_dot"; // visible.
if the marker position is given in 3d format, the z-coordinate is stored with the marker and will be used when the marker is passed to commands such as createvehicle, createunit, createagent, createmine or setvehicleposition.
when a marker is manually placed in the editor, z is always 0, which means the marker is placed on the ground. but when the player places a marker on the map in game, it is placed at sea level, so the z-coordinate of that marker is -getterrainheightasl markerpos <usermarker>.
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).
|CREATES A NEW MAP MARKER AT THE GIVEN POSITION. THE MARKER WILL BE CREATED FOR EVERY CONNECTED PLAYER AS WELL AS ALL JIP PLAYERS. THE MARKER NAME HAS TO BE UNIQUE; THE COMMAND WILL BE IGNORED IF A MARKER WITH THE GIVEN NAME ALREADY EXISTS.
THE MARKER WILL BE VISIBLE ONLY ONCE AT LEAST MARKERTYPE HAS BEEN DEFINED:
_MARKER = CREATEMARKER ["MARKERNAME", PLAYER]; //&NBSP;NOT VISIBLE YET. _MARKER SETMARKERTYPE "HD_DOT"; //&NBSP;VISIBLE.
IF THE MARKER POSITION IS GIVEN IN 3D FORMAT, THE Z-COORDINATE IS STORED WITH THE MARKER AND WILL BE USED WHEN THE MARKER IS PASSED TO COMMANDS SUCH AS CREATEVEHICLE, CREATEUNIT, CREATEAGENT, CREATEMINE OR SETVEHICLEPOSITION.
WHEN A MARKER IS MANUALLY PLACED IN THE EDITOR, Z IS ALWAYS 0, WHICH MEANS THE MARKER IS PLACED ON THE GROUND. BUT WHEN THE PLAYER PLACES A MARKER ON THE MAP IN GAME, IT IS PLACED AT SEA LEVEL, SO THE Z-COORDINATE OF THAT MARKER IS -GETTERRAINHEIGHTASL MARKERPOS <USERMARKER>.
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).
]]
Hover & click on the images for description

Description

Description:
createMarker [name, position, channel, creator]
Groups:
Markers

Syntax

Syntax:
String
Parameters:
name: String - The marker's name, used to reference the marker in scripts.
position: Array or Object - Position2D, PositionAGL or Object. In case of object, the object's PositionWorld is used.
channel (Optional): Number (See also Channel IDs) - The marker channel for MP (Template:Since).
creator (Optional): Object - The marker creator for MP (Template:Since).
Return Value:
allMapMarkers, deleteMarker, createMarkerLocal setMarkerBrush, setMarkerColor, setMarkerDir setMarkerPos, setMarkerShape, setMarkerSize setMarkerText, setMarkerType, setMarkerAlpha, BIS_fnc_markerToString, BIS_fnc_stringToMarker

Examples

Example 1:
_marker1 = createMarker ["Marker1", position player];
Example 2:
_marker2 = createMarker ["Marker2", player]; // since Arma 3 v1.50

Additional Information

See also:
See also needed

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

[[Category:Introduced with Armed Assault version Creates a new map marker at the given position. The marker will be created for every connected player as well as all JIP players. The marker name has to be unique; the command will be ignored if a marker with the given name already exists.

The marker will be visible only once at least markerType has been defined:
_marker = createMarker ["markername", player]; // Not visible yet. _marker setMarkerType "hd_dot"; // Visible.
If the marker position is given in 3D format, the z-coordinate is stored with the marker and will be used when the marker is passed to commands such as createVehicle, createUnit, createAgent, createMine or setVehiclePosition.
When a marker is manually placed in the editor, z is always 0, which means the marker is placed on the ground. But when the player places a marker on the map in game, it is placed at sea level, so the z-coordinate of that marker is -getTerrainHeightASL markerPos <USERMARKER>.
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).

]]

Posted on September 19, 2015 - 21:02 (UTC)
Soldia (JP)
createMarker accepts an object as position parameter as well (A3 - 1.50.131969). You could try this with the following code (both SP/MP) _markerstr = createMarker ["markername", player]; _markerstr setMarkerShape "RECTANGLE"; _markerstr setMarkerSize [100, 100];
Posted on May 28, 2018 - 11:57 (UTC)
x39
In Arma 3, one can create markers which are deletable by the user by prefixing the name with `_USER_DEFINED`. Example: createMarker "_USER_DEFINED someMarkerName"
Posted on April 11, 2019 - 07:10 (UTC)
killzone_kid
Passing object as argument for position may produce slightly different position than when explicitly obtaining object position via position commands, as in createMarker ["marker1", _obj] may slightly differ from createMarker ["marker1", ASLtoAGL getPosASL _obj] This is because when object passed as position, the raw getPosWorld is used createMarker ["marker1", ASLtoAGL getPosWorld _obj] will produce identical result in this case, but may not be what is required
Posted on May 3, 2019 - 15:53 (UTC)
7erra
Arma 3 logo black.png1.92 There is a new function with which you can create a marker with all settings applied in one step: BIS_fnc_stringToMarker and BIS_fnc_stringToMarkerLocal