27.04.2014, 00:43 | #1 (permalink) |
Registriert seit: 15.04.2014
Beiträge: 45
|
KI Hinterhalt
Hallo,
ich suche nach einem Script, der ein paar KI-Soldaten die Waffen entfernt und ihnen dann wenn eine gegnerische Einheit in der Nähe ist diese wieder gibt. Das ganze sollte auch mit Waypoints funktionieren. Die Waffen könnt man ja auch manuell entfernen wenn das nicht Möglich sein sollte. Wenn es so einen Script gibt, gebt mir bitte einen Link, wenn nicht, würde es mich interessieren, wie mann eine Abfrage schreibt, bei der sich der Trigger immer mit der Position der KI abgleicht. (muss nicht unbedingt ein Trigger sein, sollte halt so funktionieren, dass das ganze mit Waypoints kein Problem gibt. (Der Radius bis die Waffe gezückt wird sollte nur 20m sein. Kann man ja in so nem Script auch anpassen.) Danke
__________________
Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei. |
27.04.2014, 11:50 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Das ist viel zu aufwendig! Du kannst das Verhalten der KI so einstellen, dass man zwischen den Feinden herum spazieren kann.
https://community.bistudio.com/wiki/setBehaviour https://community.bistudio.com/wiki/setCombatMode Für dieses Skript brauchst du den im Skript beschriebenen Jeder-Mehrfach-Auslöser, der über eine Schalter-Variable das Verhalten der Einheiten im Auslöserbereich umschaltet. Code:
/* Skript: Verhalten.sqf Aufruf: [Seite, Array mit Soldaten,"setBehaviour","setCombatMode"] execVM "Verhalten.sqf"; Beispiel für Soldaten in einem Auslöserbereich. Auslöser: Achse A und B: 200 Aktivierung : Jeder | Mehrfach Countdown : 0 - 0 - 0 Name : Trigger_1 Bedingung : NichtFeuern_1 Bei Akt. : temp = [WEST,list Trigger_1,"CARELESS","BLUE"] execVM "Verhalten.sqf"; Bei Deak. : temp = [WEST,list Trigger_1,"AWARE","YELLOW"] execVM "Verhalten.sqf"; Soldaten der Seite im Auslöserbereich -> nicht feuern: NichtFeuern_1 = true; Soldaten der Seite im Auslöserbereich -> Feuer frei : NichtFeuern_1 = false; */ private = ["_seite","_unitListe","_behaviour","_combat"]; _seite = _this select 0; _unitListe = _this select 1; _behaviour = _this select 2; _combat = _this select 3; { if (side _x == _seite) then { _x setBehaviour _behaviour; _x setCombatMode _combat } } forEach _unitListe; Code:
Achse A und B: 0 Aktivierung : Keine | Mehrfach Countdown : 0 - 0 - 0 Bedingung : player distance SoldatX > 20 Bei Akt. : NichtFeuern_1 = true Bei Deak. : NichtFeuern_1 = false |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|