Spezielle Kampf-KI?

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Ich habs jetzt auch geschafft! Ganz alleine! :P Mit ein bisschen Hilfe von euch...
@Chev: Stell das Script hier mal rein, bitte. Würde mich interessieren! ;)
Hab ein bisschen was aus deinem und Falkes Post übernommen, ein bisschen was in der KI Anleitung gelesen und das hier dann gebastelt. Funktioniert sehr gut auch mit KI Signal (danke Falke!) :-)
Verborgener Text:
(defrule
(event-detected trigger 10)
(unit-type-count-total militiaman-line < 50)
(can-train militiaman-line)
=>
(train militiaman-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total spearman-line < 50)
(can-train spearman-line)
=>
(train spearman-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total scout-cavalry-line < 50)
(can-train scout-cavalry-line)
=>
(train scout-cavalry-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total battering-ram-line < 50)
(can-train battering-ram-line)
=>
(train battering-ram-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total scorpion-line < 50)
(can-train scorpion-line)
=>
(train scorpion-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total knight-line < 50)
(can-train knight-line)
=>
(train knight-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total camel-line < 50)
(can-train camel-line)
=>
(train camel-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total archer-line < 50)
(can-train archer-line)
=>
(train archer-line)
)

(defrule
(event-detected trigger 10)
(unit-type-count-total skirmisher < 50)
(can-train skirmisher)
=>
(train skirmisher)
)

(defrule
(event-detected trigger 11)
=>
(acknowledge-event trigger 10)
(acknowledge-event trigger 11)
)

(defrule
(food-amount < 500)
=>
(cc-add-resource food 800)
)

(defrule
(wood-amount < 200)
=>
(cc-add-resource wood 500)
)

(defrule
(gold-amount < 500)
=>
(cc-add-resource gold 1000)
)

(defrule
(true)
=>
(set-strategic-number sn-minimum-attack-group-size 1)
(set-strategic-number sn-maximum-attack-group-size 1)
(attack-now)
)
Eine Frage: Bildet die KI bei deiner Lösung auch verschiedene Einheiten in einem Gebäude aus? Weil soweit ich weiß wird der Code einfach von oben nach unten durchgeführt. Und wenn bereits mit der Ausbildung eines Milizsoldaten begonnen wurde, kann bei einer KI kein Speerkämpfer mehr entwickelt werden.

Nur so eine Idee, verbessert mich, wenn ich falsch liege.
Ich verstehe deine Frage jetzt nicht, ganz ehrlich ... Denke mal, der Spieler hat mehrere Kasernen, kann also ohnehin mehrere Einheiten parallel ausbilden.
Hm, stimmt du hast recht. Bei mehreren Gebäuden sollte das funktionieren.
NEUE FRAGEN

1) Ist es möglich diese KI per Scenario in gameranger weiter zu reichen, sodass ich daraus ein MP Scenario basteln kann? Bzw. wäre es generell möglich, dass wenn beide Spieler die spezielle KI haben, dass die Standard KI durch die eingesetzte ausgewechselt wird? (MP Spiele starten ja immer über Standard-Spiele-Starter)

2) Ist es möglich PER SCHALTER oder irgendwie anders außer durch KI, den Gegner anzutreiben die ganze Zeit Einheiten auszubilden? Das wäre dann die Workaround-Lösung, falls die obige Möglichkeit nicht funktioniert...

3) Wie lauten die KI Codezeilen, damit Dorbewohner Gold hacken?
Ich möchte eine KI für meinen Verbündeten, der soll immobile sein mit allen Einheiten. Nur die Dorbewohner, die er durch Schalter erhält, sollen die nächst liegenden (sie sind für den Spieler sichtbar) Goldminen abarbeiten.
Im Moment werden die per Schalter erschaffenen Dorfis per zuweisen Effekt auf einen Goldhaufen zugewiesen. Ist jedoch dieser Haufen weg, werden die neuen Dorfis auf Nichts mehr zugewiesen und bleiben stehen.


Danke :)
Zum dritten Punkt: Hier mal alle relevanten Dorfi-Befehle, mit den Zahlen einfach experimentieren, bis der gewünschte Effekt eintritt.


Code: Alles auswählen


(defrule
=>
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-percent-civilian-builders 5)
(set-strategic-number sn-percent-civilian-gatherers 95)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-cap-civilian-gatherers 100)
(set-strategic-number sn-food-gatherer-percentage  75)
(set-strategic-number sn-gold-gatherer-percentage  25)
(set-strategic-number sn-stone-gatherer-percentage 0)
(set-strategic-number sn-wood-gatherer-percentage  0)
(set-strategic-number sn-maximum-gold-drop-distance 20)
(set-strategic-number sn-maximum-stone-drop-distance 20)
(set-strategic-number sn-maximum-food-drop-distance 20)
(disable-self)
)

Zum zweiten Punkt: Deine KI müsste eigentlich gut und funktionierend ausbilden, eine Schaltervariante ist da überflüssig. Nur immer schön an die Cheat-Rules denken! ;)

Zum ersten Punkt: Keine Ahnung, ich meine Janworks hat da mehr Erfahrungen mit.


EDIT:
Hier nochmal die Zeilen, damit der PC auch ein Bergarbeiterlager baut (falls zum Beispiel sein erstes im Editor platziertes vom Spieler vernichtet wurde):

Code: Alles auswählen

(defrule
(resource-found gold)
(building-type-count-total mining-camp < 1)
(dropsite-min-distance gold > 7)
(can-build mining-camp)
=>
(build mining-camp)
(chat-local-to-self "gold place")
)
The_Chevalier hat geschrieben:1) Ist es möglich diese KI per Scenario in gameranger weiter zu reichen, sodass ich daraus ein MP Scenario basteln kann? Bzw. wäre es generell möglich, dass wenn beide Spieler die spezielle KI haben, dass die Standard KI durch die eingesetzte ausgewechselt wird? (MP Spiele starten ja immer über Standard-Spiele-Starter)
Frage a): Ja, du kannst ein Szenario basteln und dort die KI dann angeben. Wenn du das Szenario daraufhin per MP weiterreichst (sei es sogar über die spielinterne Dateiübertragung), ist die KI ebenfalls enthalten. Das wurde jüngst gestern Abend wieder bewiesen.

Frage b): Nein, direkt auswählen können wirst du die KI nie. Es sei denn, du überschreibst die Standard-KI und gibst jedem deine modifizierte gamedata_x1.drs. ;)


EDIT @Henning: Auch wenns im Moment noch nicht ganz so viel bringt: Du kannst für KI-Codes auch einfach das [noparse][ki][/ki][/noparse]-Tag verwenden, dann wird der Code irgendwann auch mal richtig formatiert. Diese Funktion gibts zwar noch nicht wirklich, aber ich plane sie in naher Zukunft vollständig einzubauen. :)

Sähe im Moment dann so aus:
[ki](defrule
(resource-found gold)
(building-type-count-total mining-camp < 1)
(dropsite-min-distance gold > 7)
(can-build mining-camp)
=>
(build mining-camp)
(chat-local-to-self "gold place")
)[/ki]
Danke euch beiden! :)

Noch was:
Können dann auch .mp3-Datein per gameranger übertragen werden? Quasi das voll synchronisierte "Meisterwerk" laden?
Auf das mit der KI-Übertragung würd ich mich nich verlassen. Janworks ist bisher der Einzige bei dem das funktioniert hat. Dieses Problem wurde bereits öfters und weit verbreitet festgestellt. Eine 100%ig funktionierende Lösung gibt es bisher nicht.
MP3-Dateien werden nicht übertragen. Generell übeträgt weder Hamachi noch Gameranger was sondern nur AOE-II.
Björn_Jernside hat geschrieben:Auf das mit der KI-Übertragung würd ich mich nich verlassen. Janworks ist bisher der Einzige bei dem das funktioniert hat.
Das finde ich ausgesprochen merkwürdig, da:
1. ...es bisher mehrere Male mit mindestens fünf verschiedenen Arena-Mitgliedern und mehrmals zuhause geklappt hat und
2. ...ein kompiliertes Programm die Eigenschaft hat, auf dem jedem Rechner gleich auszusehen. Besonders in Sachen Multiplayer, wo eine einzige Protokollabweichung logischerweise zum Absturz führen müsste. Vielleicht haben die Leute, von denen du diese Infos hast, einfach nicht die Idee gehabt, zwei bestimmte kleine Einstellungen richtig zu setzen...

Du brauchst:
- Karten-Editor: Bei jedem Computerspieler die KI festlegen, speichern und am besten einmal testen.
- MP-Einstellungen: Bei allen Computerspielern "Computer" auswählen, alles andere lassen, wie es ist (bis auf vllt. die Teams).

Versuchs einfach mal. :)


@MP3s:
Dass das funktioniert, ist unwahrscheinlich. KI-Skripte werden nachweislich in die SCX-Dateien eingespeichert (auch wenn mir die Umstände nicht immer klar sind), MP3s meines Wissens aufgrund der Dateigröße allerdings nicht.
Björn_Jernside hat geschrieben:Auf das mit der KI-Übertragung würd ich mich nich verlassen. Janworks ist bisher der Einzige bei dem das funktioniert hat.
Muß ich energisch widersprechen und Janworks Beistand geben:
es hat wie schon gesagt bisher funktioniert mit Janworks, Braggl, Chriss, Azrael und meiner Wenigkeit. :P
Janworks hat geschrieben:Vielleicht haben die Leute, von denen du diese Infos hast, einfach nicht die Idee gehabt, zwei bestimmte kleine Einstellungen richtig zu setzen...
Das glaube ich dann auch mal stark.
Dass die angloamerikanische Leitkultur-Szene vom allwissenden AoK Heaven das angeblich nicht hinbekommt, ist wie man sieht kein Argument. :rolleyes:
Man muß auch nicht alle Behauptungen glauben, v.a. wenn sie Fakten widersprechen...
Zumindest mit dem Umweg einer gehosteten MP-Map war es bisher problemlos machbar!
Es ist auch jeder Irrtum ausgeschlossen, daß stattdessen doch die Standard-KI geladen wurde.
Jans KI war in jeder Hinsicht unverkennbar... :D
Björn hat geschrieben:Janworks ist bisher der Einzige bei dem das funktioniert hat. Dieses Problem wurde bereits öfters und weit verbreitet festgestellt. Eine 100%ig funktionierende Lösung gibt es bisher nicht.
Haha, zu gut, immer wieder der Björn! Kann mir das bildlich vorstellen, wie er mit Falten auf der Stirn vor'm Rechner sitzt und sich sagt: "Es kann nicht sein, was nicht sein darf!" und immer, immer wieder dem Jan in die Parade fährt! M-A-G-I-C!! :D
:P
Baba hat geschrieben:angloamerikanische Leitkultur-Szene
Machst du wieder Politik, Baba? :D
Henning hat geschrieben:
Baba hat geschrieben:angloamerikanische Leitkultur-Szene
Machst du wieder Politik, Baba? :D
Abah! Igitt, nimm Er das Wort weg! :klopfklopf: :P
Wenn sowas schon Politik wäre, wär die Welt voller potentieller Kanzler. ;)
(Aber diese unwidersprochen hingenommene angloamerikanische Möchtegern-Leitfigurenrolle in allen Dingen, vom Fußball bis zur Finanzwirtschaft, nervt einen tatsächlich über die Jahre allmählich.)
In diesem Falle geht's auch bei mir aber auch eher um das, was du schon spöttisch angemerkt hast:
"Es KANN nicht wahr sein, was nicht wahr sein darf (d.h. nicht auf Heaven steht)."
(Regieanweisung: im Hintergrund höre man dumpf das melancholische Knirschen einstürzender Welten) :D

Ich bin ja selbst bei solchen Belangen außerhalb meiner technischen Kompetenz ja auch immer skeptisch - dank meinem berühmten Pragmatismus reicht's mir aber, wenn's denn (irgendwie) funktioniert. ^^
(Und wenn Björn nicht solche Angst vor einer Abreibung hätte, hätte er sich längst selbst auch von den "Janwork'schen Evangelien" überzeugen können. :D )
Jan dann schick ich dir am Mo ma ne MP-Map di seit Jahren fertig bei mir herumgammelt ...
Tschab meinte damals die geht nicht, weil die Einheiten die eigentlich Immobile sein sollte einfach rumwuselten
Björn_Jernside hat geschrieben:Jan dann schick ich dir am Mo ma ne MP-Map di seit Jahren fertig bei mir herumgammelt ...
Tschab meinte damals die geht nicht, weil die Einheiten die eigentlich Immobile sein sollte einfach rumwuselten
Gehen tut sie dennoch, bloß hat
Verborgener Text:
[ki](set-strategic-number sn-task-ungrouped-soldiers 0)[/ki]
(warum auch immer) in MP-Maps keine Wirkung. Der Rest funktioniert wie in Singleplayer-Maps tadellos :> .
Hi Chev,

freut mich dass du es geschafft hast.
Allerdings wärs auch einfacher gegangen.
Die Abfragen mit "can-train" <EINHEIT> könntest du dir sparen, da du ja sagtest, dass der Compi unendlich Resourcen hat.

Und eleganter wäre es mit goals.
Aber nur so am Rande... - die Hautsache ist, dass es funktioniert. :)
@Draygon: Und was bedeutet das für das Spielverhalten, wenn die Zeile nich geht?
Und was bedeutet das für das Spielverhalten, wenn die Zeile nich geht?
Das drüfte bedeuten, dass sich bei Angriffen nicht alle Soldaten zu Trupps formieren, sondern einzelne Soldaten eventuell einzeln losstürmen. Dürfte nicht so dramatisch sein.
Könnte mich aber insgesamt auch irren ...