Einzelnen Beitrag anzeigen
Alt 31.03.2011, 22:58   #6 (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

Die Abfrage wie viele Soldaten je Seite im Auslöserbereich sind würde ich heute so machen:

Code:
//LOKAL, färbt einen Marker nach Vorhandensein von Units in einem "Jeder" Auslöser.
//
//Parameter:
// #0 Auslösername
// #1 "Markername"
//
//Beispiel für einen Auslöser:
//
//Aktivierung: Jeder / einmal
//Bedingung  : true
//Bei Akt    : null=[Auslösername,"Markername"] execVM "MarkerFarbe.sqf"

//private Variable
private["_a","_m","_f","_w","_e","_g","_l","_t"];

//Parameter übernehmen
_a = _this select 0;
_m = _this select 1;

_l = false; //true wenn Markerfarbe auf Gelb

//Endlosschleife
while{true}do
{
  //zählt im Auslöserbereich die West-, East- und Resitanceeinheiten
  _t = list _a
  _w = west       countSide _t;
  _e = east       countSide _t;
  _g = resistance countSide _t;
  
  //Markerfarbe aufgrund der Zählung bestimmen
  if(_w<1 and _e<1 and _g<1 and _l)             then{_f = "ColorBlack";     _l=false}; //grau: keine Einheiten im Bereich und zuvor war Farbe Gelb
  if(_w>0 and _e<1 and _g<1)                    then{_f = "ColorGreenAlpha";_l=false}; //grün: nur West im Bereich
  if(_e>0 and _w<1 and _g<1)                    then{_f = "ColorRedAlpha";  _l=false}; //rot : nur East im Bereich
  if(_g>0 and _w<1 and _e<1)                    then{_f = "ColorBlue";      _l=false}; //blau: nur Resi im Bereich
  if((_w>0 and(_e>0 or _g>0))or(_e>0 and _g>0)) then{_f = "ColorYellow";    _l=true};  //gelb: zwei Seiten im Bereich
  _m setMarkerColorLocal _f; 
  
  //eine Sekunde Pause
  sleep 1
}
Vienna ist offline