Einzelnen Beitrag anzeigen
Alt 03.02.2011, 22:47   #20 (permalink)
Vienna
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
      }
   }
Vienna ist offline