19.06.2011, 15:05 | #1 (permalink) |
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). |
|
19.06.2011, 17:08 | #2 (permalink) |
Also dann soll das Ziel nicht mehr weiter beachtet werden ?
man könnte das am einfachten damit machen.
__________________
--> -> 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). |
|
19.06.2011, 17:32 | #4 (permalink) |
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 |
|
22.06.2011, 20:22 | #7 (permalink) |
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 = []; }; Ghost [AUT]
__________________
Ghost_AUT |
|
23.06.2011, 15:17 | #9 (permalink) |
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}; den auf, _play = ObjNull; setzen würde zusetzlich?
__________________
Ghost_AUT Geändert von Ghost_Aut (23.06.2011 um 15:39 Uhr). |
|
23.06.2011, 20:05 | #10 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
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. |
23.06.2011, 20:14 | #11 (permalink) |
aha okay, Verstehe Danke!
__________________
Ghost_AUT |
|
26.06.2011, 03:10 | #12 (permalink) |
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 |
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ä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 |