Einzelnen Beitrag anzeigen
Alt 22.06.2011, 19:22   #7 (permalink)
Ghost_Aut
50 Beiträge100 Beiträge
 
Registriert seit: 29.07.2008
Ort: Wien
Alter: 48
Beiträge: 189
Ghost_Aut eine Nachricht über MSN schicken
Standard

Danke AHTNTEPPOP!

Ich hätte noch eine Frage ist es noch möglich die Treff Sicherheit eines Snipers noch zu erhöhen, wenn die Sets kill schon auf 1 stehen?

AI_Sniper_Room.sqf
Code:
//////////////////////////////////////////////////////////////////
// By: Ghost [AUT] AI_Sniper_Group_Room V1.01
// 
// Kurz Info: For Arma2 & OA!
// 
// Einen Trigger auf der Map Platzieren:
// Feind Einheit Activation: Feind Side, Vorhanden, Einmalig!
// Position des Auslöser, ist der Radius Mittelpunkt beim Spotter: Trigger Area A 800 - B 800!
// Platzierung Erfolgt auf der Map!
//
// Einen 2 Auslöser Platzieren:
// in der Bedingung: Akt durch eine publicVariable Bedingung oder auf true!
// In der Auslöser Init: 
// null = [Sniper name, Weaponbox name, Trigger Name, Beowachtungs Ziet in Sec] execVM "AI_Sniper_room.sqf"!
// 
// Das Script wird Automatisch beendet:
// So bald das AI Sniper Team eliminiert wurde!
//
// Gelöscht werden beim Beenden des Scripts:
// Der Inhalt der Scanning Array!
// Die Weapon Box!
// Der Scanning Trigger!
//////////////////////////////////////////////////////////////////
if (!isServer) exitWith {};
private ["_group","_box","_STag","_delay","_Sniper_group","_Spotter","_Scanning","_playunit","_play","_wait"];
_group = _this select 0;               // AI Units group!
_box   = _this select 1;               // Weapon Box!
_STag  = _this select 2;               // Scanning Trigger!
_delay = _this select 3;               // Zeit angabe in Sec.!
_Sniper_group = group _group;          // Groupe einen Namen Zuweissen!
_Spotter = leader _Sniper_group;       // Leader bestimmen der group!
_Spotter setFormation "LINE";          // Formation!
_Spotter setBehaviour "STEALTH";       // Kampfmodus! 
// Löschen der Weapon box & Erstellen einer neuen Weapon box!
deletevehicle _box; _box = createVehicle ["TKBasicAmmunitionBox_EP1", _STag, [], 10, "NONE"];
_box allowDamage false;
clearWeaponCargo _Box;                            // Leeren der Vorhandenen Weapons                           
clearMagazineCargo _Box;                          // Leeren der Vorhandenen Magazine
_box addMagazineCargo ["5Rnd_127x108_KSVK", 50];  // Einfügen der neuen Magazine
_box addMagazineCargo ["20Rnd_762x51_FNFAL", 50]; // Einfügen der neuen Magazine
//////////////////////////////////////////////////////////////////////////////////////////////
 
 
G_Ziel_Down =                                     // Ziel Erfassung und Feuerbefehl
{
if (true) exitWith
{
 hint "ziel";
 _Spotter = _this select 0;
 _play = _this select 1;
      _Spotter lookAt _play;                      
 _Spotter selectWeapon "binocular";            
      _Spotter commandFire _play;                                      
      //_Spotter commandTarget play_killing;  
_wait = Time + _delay;                                        
waitUntil {_wait < time OR !alive _play OR !alive _Spotter}; // Warteschleife: Zeitablauf und Alive Zielperson oder Spotter
{_x doWatch ObjNull}ForEach units _Sniper_group;             // Die Zielerfassung der ziel Person wird Deaktiviert
  };
};
 
while {count units _Sniper_group > 0} do  // Beginn der Schleife: So lange das AI Sniper Team nicht eliminiert wurde!   
{
hint "While"; 
_unit = objNull;                          // Feind und Player Scanning Modul!
 _list = list _Stag;
 _Scanning = [];
 _i=0;
 while {_i < (count _list)} do 
 {
  _unit = _list select _i;
  if(not (_unit isKindOf "Man")) then
  {  
   {_Scanning = _Scanning + [_x]} forEach crew _unit;
  }
  else
  {
   _Scanning = _Scanning + [_unit];
  };
  _i=_i+1;
  sleep 0.2;
 };
 _i=0;                                 
sleep 1;                                                            
 
if (count _scanning >= 1) then                                        // Abfrage: ob Mindestens ein Feind in der Scanning Array vorhanden ist
{  
      _playunit = _scanning select floor(random count _Scanning);     // Zufalls auswahl der Player oder Feinde, in der Scanning Array         
      play = leader _playunit;                                        // Ziel Namen Zuweissung Globalvariable 
      publicVariable "play";                                  
      //hint format ["Sniper Team Zielzuweissung: %1", play];
      if (!alive _Spotter) then {_Spotter = leader _Sniper_group};    // So bald der Spotter eliminiert wurde, wird ein neuer Leader bestimmt!
      sleep 0.5;
      if (alive play) then {[_Spotter, play] call G_Ziel_Down};       // Aufruf wenn die Zielperson lebt, Ruft, Ziel und Feuerbefehl auf!
      }; 
sleep 10;
};
 
if (true) exitWith {                                                  // Script Exit                                   
                   deleteVehicle _STag;            
                   deleteVehicle _box;                      
                   sleep 3;
                   _Scanning = [];    
                   };
LG.
Ghost [AUT]
__________________
Ghost_AUT
Ghost_Aut ist offline