Zitat von
Pfeffersack
Hmm, das sollte natürlich wirklich nicht sein. Leider keine Sache die man durch eine kleine Änderung in den Griff bekommt...ich schau mir das heute abend genauer an, ein paar Ideen hab ich zumindest schon mal...
Wie versprochen meine Gedanken zum von Writing Bull geschilderten Problem...
Ausgelöst wird das ganze durch die stark erhöhten Werte von iRefuseToTalkWarThreshold (=Zeispanne nach Kriegsbeginn in der keine Verhandlungen akzeptiert werden). Sie liegen seit dem Diplomatie-Update zwischen 10 und 50 für die einzelnen Oberhäupter. Erschwerend kommt hinzu dass sich der Wert verdoppelt, wenn der betroffene Anfürher den Krieg begonnen hat. Das führt im Extermfall dazu, dass Anführer über 100 Runden nicht gesprächsbereits sind.
Vielleicht fragt sich jetzt mancher, wieso ich so extreme Werte dann überhaupt zugelassen habe...die Antwort ist, dass ich damit zum einem einer
Hauptschwäche der KI abhelfen will - dem zu bereitwilligen Friedenschluss, wenn sie am Gewinnen eines Krieges ist. Das sich kurzfristig und jederzeit (und dazu noch verhältnismäßig günstige) "Herauskaufenkönnen" aus jeder Bedrohung empfinde ich als unrealistisch und spielspaßmindernd. Zum anderen bin ich davon ausgegangen, dass "iRefuseToTalkWarThreshold" ohnehin ignoriert wird, wenn die KI bös am verlieren ist und/oder in einen Mehrfrontenkrieg geraten ist.
Eine direkte einfache und perfekte Lösung gibt es nicht, zumindest nicht durch XML-Änderungen. Es wäre möglich o.g. Wert wieder etwas zurückzuschrauben - in diesem Maße vermindert sich dann das Problem, leider aber auch die positiven Effekte.
Daher würde ich das ungerne machen, zumindest nicht isoliert... u.U. könnten Änderungen an folgenden Parametern eine solche Änderung aber sinnvoll machen:
iMakePeaceRand - im Prinzip eine Art Antagonist von iRefuseToTalkWarThreshold, der eine Aussage darüber trifft, wie wahrscheinlich es ist, dass eine KI um Frieden ersucht (nach dem Auslaufen von der über iRefuseToTalkWarThreshold definierten Zeitspanne!) In der Theorie könnte man also die "Kriegsausdauer" auch hierüber steuern...Leider gibt es zwei Probleme - der Parameter hat keinen Einfluss darauf, ob die KI eine unterbreitetes Friedensangebot akzeptiert und vorallem hat er null Wirkung auf Friedensangebote ggü. dem menschlichen Spieler (die es nicht gibt - was bereits im Civ4 Code so festgelegt ist)
Die Global Defines enthält folgende Tags...
Code:
<DefineName>WAR_SUCCESS_DEFENDING</DefineName>
<iDefineIntVal>3</iDefineIntVal>
<DefineName>WAR_SUCCESS_ATTACKING</DefineName>
<iDefineIntVal>4</iDefineIntVal>
<DefineName>WAR_SUCCESS_UNIT_CAPTURING</DefineName>
<iDefineIntVal>1</iDefineIntVal>
<DefineName>WAR_SUCCESS_CITY_CAPTURING</DefineName>
<iDefineIntVal>10</iDefineIntVal>
...die bestimmen wie die KI ihren Erfolg in einem Krieg misst. Das wird sich ziemlich sicher auf den Preis auswirken, der beim Friedensschluss verlangt bzw. gezahlt wird, vielleicht auch auf die Bereitschaft generell. Vielleicht kann eine Erhöhung dieser Werte erreichen, dass die KI einen guten Kriegsverlauf stärker gewichtet bei ihren entscheidungen? Aus meiner Sicht wäre es dann zumindest mal teurer sich rauszukaufen...leider kenne ich die genaue Wirkungsweise nicht bzw. ich weis nicht, in welche Formeln diese Werte wie einfliessen.
Ein letzter Punkt, der u.U. noch zu dem von WB beschriebenen Phänomen führt - die TAC-Oberhäupter sind momentan tendenziell eher mutig eingestellt (wie sehr genau hängt vom Temperament ab), d.h. sie haben auch keine Probleme einen stärkeren Gegner anzugreifen. Würde man dies zurückfahren, bannt das zwar weder Mehrfrontenkriege noch macht es die KI in ausweglosen Situationen gesprächsbereiter (zumindest ist mir eine solche Wirkung nicht bekannt), es würde aber eben solche Situationen unwahrscheinlicher machen.
Da insgesamt betrachtet vieles im unklaren liegt, was die KI und ihre Friedensbemühungen angeht, würde ich ganz gerne erst noch etwas recherchieren, bevor ich Änderungen in Angriff nehme. Folgende Punkte wären aus meiner Sicht wichtig:
* Wie absolut wirkt "iRefuseToTalkWarThreshold"?
* Falls es Ausnahmen gibt...wie sind sie definiert und wie zu ändern?
* Wäre es möglich der KI auch wieder beizubringen dem menschlichen Spieler Frieden anzubieten?
* Gibt es eine Möglichkeit der KI beizubringen selektiv Friedensschlüsse zu verweigern, d.h. wenn sie einen Krieg gewinnt?
Der letztere Punkt mag schwer umsetzbar sein, unmöglich ist es aber nicht (jdog500 hat grade vor einigen Tagen in seinem KI-Mod für Civ4 BtS exakt das der KI beigebracht - sie verfolgt dort nun aktiv Siegbedingungen und kämpft auch entschlossen, wenn sie jemanden vom Gewinnen abhalten will).
Die anderen Fragen würde ich parallel auch mal bei den Fanatics posten...da gibts einen Thread der sich mit der KI-Logik hinter Kiegserklärungen befaßt, wo das nicht schlecht reinpasst... Natürlich freu ich mich auch, wenn hier jemand Antworten hat