Einzelnen Beitrag anzeigen
Alt 18.10.2009, 22:33   #15 (permalink)
Cyborg11
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

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
Cyborg11 ist offline