Example Code: Convert Position To Map Grid

From Bohemia Interactive Community
Revision as of 00:37, 5 January 2020 by Lou Montana (talk | contribs) (Text replacement - "BIS_fnc_PosToGrid" to "BIS_fnc_posToGrid")
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

2

private _mapGridPosition = mapGridPosition player;


2

private _mapGridPosition = player call BIS_fnc_posToGrid;


-wrong parameter ("Arma") defined!-1.00

2

private _gridSize = 200; // given grid squares are 200 × 200
private _yOffset = -280; // position [0,0,0] is somewhere in the middle of second big grid on Y axis

private _xPos = floor ((_this select 0) / _gridSize);
private _yPos = floor (((_this select 1) + _yOffset) / _gridSize);

private _letter1Index = floor (_xPos / 10);
private _letter2Index = floor (_xPos % 10);
private _letter1Choice = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];
private _letter2Choice = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"];
private _letter1 = _letter1Choice select _letter1Index;
private _letter2 = _letter2Choice select _letter2Index;

private _numbers = 100 - _yPos; // coordinate numbers start from top-left of the map

private _mapGridPosition = format ["%1%2%3", _letter1, _letter2, _numbers];


2

This is an SQS syntax example.
; given grid squares are 200 × 200
private _gridSize = 200

; position [0,0,0] is somewhere in the middle of second big grid on Y axis
private _yOffset = -280

private _xPos = (_this select 0) / _gridSize
private _yPos = ((_this select 1) + _yOffset) / _gridSize
_xPos = _xPos - (_xPos mod 1)
_yPos = _yPos - (_yPos mod 1)

private _letter1Index = _xPos / 10
private _letter2Index = _xPos % 10
_letter1Index = _letter1Index - (_letter1Index mod 1)
_letter2Index = _letter2Index - (_letter2Index mod 1)
private _letter1Choice = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
private _letter2Choice = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
private _letter1 = _letter1Choice select _letter1Index
private _letter2 = _letter2Choice select _letter2Index

coordinate numbers start from top-left of the map
private _numbers = 100 - _yPos

private _mapGridPosition = format ["%1%2%3", _letter1, _letter2, _numbers]