Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 19.06.2011, 15:05   #1 (permalink)
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 Frage: No Target

Hello Cummunity!
Ich arbeite gerade an einem AI Sniper Skript!
Und dabei habe ich einen Trigger von 1300 x 1300 Meter fürs Einscannen der Feinde
Erstellt so bald mehr feind Einheiten in einer Array erfasst wurden wir ein Feind bei
Zufall ausgewählt, und der Sniper bekommt im zum Ziel Objekt!

Dabei gibt es eine Warteschleife als Not Ausgang, nach Ablauf von 2 Min. ist eine davon
Danach wenn das Ziel noch nicht Eliminiert wurde, bräuchte ich einen Code!

Das ich das Ziel Obj. Als kein Ziel erklären kann!!
Hätte vielleicht jemand eine Lösung dafür??

Lg.
Ghost_AUT
__________________
Ghost_AUT

Geändert von Ghost_Aut (19.06.2011 um 15:11 Uhr).
Ghost_Aut ist offline  
Alt 19.06.2011, 17:08   #2 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

Also dann soll das Ziel nicht mehr weiter beachtet werden ?

man könnte das am einfachten damit machen.

Zitat:


PRIVATE ["_Trigger","_sniper","_array","_anzahl","_rand1"," _rn","_unit","_Target"];


_Trigger=_this select 0;
_sniper=_this select 1;

while {(true)} do
{

_array = list _Trigger;
_anzahl=(count _array)-1;

_rand1=0+random _anzahl;
_rn = (_rand1 + 0.5) - ((_rand1 + 0.5) Mod 1);
_unit = _array select _rn;

_Target = _unit getvariable "noTarget";
if (!(isNil "_Target")) then {_objtarget setVariable ["noTarget","false"];};

_Target = _unit getvariable "noTarget";
if (_Target == "false") then
{
_sniper doTarget _unit;
_sniper doFire _unit;
sleep 120;
if (alive _unit) then {_unit setVariable ["noTarget","true"];};
};
sleep 1;
};

__________________


--> -> Rechtschreibfehler sind Gratis <- <--
--> Wer welche findet kann sie behalten <--



German Nato Corps

Geändert von [GNC]Lord-MDB (19.06.2011 um 17:34 Uhr).
[GNC]Lord-MDB ist offline  
Alt 19.06.2011, 17:13   #3 (permalink)
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

Zitat von [GNC]Lord-MDB Beitrag anzeigen

Also dann soll das Ziel aus dem Array genommen werden und nicht mehr weiter beachtet werden ?

Ja aus der Array wird es entfernt! aber es sol auch nicht mehr weiter beachtet werden ?
__________________
Ghost_AUT
Ghost_Aut ist offline  
Alt 19.06.2011, 17:32   #4 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

ja muss ja mehrmals den trigger abfragen ob neue ziele dazu gekommen sind. In dem Script werden dann alle ziele die schon mal versucht worden sind anzugreifen und nach 2 min nicht Tod waren außen vorgelassen.
__________________


--> -> Rechtschreibfehler sind Gratis <- <--
--> Wer welche findet kann sie behalten <--



German Nato Corps
[GNC]Lord-MDB ist offline  
Alt 19.06.2011, 20:22   #5 (permalink)
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 für die hilfe!
Ich habe das Problem mit diesen Code lösen Können!

{_x doWatch objNull}forEach units _group;

Aber hätte trozdem noch eine Kurze Frage wie kann ich einen
Script Code hir im Forum eingeben wie es gehört?

Lg.
Ghost_AUT
__________________
Ghost_AUT
Ghost_Aut ist offline  
Alt 19.06.2011, 20:29   #6 (permalink)
User gesperrt
5000 Beiträge
 
Registriert seit: 20.10.2009
Ort: Jetzt auch im BIF
Alter: 39
Beiträge: 9.163
Standard

Antworten Button unten links und dann im Fenster # Button drücken oder mit
HTML-Code:
[code][/code]
Bsp:
Code:
tralalala
AHTNTEPPOP ist offline  
Alt 22.06.2011, 20:22   #7 (permalink)
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  
Alt 23.06.2011, 12:42   #8 (permalink)
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

Ich nehme an, dass auch die KI besser trifft wenn sie liegt, als stehend.
Vienna ist offline  
Alt 23.06.2011, 15:17   #9 (permalink)
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

Zitat von Vienna Beitrag anzeigen

Ich nehme an, dass auch die KI besser trifft wenn sie liegt, als stehend.

Ja das hätte ich eigentlich eh auch bedacht! this setUnitPos "Down"

Aber vielleicht ist auch der Radius zu groß, mit A 800 -B 800


AI_Sniper_Team.sqf

Code:
//////////////////////////////////////////////////////////////////
// Function file for Armed Assault
// Created by: TODO: Author Name
//////////////////////////////////////////////////////////////////
if (!isServer) exitWith {};
private ["_Sniper_pos","_group","_box"];
_Sniper_Pos = "pos1";              
 
_SniperGroup = createGroup EAST;
"TK_Soldier_Spotter_EP1" createUnit [(getMarkerpos _Sniper_Pos), _SniperGroup, "this setUnitPos 'Down'", 1,"FROM"]; // AI Spotter
"TK_Soldier_SniperH_EP1" createUnit [(getMarkerpos _Sniper_Pos), _SniperGroup, "this setUnitPos 'Down'", 1,"FROM"]; // AI Sniper
_group = leader _SniperGroup;         
_group setFormation "LINE";           
_group setBehaviour "STEALTH";        
 
STag = createTrigger ["emptyDetector", _group];
STag  setTriggerArea [800,800,0, true];
STag  setTriggerTimeout [2, 2, 2, true];
STag  setTriggerActivation ["WEST", "PRESENT", false];
STag  setTriggerStatements ["this", "hint 'Scanning Radius A.X = 800 B.X = 800'",""];
publicVariable "STag";
 
_Box = createVehicle ["TKBasicAmmunitionBox_EP1", _group, [], 10, "NONE"];
 
[_group,_box,STag,120] execVM "Ai_Sniper_room.sqf";
 
if (true) exitWith {deleteMarker _Sniper_pos};
Vienna eine frage, glaubst wehr es sinnvoll wenn man beim oberen script bei G_Ziel_Down
den auf, _play = ObjNull; setzen würde zusetzlich?
__________________
Ghost_AUT

Geändert von Ghost_Aut (23.06.2011 um 15:39 Uhr).
Ghost_Aut ist offline  
Alt 23.06.2011, 20:05   #10 (permalink)
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

Das bringt nichts, weil die Variable ohnehin gleich zu Beginn mit einem Übergabewert gesetzt wird. Aber da es sich hier um ein "Unterprogramm" handelt solltest du die die darin verwendeten Variablen mit Private [...]; deklarieren.

Weiters ist das if (true) exitWith unnötig, auch am Skriptende, wo auch das "_Scanning = []" überflüssig ist.
Vienna ist offline  
Alt 23.06.2011, 20:14   #11 (permalink)
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

Zitat von Vienna Beitrag anzeigen

Das bringt nichts, weil die Variable ohnehin gleich zu Beginn mit einem Übergabewert gesetzt wird. Aber da es sich hier um ein "Unterprogramm" handelt solltest du die die darin verwendeten Variablen mit Private [...]; deklarieren.

Weiters ist das if (true) exitWith unnötig, auch am Skriptende, wo auch das "_Scanning = []" überflüssig ist.

aha okay, Verstehe Danke!
__________________
Ghost_AUT
Ghost_Aut ist offline  
Alt 26.06.2011, 03:10   #12 (permalink)
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

Gibt es eine Möglichkeit das der Spotter als Leader, nicht immer den Sniper
in der Gegend herum scheucht sondern einfach auf der Position liegen bleibt?
Wenn nicht ist es vielleicht sinnvoller nur einen Sniper zu erzeugen und den Spotter weg zu lassen, ob wohl es wahrscheinlich auch auf die Position drauf ankommt, wo sie Stationiert wurden!

Mit dem code commandstop gehts leider nicht!
__________________
Ghost_AUT
Ghost_Aut ist offline  
Alt 26.06.2011, 11:21   #13 (permalink)
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

unitName stop true/false
Vienna ist offline  
Alt 26.06.2011, 16:39   #14 (permalink)
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

Zitat von Vienna Beitrag anzeigen

unitName stop true/false

Ne leider er bleibt zwar an Ort und Stelle, aber reagiert leider nicht mehr auf die ziel Zuweisung!
__________________
Ghost_AUT
Ghost_Aut ist offline  
Alt 26.06.2011, 17:40   #15 (permalink)
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

Unmittelbar vor der Zielzuweisung ist der Stop-Befehl aufzuheben (unitName stop false).
Vienna ist offline  
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage Array Ghost_Aut Editing & Scripting 3 13.04.2011 18:57
Frage zum BWMOD Leo 2A6 GeneralX© Mods & Addons 1 26.03.2011 21:39
Eine Frage Tomahawk Editing & Scripting 2 12.02.2011 14:14
Frage: Squadleader und Join Request ColdJackle Technische Fragen & Probleme 13 25.10.2010 16:33
Frage zur BWMod Rabb_de Mods & Addons 1 10.08.2010 01:26


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119