Code:
// ********************************************
// Script File for ArmA2
// Made by: Cyborg11
// Version: 1.0
// Usage:
// _handle = [radarname, enemyside, radius, minheight, maxheight] execVM "radar.sqf";
// Example:
// _handle = [this,east,1500,30,600] execVM "radar.sqf";
// ********************************************
_radar = _this select 0;
_enemyside = _this select 1;
_radius = _this select 2;
_minheight = _this select 3;
_maxheight = _this select 4;
_i = 0;
_markers = [];
While {(alive _radar)} do {
_air = nearestObjects [_radar,["AIR"],_radius];
_max = (count _air) - 1;
for [{_i = 0},{_i <= _max},{_i = _i + 1}] do {
_plane = _air select _i;
_type = typeOf _plane;
_m = createMarkerLocal [format ["%1_%2", _type, _plane], position _plane];
_height = (getPosASL _plane) select 2;
If (((side _plane) == _enemyside && _enemyside == east) && ((_height > _minheight) && (_height < _maxheight))) then {
_m setMarkerTypeLocal "o_air";
_m setMarkerColorLocal "ColorRed";
_m setMarkerTextLocal (format ["%1",_type]);
};
If (((side _plane) == _enemyside && _enemyside == west) && ((_height > _minheight) && (_height < _maxheight))) then {
_m setMarkerTypeLocal "b_air";
_m setMarkerColorLocal "ColorRed";
_m setMarkerTextLocal (format ["%1",_type]);
};
_markers = _markers + [_m];
};
sleep 1;
{deleteMarkerLocal _x} foreach _markers;
};
Funktioniert auch prima. Müsste man jetzt nur noch für mehrere Seiten erweitern und dass nur Seite die Markierungen sieht, die das Radar benutzt
Also wäre im Moment eher was für Coop.
Test für 2 Seiten schaut so aus:
Code:
// ********************************************
// Script File for ArmA2
// Made by: Cyborg11
// Version: 1.0
// Usage:
// _handle = [radarname, enemyside, radius, minheight, maxheight] execVM "radar.sqf";
// Example:
// _handle = [this,east,1500,30,600] execVM "radar.sqf";
// ********************************************
_radar = _this select 0;
_ownside = _this select 1;
_radius = _this select 2;
_minheight = _this select 3;
_maxheight = _this select 4;
_i = 0;
_markers = [];
While {(alive _radar)} do {
_air = nearestObjects [_radar,["AIR"],_radius];
_max = (count _air) - 1;
for [{_i = 0},{_i <= _max},{_i = _i + 1}] do {
_plane = _air select _i;
_type = typeOf _plane;
_m = createMarkerLocal [format ["%1_%2", _type, _plane], position _plane];
_height = (getPosASL _plane) select 2;
If ((_height > _minheight) && (_height < _maxheight)) then {
If (_ownside == west && (side _plane) == _ownside) then {
_m setMarkerTypeLocal "b_air";
_m setMarkerColorLocal "ColorGreen";
_m setMarkerTextLocal (format ["%1",_type]);
} else {
_m setMarkerTypeLocal "o_air";
_m setMarkerColorLocal "ColorRed";
_m setMarkerTextLocal (format ["%1",_type]);
};
If (_ownside == east && (side _plane) == _ownside) then {
_m setMarkerTypeLocal "o_air";
_m setMarkerColorLocal "ColorGreen";
_m setMarkerTextLocal (format ["%1",_type]);
} else {
_m setMarkerTypeLocal "b_air";
_m setMarkerColorLocal "ColorRed";
_m setMarkerTextLocal (format ["%1",_type]);
};
};
_markers = _markers + [_m];
};
sleep 1;
{deleteMarkerLocal _x} foreach _markers;
};
Klappt aber nicht ganz