Seite 1 von 2
Re: Meine KI klappt nicht ;-(
Verfasst: Samstag 24. Juni 2006, 17:54
von pike
Um ins Scripten einzusteigen hab ich mit das KI-Tutorial geschnappt und los getippt. Ich wollte folgendes machen:
Spieler zahlt alle 10 Sekunden 5 Nahrung. Wenn Spieler keine Nahrung mehr hat, verliert er.
Das habe ich geschrieben:
(defrule
(food-amount == 0)
=>
(resign)
)
(defconst my-timer 1)
(defrule
(true)
=>
(enable-timer my-timer 10)
)
(defrule
(timer-triggered my-timer)
(food-amount >= 5)
=>
(tribute-to-player 2 food 5)
(disable-timer my-timer)
(enable-timer my-timer 10)
(disable-self)
)
(defrule
(true)
=>
(set-strategic-number sn-maximum-food-drop-distance 0)
(set-strategic-number sn-maximum-wood-drop-distance 0)
(set-strategic-number sn-maximum-gold-drop-distance 0)
(set-strategic-number sn-maximum-stone-drop-distance 0)
(set-strategic-number sn-maximum-hunt-drop-distance 0)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-task-ungrouped-soldiers 0)
(disable-self)
)
Klappt aber nich. Es kommt zwar keine Fehlanzeige aber es passiert auch nix.
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 01:11
von Günter
Welcher Spieler soll denn den Tribut zahlen?
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 11:11
von pike
Spieler 1. Das soll einen Nahrungsverbrauch simulieren
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 13:29
von Günter
Kann sein, das es mit Spieler 1 nicht funktioniert.
Man muss auch sicherstellen, das Spieler 1 einen Marktplatz hat.
Du kanns auch in der KI abfragen, ob Spieler 1 einen Marktplatz hat:
(defrule
(building-type-count market less-than 1)
=>
(chat-to-player 1 "Baue einen Marktplatz")
(disable-self))
Besser wäre aber vielleicht mittels des Timers Spieler 1 dazu aufzufordern, selbst den Tribut zu entrichten und so den Nahrungsverbrauch zu simulieren.
Und wenn er keinen Tribut zahlt oder keine Nahrung mehr hat verliert er.
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 13:55
von pike
Gut. Vielleicht platziere ich auch einen MArktplatz am !"§$% der KArte auf einem Invisible Tale. Habt ihr grad ma einen Link parat?
PS: Wie könnte ich es regeln, dass Gaia pro verlorenes Wildschwein x Nahrung an deinen Spieler zahlt? Auf den Fact kommt es mir an...
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 16:41
von Björn_Jernside
Da musst du für jedes Wildschwein ein Schalter machen
Bedingung1: Objekt vernichten (Wildschwein)
Effekt 1: Tribut entrichten
Sorge dafür das der Tributsendende Spieler die Nahrung auch hat
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 17:08
von pike
lol, es ging mir ja gerade darum eine Lösung ohne Schalter zu machen, da es sonst zu kompliziert ist. Außerdem wollte ich ein Wildschwein-Respawn machen, dann würde es ja auch nicht klappen. es ging mir jetzt um eine KI.
Re: Meine KI klappt nicht ;-(
Verfasst: Sonntag 25. Juni 2006, 18:36
von Björn_Jernside
Dann ist dein Problem leider nicht zu deiner Zufriedenstellung lösbar
Re: Meine KI klappt nicht ;-(
Verfasst: Dienstag 27. Juni 2006, 17:17
von pike
Schade...aber ich warte erst mal was Günni sagt.
Wegen meiner eigentlichen Frage: Ich hab das ganze jetzt mal mit Marktplatz probiert, funkttioniert immer noch nicht. Warum?
Re: Meine KI klappt nicht ;-(
Verfasst: Dienstag 27. Juni 2006, 20:41
von Günter
Wie ich schon sagte:
Mit Spieler 1 wird das wohl nicht gehen. Man kann einem menschlichen Spieler keine KI zuweisen - eben dasselbe Problem ist der Spieler GAIA. Deshalb geht auch das Abfragen der Wildschweine nicht - zumindest ist mir auf üblichem Weg nichts bekannt.
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 28. Juni 2006, 00:08
von Björn_Jernside
Ich versteh nicht warum du dein Keine-Nahrung-führt-zur-Niederlage-Problem nicht mit Schaltern lösen willst.
In "Verschollen" habe ich das ohne KI gemacht.
Aller X Sekunden werden Spieler 1 Y Nahrung abgezogen
Ist die Nahrung auf 0 gesunken und das nächste Zeitintervall erreicht, so verliert Spieler 1
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 28. Juni 2006, 09:58
von Barbarossa
Wie ich schon sagte:
Mit Spieler 1 wird das wohl nicht gehen. Man kann einem menschlichen Spieler keine KI zuweisen - eben dasselbe Problem ist der Spieler GAIA. Deshalb geht auch das Abfragen der Wildschweine nicht - zumindest ist mir auf üblichem Weg nichts bekannt.
Also auf AoK Heaven gibt es zumindest zwei KI's, die für Spieler 1 gedacht sind (eine heißt glaub ich HUMAN LEAGUE o.s.ä.).
Sind quasi als Hilfs-KI gedacht für wohl unerfahrene Spieler, indem sie das Wirtschaftsmanagement steuert.
Und Ingo hat doch bei Ulio glaub ich auch eine KI gemacht, die Pfeilschüsse zählt.
Vielleicht hilft ihm eine solche KI als Ausgangsbasis weiter.
Aber wenn es nur ums Nahrungszahlen und "Bei- 0 Nahrung -Verlieren" geht, wäre wie Björn schon sagte das Problem schaltertechnisch besser gelöst.
Und das kann man schon mit zwei Schaltern ganz unkompliziert lösen - jedenfalls leichter als mit KI!
Wenn es dagegen für NEU erschaffene Wildschweine ö.ä. beim Erlegen Punkte geben soll, dann ist das nur mit KI lösbar.
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 28. Juni 2006, 14:24
von Björn_Jernside
Eine Ki kann Pfeile zählen?
Das könnte man gut in RPGs verwenden.
Mann kann wenn man alle verschossen hat erst wieder schießen wenn man wieder Pfeile gefunden hat.
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 28. Juni 2006, 15:51
von pike
Das mit den PFeilen ist mir auch neu
Ja das mit den schaltern wusst ich auch, wollts aber mal anders probieren...
Das mit den Wildis is schade.
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 28. Juni 2006, 19:04
von Barbarossa
Eine Ki kann Pfeile zählen?
Das könnte man gut in RPGs verwenden.
Mann kann wenn man alle verschossen hat erst wieder schießen wenn man wieder Pfeile gefunden hat.
Habt ihr ein Kurzzeit-Gedächtnis!
Das war doch bei Ulio, wo man mit dem General irgendwo hin sollte, ohne daß ein Yeri einen Schuß auf ihn abfeuert.
Es gibt auch eine bei AoK Heaven die ähnlich funktioniert.
Heißt "projectile detect.ai".
Bin aber noch nicht dazu gekommen die zu testen, zumal ich mich mangels Zeit und Lust mit dem Thema KI-Skripte an sich noch nie beschäftigt hab.
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 28. Juni 2006, 20:40
von Günter
Mit der UnitID kannst du jedes erdenkliche Objekt in AOE 2 in der KI abfragen.
Die Pfeile bei Ingo z.B. hat der Computerspieler 1-8 abgefeuert, folglich kann man die Pfeile des Spielers zählen.
Das gienge etwa so:
(defrule
(players-unit-type-count 3 Pfeil greater-than 0)
=>
(chat-to-all "Spieler 3 hat einen Pfeil abgeschossen!")
(disable-self))
Anstelle von Pfeil muss die Objekt-ID stehen und 3 ist hier der Computerspieler, der den Pfeil geschossen hat.
Das Problem beim Wildschwein ist, das das Wildschwein ein Gaia-Objekt ist, und GAIA kann man leider nicht als Spieler abfragen. Ich lasse mich jedoch gerne eines besseren belehren, wenn jemand eine Lösung kennt.
Für die Tribute hat Björn bereits eine gute Lösung genannt.
Die Schalterlösung ist absolut einwandfrei, wobei mir besser gefallen würde, wenn man die Tribute selbst entrichten müsste. Natürlich nicht alle 2 Minuten.
EDIT: die Unit-ID findet Ihr in GENIED
Re: Meine KI klappt nicht ;-(
Verfasst: Dienstag 15. August 2006, 07:32
von Barbarossa
Will nicht extra einen neuen Thread aufmachen, daher stelle ich die Frage mal hier:
Zum (mir wenig geläufigen) Thema KI-Skripten:
ich habe einige gute Fremd-KI's, die ich für meine Szenarien verwenden will, allerdings stören mich bei einigen die vor allem zu Spielbeginn nervigen Chateinblendungen der KI (ihr wißt schon: diese martialischen Halbstarkensprüche à la "Hau dich tot" etc.
). Zerhaut dermaßen die Intro-Atmosphäre.
Ist es (auch für einen KI-Laien
) ein geringer Aufwand, diesen Chat-Befehl im KI-Skript zu finden und zuentfernen?
Ich würde es schon gern selbst machen, da ich eine Menge verschiedener KI's ausprobiere und evtl. auch irgendwann noch versuchen will, das KI-Verhalten selbst an meine Anforderungen anzupassen.
Re: Meine KI klappt nicht ;-(
Verfasst: Dienstag 15. August 2006, 15:01
von Joe
erstellt: 15. August 2006 06:32
[...]
Ist es (auch für einen KI-Laien ) ein geringer Aufwand, diesen Chat-Befehl im KI-Skript zu finden und zuentfernen?
Wow, der frühe Vogel fängt den Wurm
Du solltest einfach mal nach
suchen, und die betreffenden Befehle löschen oder auskommentieren.
Re: Meine KI klappt nicht ;-(
Verfasst: Dienstag 15. August 2006, 21:17
von Barbarossa
Wow, der frühe Vogel fängt den Wurm
Ja, zumal wenn man bedenkt daß ich eigtl. Urlaub habe...
Danke für den Tip.
Ich hab mir letzt zwei AI Editor-Programme wo runtergeladen (Aok Ai editor und Ai Builder), aber noch keine Zeit gehabt mich damit näher zu befassen.
Läd man dann im Prinzip einfach ne KI-Datei und verändert dann nach Belieben den Quelltext?
Wo kann man denn nachlesen, welcher Befehl welche Funktion hat???
Re: Meine KI klappt nicht ;-(
Verfasst: Mittwoch 16. August 2006, 10:17
von Joe
In Deinem AOE Ordner sollte sich irgendwo eine CPSB.DOC befinden. Das Dokument bietet eine vollständige Übersicht mit mehr oder weniger ausführlichen Erklärungen und Beispielen zum Thema KI.
Ansonsten empfehle ich für den Einstieg die hier vielzitierte
http://www.nocheineaoe.de/
Da gibt's unter anderem auch eine deutsche Übersetzung des obigen Dokuments.
Interessant ist es auf jeden Fall sich die Skripte anderer Leute anzusehen und zu lernen...
Zum Bearbeiten der Skripten kannst Du theoretisch jeden x-beliebigen Texteditor benutzen.