Скрипт проверяет город и его маркер.
А именно ведёт поиск юнитов вокруг города и относит их к определённой фракции, считает их и затем локации присваивает сторону.
locations = nearestLocations [[0,0,0], ["Airport","NameVillage","NameCity", "NameCityCapital"], 300000];
_mrk = "";
_MarkerType = "";
_MarkerColor= "";
{
if ( (getMarkerType (str(_x))) == "") then
{
_mrk = createMarker [(str(_x)), (locationPosition _x ) ];
}
else
{
_mrk = str(_x);
};
_pos_loc = locationPosition _x;
_winner = 0;
_Man = nearestObjects [locationPosition _x, ["Man"], 128];
if (count _Man > 0) then {
_westArr = [];
_eastArr = [];
_indArr = [];
{
_sid = side _x;
switch (_sid) do
{
case WEST: {
_westArr pushBack _x
};
case EAST: {
_eastArr pushBack _x
};
case INDEPENDENT: {
_indArr pushBack _x
};
};
} forEach _Man;
_cW = count _westArr;
_cE = count _eastArr;
_cI = count _indArr;
if ((_cW > 0) && (_cE > 0) && (_cI > 0)) then {_winner = 0};
if ((_cW > 0) && (_cE isEqualTo 0) && (_cI isEqualTo 0)) then {_winner = 1};
if ((_cW isEqualTo 0) && (_cE > 0) && (_cI isEqualTo 0)) then {_winner = 2};
if ((_cW isEqualTo 0) && (_cE isEqualTo 0) && (_cI > 0)) then {_winner = 3};
if ((_cW > 0) && (_cE > 0)) then {_winner = 0};
if ((_cW > 0) && (_cI > 0)) then {_winner = 0};
if ((_cI > 0) && (_cE > 0)) then {_winner = 0};
}else{
_winner = 0;
};
switch (_winner) do
{
case 1: {
_MarkerType = "mil_dot";
_MarkerColor = "ColorBlue";
_x setSide WEST;
};
case 2: {
_MarkerType = "mil_dot";
_MarkerColor = "ColorRed";
_x setSide EAST;
};
case 3: {
_MarkerType = "mil_dot";
_MarkerColor = "ColorGreen";
_x setSide INDEPENDENT;
};
case 4: {
_MarkerType = "mil_dot";
_MarkerColor = "ColorCIV";
_x setSide CIVILIAN;
};
case 0: {
_MarkerType = "mil_dot";
_MarkerColor = "ColorWhite";
_x setSide CIVILIAN;
};
};
_mrk setMarkerType _MarkerType;
_mrk setMarkerColor _MarkerColor;
} foreach locations;
Это холера работает почему-то только с Синими и Зелёными. По каким-то причинам пропускает красных. Перепробывал множество способов... В итоге запутался в конец.
А вызывается командой "call"
Это холера работает почему-то только с Синими и Зелёными. По каким-то причинам пропускает красных. Перепробывал множество способов... В итоге запутался в конец.
А вызывается командой "call"