Bedingungen:
1. Mehr als 100 Runden sind gespielt
2. In der GlobalDefinesAlt.xml ist folgendes eingestellt
Achtung Spoiler:
Verliert eine europäische KI alle ihre Städte, so scheidet sie aus.
Es erscheint folgende Meldung:
Achtung Spoiler:
(zu finden in Civ4GameText_TAC.xml unter TXT_KEY_NO_MORE_RESPAWN)
Hab versucht alles wie abgesprochen umzusetzen.
(In der Arbeitsversion im SVN eingecheckt.)
Geändert von raystuttgart (19. Juni 2010 um 17:13 Uhr)
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
Ich habe das mal getestet, mit der Arbeitsversion Revision #52. Leider funktioniert das Feature nicht, ray. Hier ein Save, es wurde mit dieser Version erzeugt. Die Franzosen haben alle Städte verloren, ziehen sich aber nicht zurück.
Ich habe diesen Text umgeschrieben - ich hoffe, so gefällt's:PHP-Code:
<TEXT>
<Tag>TXT_KEY_NO_MORE_RESPAWN</Tag>
<English>Player %s1_player has withdrawn from the new world.</English>
<French>Player %s1_player has withdrawn from the new world.</French>
<German>Zunächst hat %s1_player das Schlachtenglück verlassen - und nun verliert er auch noch die Gunst seines Königs, der es leid ist, zum Gespött der ganzen Welt zu werden. Majestät geruhen, alle Entdecker, Soldaten und Kolonisten aus der Neuen Welt zurück nach Europa zu beordern.</German>
<Italian>Player %s1_player has withdrawn from the new world.</Italian>
<Spanish>Player %s1_player has withdrawn from the new world.</Spanish>
</TEXT>.
Muss ich mir ansehen.
Kann ich erst am Wochenende was dazu sagen.
(Sorry, habe echt erst irgendwann am Wochenende die Möglichkeit und Zeit das Save anzusehen.)
Bei mir hat es funktioniert ...
die Runde darauf war Frankreich ausgeschieden.
(Mit Meldung im Ereignis-Log.)
Hast du direkt aufgehört, nachdem die Städte weg waren ?
Was passiert, wenn du ein paar Runden weiter klickst ?
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
Das habe ich gemacht. In Runde 101 habe ich die französischen Städte komplett erobert. Dann habe ich mehrere Runden weitergeklickt. Alles im Debugmodus mit offen gelegter Weltkarte. Über die Minimap habe ich jede Runde beobachtet, ob die Franzosen vielleicht woanders eine neue Stadt gegründet hatten, das war aber nicht der Fall.
Eine Bitte an die Teamkollegen: Könnte bitte ein anderer mal dieses Feature testen? Und vielleicht zusätzlich noch mein Save. - Danke.
Nur sicherheitshalber:
1. Der Wert KI_RESPAWN_OFF in der GlobalDefinesAlt.xml steht auf 1 ?
2. Du hast ein Neues Spiel angefangen gehabt ?
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
@W.B.:
Könntest du mal versuchen den Franzosen mit Worldbuilder alle Einheiten weg zu nehmen ?
(Auch prüfen, ob da noch ein Schiff von Europa unterwegs ist.)
Eigentlich sollte meine Logik an dem Punkt ansetzen,
wenn die Respawn-Methode aufgerufen wird (also die KI ein neues Schiff und neue Einheiten vom König bekommt),
da dann prüfen, ob die KI keine Städte mehr hat und wenn das zutrifft,
das Erzeugen der Einheiten verhindern, das Ausscheiden der KI veranlassen und eine Meldung für die nächste Runde erzeugen.
Eins darf sicher NICHT passieren:
Wenn die KI ein neues Schiff und neue Einheiten bekommt, stimmt was ABSOLUT nicht.
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
Bin in den Debug-Modus gegangen, habe dann die Franzosen übernommen (die bereits keine einzige Stadt mehr hatten), habe dann sämtliche Einheiten vom Europahafen per Schiff in die Neue Welt gebracht. Nachdem alle Einheiten in Amerika waren, habe ich sie komplett aufgelöst. Folge: Die Partie war augenblicklich verloren, ich kam noch vor Rundenwechsel in die Abspannfenster.
Das ist ja richtig.
Was ist, wenn du sie NICHT übernimmst, sondern nur ihre Einheiten auflöst.
Dann müsst Frankreich normal ausscheiden und die Meldung kommen.
Ich glaube nämlich, dass der "Respawn" nicht ausgelöst wird, solange die KI noch die Möglichkeit hat neue Städte zu gründen.
(Sich also nochmal aufrappeln kann.)
Edit:
Sorry, ich glaube ich hab meine Änderung ein wenig misverständlich ausgedrückt.
P.S.:
Ich wollte das so programmieren. Ich wollt die KI nicht auslöschen, wenn sie noch Chancen hat.
Beispiel:
Sie hat noch 2 Schiffe und 6 Einheiten in Europa rumstehen.
Was ich verhindern wollte, war, dass sie immer und immer wieder neue Einheiten (Schiff und zwei Landeinheiten) bekommt.
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
ray, das war ja das Konzept, das wir beschlossen hatten:Sei doch so lieb und erklär mal im Detail, was du stattdessen umgesetzt hast.* Ein europäischer Computergegner (allerdings nicht die Könige) scheidet nach dem Verlust der letzten Siedlung aus. Alle seine Einheiten verschwinden von der Karte. Dazu kommt die Textmeldung "Der König von x ist der ewigen Kriege in der Neuen Welt müde. Er hat beschlossen, all seine Entdecker und Kolonisten zurück nach Europa zu beordern."
* Dieses Ausscheiden kann erst ab Runde 100 erfolgen. (Eine Anpassung dieser Rundenzahl an die Spielgeschwindigkeit fände ich dabei nicht nötig.)
* Das Ausscheiden der europäischen Computergegner wird als Option eingeführt, die bei Spielstart automatisch aktiviert ist, aber auf Wunsch im Spielstartmenü deaktiviert werden kann.
Ich hab versucht mich möglichst an das Konzept zu halten.
Ich erkläre aber mal, was ich gemacht habe.
Vorher lief das so:
Die KI verliert ihre Städte und Einheiten, die fähig sind eine neue Stadt zu gründen, und hat noch dazu kein Geld mehr um irgendwas zu kaufen.
-> Sie hat also keine Chance mehr irgendwas zu bauen oder kaufen.
-> Sprich sie hatte keine Chance mehr aktiv im Spiel teilzunehmen.
Daraufhin bekam sie von ihrem König die selben Einheiten geschenkt, die sie am Anfang des Spieles bekam.
Das passierte immer und immer wieder.
-> Eine chancenlose KI konnte nicht ausscheiden.
Was passiert jetzt:
Wenn die KI chancenlos ist (und mehr als 100 Runden gespielt und Einstellung auf 1):
(Keine Städte, keine Einheiten die Städte gründen können und kein Geld um Einheiten zu kaufen.)
- Ich verhindere, dass sie vom König Einheiten geschenkt bekommt.
- Ich vernichte die komplette Fraktion (restlichen Einheiten, Diplomatie, ...)
- Ich erzeuge die besprochene Meldung
So sollte es eigentlich funkionieren ... kannst du das bestätigen ?
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
"Keine Einheiten, die Städte gründen können" - außer Schiffen und Artillerie fällt mir da jetzt keine ein, oder?
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)
Nochmal zum Verständnis:
Es gibt eine bestehende Logik zur Berechnung, ob die KI chancenlos ist.
An der habe ich nichts geändert.
Die nutze ich einfach mit.
Ich ändere lediglich die ausgelösten Ereignisse.
(Anstatt ewiges "Einheiten schenken" dann das Ausscheiden.)
Dadurch hatte ich weniger Codeänderungen.
-> weniger Fehlerrisiko
-> weniger Aufwand
Ich persönlich finde es auch realistischer, dass der "Verlust der Städte" nicht die einzige Bedingung (außer Rundenzahl) ist, die das Ausscheiden bestimmt.
Eine KI, die noch zig Schiffe und Einheiten hat, ausscheiden zu lassen ...
Ich bin nicht böswillig vom Konzept abgewichen, ich habe nur versucht das Feature so gut wie möglich umzusetzen.
Vielleicht sollte man dann das Feature umbennen ?:
Eine chancenlose europäische KI kann ausscheiden, sofern bereits 100 Runden gespielt wurden
Geändert von raystuttgart (23. Juni 2010 um 13:33 Uhr)
Teammitgleid dieses Projekt für Colonization:
[Mod] We The People
(Nachfolgerprojekt von Religion and Revolution)
Davor Teammitgleid dieses Projekt für Colonization:
[Mod] Religion and Revolution
Vor-Vorheriges Projekt für Colonization:
[ModMod] ray's Wunschliste
Und wiederum davor Teammitglied von:
[Mod] The Authentic Colonization (TAC)