Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials:level1:enemy_ai

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
scripting:tutorials:level1:enemy_ai [2024/02/10 13:37] fritz_98scripting:tutorials:level1:enemy_ai [2024/05/16 14:13] (aktuell) fritz_98
Zeile 1: Zeile 1:
 =====Einen Computergegner platzieren===== =====Einen Computergegner platzieren=====
  
-Siedler 5 hat keine selbstständige KI wie seine Vorgänger. Computerspieler werden keine Stadt bauen und auch nicht ohne Weiteres Armeen ausheben und damit angreifen. All diese Dinge sind zwar möglich, müssen aber für jede Karte aufwendig geskriptet werden. Die Einzelheiten dazu werden in Ebene 3 (FIXME link) ausführlich erklärt.+Siedler 5 hat keine selbstständige KI wie seine Vorgänger. Computerspieler werden keine Stadt bauen und auch nicht ohne Weiteres Armeen ausheben und damit angreifen. All diese Dinge sind zwar möglich, müssen aber für jede Karte aufwendig geskriptet werden. Die Einzelheiten dazu werden in [[ scripting:tutorials#massgeschneiderte_ki |Ebene 3]] ausführlich erklärt.
  
 Für einen einfachen Computergegner gibt es allerdings leicht zu bedienende Funktionen, mit denen rudimentäres Verhalten wie Truppenrekrutierung, Frontalangriffe und Wiederaufbau von Gebäuden ausgeführt werden kann. Da das keinen eigenständigen Stadtaufbau beinhaltet, muss die Siedlung des KI-Gegners bereits im Editor platziert werden (siehe auch [[ scripting:tutorials:level1:place_entities#umsetzung_der_beispielkarteobjekte |Objekte platzieren]]). Für einen einfachen Computergegner gibt es allerdings leicht zu bedienende Funktionen, mit denen rudimentäres Verhalten wie Truppenrekrutierung, Frontalangriffe und Wiederaufbau von Gebäuden ausgeführt werden kann. Da das keinen eigenständigen Stadtaufbau beinhaltet, muss die Siedlung des KI-Gegners bereits im Editor platziert werden (siehe auch [[ scripting:tutorials:level1:place_entities#umsetzung_der_beispielkarteobjekte |Objekte platzieren]]).
Zeile 9: Zeile 9:
 In der folgenden Tabelle wollen wir eine kleine Übersicht darüber geben, was die im Folgenden vorgestellten Funktionen beinhalten und was nicht. In der folgenden Tabelle wollen wir eine kleine Übersicht darüber geben, was die im Folgenden vorgestellten Funktionen beinhalten und was nicht.
  
-FIXME 
 ^ Einfaches KI-Verhalten - Was es kann ^ Einfaches KI-Verhalten - Was es nicht kann ^ ^ Einfaches KI-Verhalten - Was es kann ^ Einfaches KI-Verhalten - Was es nicht kann ^
 | Wenn Rekrutierungsgebäude gegeben sind: Truppen rekrutieren | Selbstständig eine Stadt aufbauen | | Wenn Rekrutierungsgebäude gegeben sind: Truppen rekrutieren | Selbstständig eine Stadt aufbauen |
Zeile 16: Zeile 15:
 | Leibeigene kaufen | Steuern und Motivation verwalten | | Leibeigene kaufen | Steuern und Motivation verwalten |
 | Frontalangriffe bei ausreichender Armeestärke | Komplexes Armeeverhalten wie Angriffe auf Schwachpunkte, Patrouillen, etc. | | Frontalangriffe bei ausreichender Armeestärke | Komplexes Armeeverhalten wie Angriffe auf Schwachpunkte, Patrouillen, etc. |
-FIXME 
  
 In der Regel führt das dazu, dass KI-Gegner nicht allein von den selbst erwirtschafteten Ressourcen "leben" können, sondern immer zusätzliche Ressourcen per Skript gutgeschrieben bekommen. Auch braucht die KI mit den folgenden Funktionen keine Plätze im Dorfzentrum, um zu funktionieren. Es wirkt aber authentischer für den Spieler, wenn der Computergegner eine theoretisch funktionierende Wirtschaft besitzt. In der Regel führt das dazu, dass KI-Gegner nicht allein von den selbst erwirtschafteten Ressourcen "leben" können, sondern immer zusätzliche Ressourcen per Skript gutgeschrieben bekommen. Auch braucht die KI mit den folgenden Funktionen keine Plätze im Dorfzentrum, um zu funktionieren. Es wirkt aber authentischer für den Spieler, wenn der Computergegner eine theoretisch funktionierende Wirtschaft besitzt.
Zeile 71: Zeile 69:
   - **_PlayerId** - Die Spieler-Id des KI-Gegners, also eine ganze Zahl zwischen 2 und 8. Der Spieler muss mindestens 1 Gebäude besitzen, sonst stürzt das Spiel ab   - **_PlayerId** - Die Spieler-Id des KI-Gegners, also eine ganze Zahl zwischen 2 und 8. Der Spieler muss mindestens 1 Gebäude besitzen, sonst stürzt das Spiel ab
   - **_Description** - Ein [[ scripting:tutorials:level1:tables#tables_als_woerterbuecher |assoziatives Table]] mit folgenden Parametern:   - **_Description** - Ein [[ scripting:tutorials:level1:tables#tables_als_woerterbuecher |assoziatives Table]] mit folgenden Parametern:
-      * **resources** -  Ein weiteres assoziatives Table, in dem die Start- bzw. Maximalressourcen der KI festgelegt werden (siehe Beispiel [[ scripting:tutorials:level1:enemy_ai&do=edit#ki_fuer_die_beispielkarte |unten]])+      * **resources** -  Ein weiteres assoziatives Table, in dem die Start- bzw. Maximalressourcen der KI festgelegt werden (siehe Beispiel [[ scripting:tutorials:level1:enemy_ai#ki_fuer_die_beispielkarte |unten]])
       * **refresh** - Gleich aufgebaut wie **resources** und gibt den Intervall in Sekunden und die Menge der Ressourcen an, die die KI regelmäßig bekommen soll (bis zum Maximum, das in ''resources'' angegeben ist)       * **refresh** - Gleich aufgebaut wie **resources** und gibt den Intervall in Sekunden und die Menge der Ressourcen an, die die KI regelmäßig bekommen soll (bis zum Maximum, das in ''resources'' angegeben ist)
       * **serfLimit** - Eine ganze Zahl, die die maximale Anzahl an Leibeigenen angibt, die die KI kaufen kann. Falls die KI zu Beginn des Spiels mehr Leibeigene als das gegebene Limit besitzt, kauft sie erst neue nach, sobald ihre Anzahl unter das Limit fällt (vorausgesetzt, sie besitzt eine Burg)       * **serfLimit** - Eine ganze Zahl, die die maximale Anzahl an Leibeigenen angibt, die die KI kaufen kann. Falls die KI zu Beginn des Spiels mehr Leibeigene als das gegebene Limit besitzt, kauft sie erst neue nach, sobald ihre Anzahl unter das Limit fällt (vorausgesetzt, sie besitzt eine Burg)
Zeile 77: Zeile 75:
       * **resourceFocus** FIXME       * **resourceFocus** FIXME
       * **repairing** - Boolean, der angibt, ob die KI Gebäude reparieren soll       * **repairing** - Boolean, der angibt, ob die KI Gebäude reparieren soll
-      * **rebuild** - Ein assoziatives Table, in dem definiert ist, nach wie viel Zeit zerstörte Gebäude wieder aufgebaut werden. Wenn dieses Feld nicht angegeben wird, werden keine Gebäude wieder aufgebaut (siehe Beispiel [[ scripting:tutorials:level1:enemy_ai&do=edit#ki_fuer_die_beispielkarte |unten]]) +      * **rebuild** - Ein assoziatives Table, in dem definiert ist, nach wie viel Zeit zerstörte Gebäude wieder aufgebaut werden. Wenn dieses Feld nicht angegeben wird, werden keine Gebäude wieder aufgebaut (siehe Beispiel [[ scripting:tutorials:level1:enemy_ai#ki_fuer_die_beispielkarte |unten]]) 
-      * **constructing** - Boolean, der angibt, ob die KI Gebäude errichten darf. Typ und Position aller zu bauenden Gebäude muss ebenfalls abgegeben werden, siehe dazu das zugehörige Kapitel in Ebene 3 (FIXME link einfügen)+      * **constructing** - Boolean, der angibt, ob die KI Gebäude errichten darf. Typ und Position aller zu bauenden Gebäude muss ebenfalls abgegeben werden, siehe dazu [[ scripting:tutorials:level3:ai_construction |das zugehörige Kapitel in Ebene 3]]
  
 Wie ''MapEditor_SetupAI'' kann auch ''SetupPlayerAi'' später erneut aufgerufen werden, um die KI-Einstellungen zu ändern. Wie ''MapEditor_SetupAI'' kann auch ''SetupPlayerAi'' später erneut aufgerufen werden, um die KI-Einstellungen zu ändern.
Zeile 114: Zeile 112:
     --- Die Position ist die von uns gesetzte und benannte Burg des Gegners "Player2"     --- Die Position ist die von uns gesetzte und benannte Burg des Gegners "Player2"
  
-    --- Bei der Aggressivität wählen wir ebenfalls 2, sodass die KI mit allen ihren Truppen angreifen kann+    --- Bei der Aggressivität wählen wir ebenfalls 2, sodass die KI mit der Hälfte ihrer Truppen angreifen kann
  
     --- Eine Friedenszeit brauchen wir nicht einzustellen, da der Spieler selbst entscheidet, wann der     --- Eine Friedenszeit brauchen wir nicht einzustellen, da der Spieler selbst entscheidet, wann der
scripting/tutorials/level1/enemy_ai.1707572253.txt.gz · Zuletzt geändert: 2024/02/10 13:37 von fritz_98