In dieser Version wird der Radarbereich durch eine blinkende Kreislinie angezeigt (nicht ident mit dem zweiten Skript in obiger Beispielmission, das den Radarbereich als blinkende Fläche anzeigt).
Code:
// Lokales Radar zeigt Flugobjekte [Vienna, 03.02.2011]
// Unbekannte Flugobjekte sind blau, freundliche grün, feindliche rot.
// Aufruf: [Radarobjekt, Radarradius, minimale Flugobjekthöhe] execVM "Radar.sqf"
// Beispiel für Auslöser: temp = [player,2000,10] execVM "Radar.sqf"
private ["_radar","_radius","_hoehe","_r","_marker","_m","_c","_t"];
_radar = _this select 0;
_radius = _this select 1;
_hoehe = _this select 2;
while {alive _radar} do
{
//Map offen?
if (visibleMap) then
{
//Durchlauf aller Flugobjekte im Radarbereich
_marker = [];
{
if (getPos _x select 2 > _hoehe) then
{
//Marker für Flugobjekte erstellen
_m = createMarkerLocal [str _x, position _x];
_m setMarkerTypeLocal "b_air";
if(player countUnknown[_x]==1)then{_t=" ?";_c="ColorBlue"}
else{_t=typeOf _x;if(player countFriendly[_x]==1)then{_c="ColorGreen"}
else{_c="ColorRed"}};
_m setMarkerTextLocal str _t;
_m setMarkerColorLocal _c;
_marker = _marker + [_m]
}
} forEach nearestObjects [_radar,["AIR"],_radius];
sleep 2.7;
//Marker für Radarreichweite erstellen
_r = createMarkerLocal ["FlugobjektRadar4711", position _radar];
_r setMarkerShapeLocal "ELLIPSE";
_r setMarkerBrushLocal "BORDER";
_r setMarkerSizeLocal [_radius,_radius];
_r setMarkerColorLocal "ColorOrange";
sleep 0.3;
//Reichweitenmarker löschen
deleteMarkerLocal _r;
//alle Flugobjektmarker löschen
{deleteMarkerLocal _x} foreach _marker
}
else
{
sleep 2
}
}