Wie verhindere ich, dass KI zum einsamen Streuner wird, ein Technical ohne Schützen weiter angreift oder eine einmal ausgeschaltete statische Waffe unbesetzt bleibt.

  • Multiplayer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wie verhindere ich, dass KI zum einsamen Streuner wird, ein Technical ohne Schützen weiter angreift oder eine einmal ausgeschaltete statische Waffe unbesetzt bleibt.

    Mein gutes Vorhaben für die zweite Jahreshälfte ist es mit dem Missionsbau mal ernst zu machen, doch leider bin ich Perfektionist und mich stören drei immer wieder auftauchende Verhaltensweisen der KI.

    1. Die Spielenden haben eine Gruppe von Feinden gut bekämpft, sie ist bis auf ein/zwei kampffähige Gegner vernichtet. Doch die KI kennt ja keine Angst und selbst der letzte verbliebene Feind rennt noch heldenhaft in unser Platoon rein oder läuft ihm nach einiger Bedenkzeit hinterher um sich zu rächen. Kurz Streuner nerven..
    2. Wir sind im Angriff auf ein befestigtes Gebäude oder eine andere Stellung, ein M2 wurde aufgeklärt, der Marksman legt an, "peng, Problem erledigt". Wir können nun ganz gemütlich bis auf Handgranatenweite heran, denn keine KI kommt auf die Idee die statische Waffe wieder zu besetzen.
    3. Irgendwo taucht ein Technical auf, zusammengefasstes Feuer auf den Schützen, Fall erledigt. Der Fahrer wird einfach weiter irgenwelche Manöver fahren als ob der Schütze noch da wäre, bis sich endlich irgendwann jemand erbarmt und ihn in die ewigen Jagdgründe schickt.
    Für Problem 2 habe ich eine Lösung gefunden: Standwaffen automatisch von KI besetzen lassen

    Zu 1. würde ich mir wünschen dass, wenn Gruppe ≤ 2, dann sollte die KI erstmal versuchen sich zu lösen(allow flee??), dann sollte sie sich eine neue Gruppe suchen und sich dieser anschließen ohne dort das Kommando zu übernehmen.

    Zu 3. wäre es traumhaft wenn die KI ähnlich verführe wie bei meinem Wunsch Nummer 1, nur mit dem Unterschied, dass sie sich eine Gruppe ≥ 5 sucht, sich ihr anschließt und von dieser einen Schützen erhält (Script A) oder aus dieser Gruppe eine KI ausgegliedert wird sich der Gruppe des Fahrers anschließt und den Schützenplatz besetzt (Script B).
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muss man vor allem ein Schaf sein."
    Albert Einstein
  • Wie angedeutet bin ich ganz in den Anfangsgründen vom Missionsbau, Scripte kann ich ganz gut kopieren und einfügen, werde dann wahrscheinlich immer noch über die Lokalitäten stolpern...

    Am einfachsten wären für mich fertige, erprobte Scripte mit Bedienungsanleitung.
    Am meisten lernen würde ich aus Hinweisen und Schnipseln, würde mir dann aber doch Hilfe suchen..

    Also kurz geschrieben ist mir jede Hilfe willkommen, vielleicht haben ja Leute verschiedene Lösungsansätze für Oben genannte Probleme, schließlich ist das eine ein Script zusammenschustern zu können (kann ich nicht), das andere ist eine Mission totzuscripten (kann ich auch nicht).

    Es bleibt im Belieben der Lesenden, wie und ob sie mir helfen wollen, o sie es können.
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muss man vor allem ein Schaf sein."
    Albert Einstein
  • Für deine Probleme wäre es gut zu wissen, ob die Feinde random auftauchen oder vorher klar definiert ist wann welcher Feind antreffen wird. Also spawnen die Feinde durch Zufall auf der Karte oder sind die vorher schon auf der Karte gesetzt?

    Beim zweiten Fall wäre es für dein 3. Problem einfach einen !alive Befehl für den Schützen zu setzen, sollte dieser sterben, kannst du mit action Eject schonmal dafür sorgen, dass der Fahrer aus seinem Fahrzeug steigt und zurückschießt anstatt blöd herum zu fahren.
  • Die bequemste Variante wäre optional VcomAI serverseitig mitlaufen zulassen, falls nicht bekannt.
    Deckt 1-3 ab und einiges mehr,

    Die andere Variante, du baust es dir selbst in Form eines Skripts (auch weil du Bock hast es zu erlernen):
    Für den "single" AI: Du könntest prüfen, wie groß die jeweilige feindliche Gruppe ist , ist sie, sagen wir mal kleiner als 2 , dann schickst du die Einheit auf die Position eines zufällig gewählten "lebenden" Spieler bis dieser tot ist.
    Ansatz für den zufälligen Spieler und seine aktuelle Position:

    Shell-Script

    1. playerarray = [];
    2. {
    3. if(isPlayer _x)then{
    4. playerarray = playerarray + [_x];
    5. }
    6. } forEach playableunits+switchableunits;
    7. _randomTarget = playerarray call BIS_fnc_selectRandom;

    Bedenke hierbei, das der Spieler auch die Position wechselt, das es auch in deinem Script erfasst wird und dann der AI entpsrechend ein neuer Waypoint mitgegeben wird.
    In dem nachfolgendem Beispiel wird noch eine zufällige Formation gewählt. Der Wegpunkt auf den Spieler gesetzt und alle 45 sek. neu gesetzt, so das eine Verfolgung entsteht.
    Was hier noch fehlt, wäre ein Austieg aus der Schleife , wenn die Feindheinheiten auch tot sind ...könnte ja sein, das der Spieler bzw. die Gruppe um ihn die Angreifer vorher lokalisiert ;)

    Shell-Script

    1. _formation = ["NO CHANGE","COLUMN","STAG COLUMN","WEDGE","ECH LEFT","ECH RIGHT","VEE","LINE","FILE","DIAMOND"] call BIS_fnc_selectRandom;
    2. while{(alive _randomTarget)}do{
    3. _wp1 = _eastgrp addWaypoint [(getPos _randomTarget), 0];
    4. _wp1 setWaypointType "SAD";
    5. _wp1 setWaypointSpeed "FULL";
    6. _wp1 setWaypointBehaviour "AWARE";
    7. _wp1 setWaypointFormation _formation;
    8. [_eastgrp, 2] setWaypointCompletionRadius 10;
    9. sleep 45;
    10. deleteWaypoint [_eastgrp, 2];
    11. };
    Alles anzeigen


    Für den Ai Driver in Fahrzeugen könntest du dich mit einer While Schleife in Kombi einer foreach Vehicles der Bedingung !Canmove

    Für die statische Waffe, welche leer ist kannst du 2 Optionen in Erwägung ziehen:
    1) Du setzt einen Trigger auf das Geschütz bzw. eher dem Schützen der Waffe. Wenn tot, spawnst du einen neuen Schützen und befiehlst ihm das Geschütz zu besetzen. Solltest aber auch vorher prüfen, ob das Geschütz noch nutzbar ist.
    2) Du überwachst ebenfalls den Schützen und ermittelst die AI, welche dem Geschütz am nächsten ist und befiehlst ihm in das Geschütz zu besetzen.


    Ich hoffe, das der eine oder andere Ansatz dich in deinem Vorhaben unterstützt :)
  • Vielen Dank soweit!

    Dennis006 schrieb:

    Für deine Probleme wäre es gut zu wissen, ob die Feinde random auftauchen oder vorher klar definiert ist wann welcher Feind antreffen wird. Also spawnen die Feinde durch Zufall auf der Karte oder sind die vorher schon auf der Karte gesetzt?.
    Würden beide Fälle abgedeckt wäre es natürlich gut, dann jegliche KI fertig auf die Karte zu setzen empfiehlt sich nach meinem Verständnis aus Gründen der Performance nicht.
    Ich plane lieber nur ausgewählte Einheit direkt auf die zu setzen, wenn es notwendig ist.

    Dennis006 schrieb:

    Beim zweiten Fall wäre es für dein 3. Problem einfach einen !alive Befehl für den Schützen zu setzen, sollte dieser sterben, kannst du mit action Eject schonmal dafür sorgen, dass der Fahrer aus seinem Fahrzeug steigt und zurückschießt anstatt blöd herum zu fahren.
    Daran hatte ich auch schon überlegt, wäre es aber nicht sinnvoll abzufragen ob der KI-Fahrer überhaupt weiß was los ist (Knows about?) um den Script entscheiden zu lassen was er tut? Das Geschütz zu besetzen wäre ja nur sinnvoll. wenn die KI weiß wo die Spielenden sind, sonst ist sie ja nur eine Zielscheibe. Wenn sie nix oder wenig weiß, bzw. sehr nah an den Spielenden wäre es besser das Script entscheidet "Flucht und sich einen neuen Schützen besorgen".

    Greni schrieb:

    Für den "single" AI: Du könntest prüfen, wie groß die jeweilige feindliche Gruppe ist , ist sie, sagen wir mal kleiner als 2 , dann schickst du die Einheit auf die Position eines zufällig gewählten "lebenden" Spieler bis dieser tot ist.
    Das wäre ganz klar besser, als wenn die KI einfach nur blöd in der Gegend herum steht, ist aber nicht meine Intention, ich möchte eben nicht so eine Selbstmord-KI, die sich blindwütig auf ein Platoon Spielender stürzt, da ich solches Verhalten Erstens nicht glaubwürdig finde, Zweitens solche einsamen Schützen spielerisch nerven. Es wäre besser ein Script zu haben, dass die einsamen KI_Feinde veranlasst sich zu reorganisieren und zu regruppieren, danach können sie ja gerne erfahren, wo sich die Spielenden herum treiben.
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muss man vor allem ein Schaf sein."
    Albert Einstein
  • Antagon [W] schrieb:

    Zu 1. würde ich mir wünschen dass, wenn Gruppe ≤ 2, dann sollte die KI erstmal versuchen sich zu lösen(allow flee??), dann sollte sie sich eine neue Gruppe suchen und sich dieser anschließen ohne dort das Kommando zu übernehmen.

    Zu 3. wäre es traumhaft wenn die KI ähnlich verführe wie bei meinem Wunsch Nummer 1, nur mit dem Unterschied, dass sie sich eine Gruppe ≥ 5 sucht, sich ihr anschließt und von dieser einen Schützen erhält (Script A) oder aus dieser Gruppe eine KI ausgegliedert wird sich der Gruppe des Fahrers anschließt und den Schützenplatz besetzt (Script B).
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muss man vor allem ein Schaf sein."
    Albert Einstein