Thema: KI Hinterhalt
Einzelnen Beitrag anzeigen
Alt 27.04.2014, 11:50   #2 (permalink)
Vienna
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 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
Vienna ist offline