Kennt jemand so eine AI??

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Ich habe für mein erstes Szenario eine schöne Karte designt, die ich mir nicht von den paar Dorfis kaputt machen lassen will. :D
Also es geht darum, dass die Dorfbewohner so sehr damit beschäftigt sind meine Wälder und Alleen abzuholzen, dass die Karte nach und nach zerstört wird.
Kennt jemand eine AI bei der die Dorfbewohner alles tun und lassen können, bis auf Bäume abholzen?
Mit Schaltern lässt sich ja in der Richtung leider nix bewirken...
Öffne die KI (*per-Datei) und suche
(set-strategic-number sn-gold-gatherer-percentage x)
Dann schreibe eine Null dahinter, also:
(set-strategic-number sn-gold-gatherer-percentage 0)

Oder nimmst du die Standard-KI? Dann geht das natürlich nicht.
... oder zäune deine Dorfis da ein, wo sie abholzen dürfen. :P
Das gleiche Problem konnte ich mal mit einem Dauer-Zuweisen-Schalter beheben, d.h. sobald ein Dorfi (Zivilist) sich dem Wald nähert, wurde er per Gebiets-Option irgendwo hin geschickt. Sollte funktionieren...

Gibt auch ne umständliche, aber elegante Lösung:
man fügt an der Stelle, wo immer ein Baum stehen soll, per Dauerschleife immer neue Bäume ein. Dazu muß die Stelle, wo der Wald sein soll, allerdings vorher leer sein, damit man die Position setzen kann. Ne ziemliche Mühsal bei großen Wäldern! :D

Ne andere Möglichkeit wäre vielleicht noch, Dorfzentrum und Holzfällerlager zu sperren. Das hat glaub ich auch mal funktioniert. Zur Zierde hab ich dem Spieler dann das Dorfzentrum aus den Patches gegeben (das ohne Funktion).
Holz bekam die KI dann per Zeit-Schalter.
Geht aber nur, wenn der Spieler nicht groß was leisten soll. Ansonsten kann man ja per Dauerschleife Dorfis erscheinen lassen, mit der Bedingung: Weniger eigene Objekte... ;)
Das gleiche Problem konnte ich mal mit einem Dauer-Zuweisen-Schalter beheben, d.h. sobald ein Dorfi (Zivilist) sich dem Wald nähert, wurde er per Gebiets-Option irgendwo hin geschickt. Sollte funktionieren...
gibts dann nicht das problem, dass sich die dorfies vor dem wald sammeln, weil sie unbedingt da hin wollen? wäre auch sehr unschön.
Na da hast du ja schon viele schöne Lösungen. Jetzt musst du dir nur noch die beste aussuchen. :P :D
gibts dann nicht das problem, dass sich die dorfies vor dem wald sammeln, weil sie unbedingt da hin wollen? wäre auch sehr unschön.
Also, wenn Gebiet und Position korrekt eingestellt sind (und nicht zu nahe beeinander liegen) sollte das eigentlich kein Problem sein. :confused:
Du solltest natürlich als Bedingung am besten Zeit nehmen, und davon möglichst wenig (so 1-2 sec), damit der Schalter ständig aktiv ist, und nicht nur wenn Dorfis im Gebiet sind. (das wäre dann Bedingung Objekte im Gebiet, in der Endlos-Schleife ist die alleine manchmal fehlerhaft)

Also am besten:

Schalter "Dorfis bei Fuß"
Bedingung: 1 sec
Effekt: Dorfis zuweisen Gebiet-->Position
Trigger: An

Damit solltest du eigentlich gute Ergebnisse erzielen. :)

P.S: Für große Wälder ist mir grad noch ne Lösung eingefallen: Mit dem Klippen-Kopiertrick kann man die unzugänglich machen, ohne das es optisch auffällt. ;)
hey Leute

erst einmal danke für eure Hilfe...
Die meisten Tricks, die ihr mir mitgegegeben habt, kannte ich schon und habe es auch ausprobiert. Das mit dem "unsichtbaren Felsen" und der Schaltereinstellung "Objekt zuweisen" habe ich auch gleich als erstes überdacht, wäre aber aufgrund des Kartenaufbaus 1) eine Mordsarbeit; 2)auf Dauer keine wirkliche Lösung

aus heavengames.com habe ich mittlerweile die KI "unchangeble diplomacy" gefunden, die mich wenigstens ein bisschen zufriedenstellt. Bei dieser KI laufen die meisten Dorfis einfach nur die Karte entlang. Arbeiten tun sie nur zeitweise, so arbeiten z.B. Bauer nur bis zum Ende der Ernte und ziehen anschließend umher (zumindest konnte ich dies während meiner 30 minütigen Beobachtungsphase feststellen).
Was ich dabei schade finde, ist die Tatsache, dass die Bauern nach Ende der Ernte die Felder nicht (auf demselben Fleck Erde) erneuern.
Also wie es aussieht willst du lieber mit einer selbsterstellten AI arbeiten.

erstelle eine Datei mit dem Namen immobile_units_wood.ai ;
erstelle eine Datei mit dem Namen immobile_units_wood.per ;
füge in die *.per folgendes ein:
<pre>

;RESSOURCENABBAU STEUERN
(defrule
(true)
=>
(set-strategic-number sn-maximum-food-drop-distance 10)
(set-strategic-number sn-maximum-wood-drop-distance 0)
(set-strategic-number sn-maximum-gold-drop-distance 10)
(set-strategic-number sn-maximum-hunt-drop-distance 10)
(set-strategic-number sn-maximum-stone-drop-distance 10)
(set-strategic-number sn-food-gatherer-percentage 30)
(set-strategic-number sn-wood-gatherer-percentage 0)
(set-strategic-number sn-gold-gatherer-percentage 30)
(set-strategic-number sn-stone-gatherer-percentage 30)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-percent-civilian-builders 10)
(disable-self))

;FELDER BAUEN
(defrule
(sheep-and-forage-too-far)
(idle-farm-count less-than 1)
(can-build farm)
=>
(build farm))

;HAEUSER BAUEN
(defrule
(housing-headroom less-than 5)
(can-build house)
=>
(build house))

;MILITAEREINHEITEN STEUERN
(defrule
(true)
=>
(set-strategic-number sn-percent-enemy-sighted-response 100)
(set-strategic-number sn-hits-before-alliance-change 25)
(set-strategic-number sn-number-explore-groups 0)
(set-strategic-number sn-percent-attack-soldiers 0)
(set-strategic-number sn-task-ungrouped-soldiers 0)
(set-strategic-number sn-number-attack-groups 0)
(set-strategic-number sn-enemy-sighted-response-distance 10)
(set-strategic-number sn-total-number-explorers 0)
(set-strategic-number sn-relic-return-distance 0)
(disable-self))

</pre>

Die AI baut aber noch keine Gebäude nach. Hier ein Beispiel zum Bau der notwendigen Gebäude (es sind aber nicht alle aufgelistet, das müsste man dann noch dementsprechend erweitern.
Falls du welche benötigst einfach in der "defconst-zeile" anstelle der 0 die gewünschte Zahl eintragen:

<pre>

(defconst Dorfzentrum 0)
(defconst Kaserne 0)
(defconst Schiessanlage 0)
(defconst Stall 0)
(defconst Waffenschmiede 0)
(defconst Burg 0)
(defconst Kloster 0)
(defconst Marktplatz 0)
(defconst Muehle 0)
(defconst Hafen 0)
(defconst Schmiede 0)
(defconst Uni 0)

(defrule
(building-type-count town-center less-than Dorfzentrum)
(can-build town-center)
=>
(build town-center))
(defrule
(building-type-count barracks less-than Kaserne)
(can-build barracks)
=>
(build barracks))
(defrule
(building-type-count archery-range less-than Schiessanlage)
(can-build archery-range)
=>
(build archery-range))
(defrule
(building-type-count stable less-than Stall)
(can-build stable)
=>
(build stable))
(defrule
(building-type-count siege-workshop less-than Waffenschmiede)
(can-build siege-workshop)
=>
(build siege-workshop))
(defrule
(building-type-count castle less-than Burg)
(can-build castle)
=>
(build castle))
(defrule
(building-type-count monastery less-than Kloster)
(can-build monastery)
=>
(build monastery))
(defrule
(building-type-count market less-than Marktplatz)
(can-build market)
=>
(build market))
(defrule
(building-type-count dock less-than Hafen)
(can-build dock)
=>
(build dock))
(defrule
(building-type-count blacksmith less-than Schmiede)
(can-build blacksmith)
=>
(build blacksmith))
(defrule
(building-type-count university less-than Uni)
(can-build university)
=>
(build university))

</pre>

Die Militäreinheiten haben die AI "immobile units".
Das heisst, sie bewegen sich nur um einen sichtbaren Feind anzugreifen, um sich zu verteidigen oder um Schalterbefehle auszuführen.

vielleicht hilft dir das etwas weiter ;) .
@ Günter

boahhh ey danke, dass du schon extra für mich ne Ai-file geschrieben hast, aber leider kenne ich mich mit der erstellung damit überhaupt nicht aus bzw. verstehe gar nicht, wie ich was mach3en soll. ich hatte auch noch nie den nerv mich da ranzuwagen.

vielleicht könntest du mir mal zunächst erläutern, was diese AI alles so drauf hat :)

trotzdem vielen dank
Das kommt jetzt alles natürlich drauf an, wie dein Spieler sonst noch so drauf ist. Was du willst, dass er für Gebäude baut und wie er angreifen soll.
Wenn du uns das sagst, könnte man die KI ja präzisieren.

Um eine zu erstellen, musst du diesen Text einfach in eine Textdatei kopieren, die du aber mit der Erweiterung *per in den Ordner Age of Empires II/AI speicherst. Dann brauchst du noch eine Datei mit der Erweiterung *ai, aber demselben Namen, die aber leer sein muss. Die gehört dann auch in den Ordner.
Danach kannst du die KI im Editor auswählen.