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;
Die Schalter-Variable kannst du durch andere Auslöser z.B. mit distance schalten.
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