Nach etwas längerem Testen denke ich, dass der Fehler aus der neuen .dll kommt.
Windows läuft aber wie gesagt Problem los.
Nach etwas längerem Testen denke ich, dass der Fehler aus der neuen .dll kommt.
Windows läuft aber wie gesagt Problem los.
Achtung Spoiler:
So, v26 von PB_PAE_6.17 ist jetzt hier zu finden.
Wie gewohnt die Zipdatein in Sid Meier's Civilization 4 Complete\Beyond the Sword\Mods entpacken.
Da wir fleißig Pythonfehler korrigiert haben, sollte alle bekannten Fehler behoben sein - die Pythonänderungen von PAE7 sind mit drin.
Die betrifft nicht die 2 neuen Techs und 3 neuen (Spezial)Einheiten.
Die Startverknüpfung muss eventuell wieder auf PB_PAE_6.17 geändert werden.
Läuft auf meinem Linux.
Achtung Spoiler:
Muss ich das Save nochmal machen?
Meine Stories:
Civ4 PAE - Valheim - Transport Fever 2 - Subnautica - Planet Zoo - Sons of the Forest
Achtung Spoiler:
Ja, leider.
Wir haben eine neue (alte) .dll, damit ist die Savegamekompatibilität nicht gegeben.
Achtung Spoiler:
Also mit dem "hier" von oben? Und welche .dll?
Ladet ihr mir das alles nochmal gesammelt hoch?
Meine Stories:
Civ4 PAE - Valheim - Transport Fever 2 - Subnautica - Planet Zoo - Sons of the Forest
Achtung Spoiler:
Den Mod von hier (in #1067) ist alles - genau wie vorher der PB_PAE_7_final.
Also den Mod herunter laden, den eventuell noch vorhandenen PB_PAE_6.17 Ordner komplett löschen und dann das PB_PAE_6.17_v26.zip "Hier entpacken".
Achtung Spoiler:
Von Rob hatte ich damals aber auch noch den PB Wizzard mit einigen .exe und .dll bekommen... Einfach Mod kopieren und Save erstellen war da nicht...
Meine Stories:
Civ4 PAE - Valheim - Transport Fever 2 - Subnautica - Planet Zoo - Sons of the Forest
Achtung Spoiler:
Ich alter Mann bin nicht ganz so schnell, aber jetzt hast du alle Angaben per PN.
Aber an jenem Morgen war es Magie gewesen. Und es hörte nicht auf, Magie zu sein,
nur weil man [inzwischen] eine Erklärung dafür hatte ... (Terry Pratchett)
Bei all dem Blödsinn den ich bisher erzählt habe, bleibt als Körnchen Wahrheit über:
Betroffen sind die Version PAVII, PB 6.17, PB 7
Der CtD wurde bisher immer von KI-Legionen mit General (Leader) und Fourage ausgelöst.
Man kann den CtD in "CvGameUtils" bei "def AI_unitUpdate" abfangen, die Ursache kann aber auch in anderen Funktionen versteckt sein.
Mein bisheriger Fix hat mehr geschadet als genützt und die KI fast vollständig deaktiviert.
Achtung Spoiler:
Meine jetzige Lösung (für 6.17 im Anhang) verhindert die bekannten CtD
Ich filter jetzt am Ende von AI_unitUpdate direkt vor "return False" die verdächtigen Einheiten aus.
Dabei werden bei der KI nur noch einige Generäle deaktiviert
canUdgradeUnit ist wieder hergestellt
Weil die Ursache nicht erkannt und behoben ist, können jederzeit neue CtD auftreten.
Müssen wir einfach weiter beobachten....
Anmerkung: Ich habe die Befehle für "Fourage" nicht gefunden. Geraten ist das
Falls das so geht, bräuchte ich hoffentlich weniger Generäle bei der KI zu deaktivierenCode:if pUnit.isHasPromotion(gc.getInfoTypeForString("PROMOTION_FOURAGE")):
Aber an jenem Morgen war es Magie gewesen. Und es hörte nicht auf, Magie zu sein,
nur weil man [inzwischen] eine Erklärung dafür hatte ... (Terry Pratchett)
PROMOTION_FORM_FOURAGE müsste das sein, ist ja eine Formation. Hat es vielleicht damit zu tun, dass nur berittene Einheiten Fourage nehmen können?
Du meinst, wenn eine Einheit vom Pferd absteigt, wird vergessen die Fourage-Formation zu löschen?
An welcher Stelle steigt den ein General vom Pferd?
Aber an jenem Morgen war es Magie gewesen. Und es hörte nicht auf, Magie zu sein,
nur weil man [inzwischen] eine Erklärung dafür hatte ... (Terry Pratchett)
Meine Stories:
Civ4 PAE - Valheim - Transport Fever 2 - Subnautica - Planet Zoo - Sons of the Forest
Achtung Spoiler:
Die Formation ist es leider nicht, wenn dann ist das Absteigen an sich verbugt.
Kein CtD:
Code:if pUnit.isHasPromotion(gc.getInfoTypeForString("PROMOTION_LEADER")): if pOwner.getUnitClassCount(gc.getInfoTypeForString("UNITCLASS_PRAETORIAN")) == 0: if pUnit.isHasPromotion(gc.getInfoTypeForString("PROMOTION_FORM_FOURAGE")): return True
Weiterhin CtD: Bei der Einheit stimmt also etwas anderes nicht
Code:if pUnit.isHasPromotion(gc.getInfoTypeForString("PROMOTION_LEADER")): if pOwner.getUnitClassCount(gc.getInfoTypeForString("UNITCLASS_PRAETORIAN")) == 0: if pUnit.isHasPromotion(gc.getInfoTypeForString("PROMOTION_FORM_FOURAGE")): PAE_Unit.doUnitFormation(pUnit, gc.getInfoTypeForString("PROMOTION_FORM_KEIL"))
Aber an jenem Morgen war es Magie gewesen. Und es hörte nicht auf, Magie zu sein,
nur weil man [inzwischen] eine Erklärung dafür hatte ... (Terry Pratchett)
Dem Spiel ist es ziemlich egal, ob eine Einheit eine Beförderung hat, die sie nicht erhalten kann. Man kann im WB jede Beförderung vergeben, ob sie Sinn macht oder nicht. Nur bei bestimmten Werten (Rückzugschance über 80%, Abfangchance über 100%) führt das dazu, dass keine weiteren Beförderungen mehr vergeben werden können, weil die neue Beförderung den kritischen Wert übersteigt - selbst wenn sie ihn nicht ändert.
That's why I am here: Mein Mod
Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude
Die aktuelle Story zum Mod:
Die Vereinigten Staaten von Amerika
Alte Stories zu alten Versionen:
Alte Storys
Rob: du hast dir ja schon ziemlich den Kopf zerbrochen
Jetzt, wo ich aus dem Urlaub wieder zurück bin, kann ich mich ja der Sache mal annehmen.
Habt ihr ein Save für mich? Und muss ich es mit PAE 6.17 aufmachen? oder ist das mit dem noch inoffiziellem PAE v7 erstellt worden?
Und wie ist das genau:
Also es handelt sich um einen General (PROMOTION_LEADER sowie im SDK/Py isLeader()).
Ist es eine bestimmte Einheit (UNIT_TRIBUN) oder geschieht das auch mit UNIT_LEGION, UNIT_PRAETORIAN,....
Civ-spezifisch (CIVLIZATION_ROME) isses nicht?
Passiert es beim Bewegen, beim Angreifen, beim Verteidigen oder rein beim Aktivieren der Einheit unit.isSelect() ?
Ich gehe auf Fehlersuche immer so: ich kommentiere alle funktionen mit /* und */ aus und "entkommentiere" sie Schritt für Schritt.
Wenn ich dann eine Funktion gefunden habe, wo es hakt, dann mach ich das auch Schritt für Schritt für alle Features innerhalb der Funktion (während die anderen Funktionen wieder "aktiv" sind).
so kann man sicher sein, dass es zB bei PAE_Unit.doUnitFormation() passiert oder nicht.
Dann muss man in der PAE_Unit.doUnitFormation() wieder Schritt für Schritt alles auskommentieren, bis man die Stelle findet.
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.
- Pie's Ancient Europe (letztes Update: 22.12.2022)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!