Im diesem Abschnitt wird erläutert, wie man den KI Gegner dazu bringen kann eine Basis aufzubauen (oder einfach nur mal hier und da ein Wachturm hinzustellen). Der Abschnitt baut auf Computergegner - Grundlagen auf. Der KI Gegner braucht aber nicht unbedingt entsprechend diesem Abschnitt eingestellt werden. So könnte man es beispielsweise erreichen, daß der KI Gegner zwar Gebäude baut, aber keinerlei Truppen produziert.
Es dauert auf der (unten verlinkten) Beispielkarte, auf der dieses Script ausgeführt wird, ungefähr 8 Minuten, bis der KI Gegner alle Gebäude aufgebaut hat.
Der Bauplan wird nur ausgeführt, wenn der Computergegner wie zuvor in Computergegner - Grundlagen beschrieben aktiviert wird.
-- Die von dem Grundlagenscript übernommene SpielerID des Computergegners local aiID = 2; -- Mit dieser Zeile wird festgelegt, daß der KI Gegner den Konstruktionsplan befolgen soll SetupPlayerAi( aiID, { constructing = true } ); -- Hier wird der Bauplan für den Spieler festgelegt local constructionplan = { -- Errichte ein einfaches Dorfzentrum möglichst nah am eigenen Hauptquartier { type = Entities.PB_VillageCenter1, pos = GetPosition("P2_AI_HQ") }, -- Setze zwei Blumen direkt daneben { type = Entities.PB_Beautification09, pos = invalidPosition }, { type = Entities.PB_Beautification09, pos = invalidPosition }, -- Nun eine Lehmmine bei dem weiter entfernten Schacht (markiert durch eine ScriptEntity) errichten { type = Entities.PB_ClayMine1, pos = GetPosition("far_away") }, -- Neben die Lehmmine kommt ein Aussichtsturm, der automatisch zum Ballistaturm ausgebaut wird { type = Entities.PB_Tower1, pos = invalidPosition, level = 1 }, -- Dieser Aussichtsturm wird zu einem Kanonenturm { type = Entities.PB_Tower1, pos = invalidPosition, level = 2 }, -- Die Lehmmine braucht auch noch eine einfache Farm { type = Entities.PB_Farm1, pos = invalidPosition }, -- ..und ein einfaches Wohnhaus (obwohl Residence3 anstatt Residence1 angegeben ist) { type = Entities.PB_Residence3, pos = invalidPosition }, -- Nun kommt noch eine normale Universität neben das Hauptquartier { type = Entities.PB_University1, pos = GetPosition("P2_AI_HQ") }, -- Sowie eine ausgebaute Farm + Haus daneben. Diesmal aber "normal" ausgebaut { type = Entities.PB_Farm1, pos = invalidPosition, level = 2 }, { type = Entities.PB_Residence1, pos = invalidPosition, level = 2 }, -- Damit der Gegner auch angreifen kann, wird nun noch eine Kaserne ans Hauptquartier gestellt { type = Entities.PB_Barracks1, pos = GetPosition("P2_AI_HQ") }, }; -- Bauplan an den KI Gegner übergeben FeedAiWithConstructionPlanFile( aiID, constructionplan );
SetupPlayerAi( aiID, { constructing = false } );
Da „aiID“ als lokale Variable deklariert wurde, sollte man dort das „local“ entfernen und sie umbenennen, wenn man diese später in einer anderen Funktion verwenden möchte.
Eine funktionierende Beispielkarte mit diesem Script kann hier heruntergeladen werden.
Zur Tutorial-Übersicht