LotC hat meine ich serverweit ? Wenn nicht, auf jeden Fall aktuell in jedem PB von uns.
Und Pie wollte ich nicht dazu nötigen, einen PB Spy Account anzulegen.
LotC hat meine ich serverweit ? Wenn nicht, auf jeden Fall aktuell in jedem PB von uns.
Und Pie wollte ich nicht dazu nötigen, einen PB Spy Account anzulegen.
Achtung Spoiler:
Kann ich die PB_PAE_7_final Version aus Post-606 herunterladen und installieren oder soll ich damit noch warten?
Markus1978
PAE-Neuling
Storys:
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Julius Caesar - Sieg oder Niederlage Ergebnis: Niederlage
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Szenario: PAE_LimesGermanicusSmall - Chaos ohne Ende wie man es nicht macht! Ergebnis: Sieg
Grundsätzlich ja, das sind (erstmal) alle Pythonänderungen.
Es wird aber wohl noch eine weitere Version geben, da Zulan gerade Probleme hat, den Mod zum Laufen zu bringen. Scheinbar macht Linuxprobleme ? Eine Fehlerquelle wurde schon behoben, aber ich will heute für mich nochmal Civ auf Linux installieren und selber testen.
Achtung Spoiler:
Markus1978
PAE-Neuling
Storys:
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Julius Caesar - Sieg oder Niederlage Ergebnis: Niederlage
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Szenario: PAE_LimesGermanicusSmall - Chaos ohne Ende wie man es nicht macht! Ergebnis: Sieg
Wie hier schon angesprochen funktioniert PB_PAE_7 im Moment nicht auf Linux. In meinen Augen liegt es an der neuen .dll.
Auf jeden Fall konnten wir den Fehler bisher nicht beheben.
Ich würde jetzt die neusten Änderungen in PB_PAE_6.17 einarbeiten und dann mit PAE VI das PB Starten wollen.
Das würde auch heißen, dass brettschmitt leider nochmal ein Startsave erstellen muss.
Achtung Spoiler:
@Xist10:
Ist der Mod nicht im falschen Thread gelandet?
@alle
Ihr findet die neueste Version ihn dem Post https://www.civforum.de/showthread.p...=1#post9356413
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)
Stimmt, sorry.
Hier nochmal der Direktlink zum Download.
Achtung Spoiler:
Ich habe keine Fehler gefunden. Hat Zulan schon den neuen Link, um diesen Mod auf seinem Server zu testen?
Oder übernimt das wieder Ramk, jetzt wo er zurück ist?
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)
Zulan hat den Link.
Keine Ahnung wann Zulan die Zeit hat.
Und wir brauchen ja noch ein neues Startsave.
Edit: Zulan hat sich gerade gemeldet, zum Testen wäre leider das Startsave nötig.
Geändert von xist10 (10. August 2024 um 18:44 Uhr)
Achtung Spoiler:
OK, ich schreibe brettschmitt eine PN
@brettschmitt
Bitte verwende diese .ini
Erklärung steht in der 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)
Ich will jetzt kein Spaßverderber sein, aber wenn du das machst:
dann werden alle weitere Features nicht ausgeführt, zB: Unit zu Horse Upgrade, Sklaven der Stadt zuweisen etc.PHP-Code:
# RobA: Zuerst CtD ausfiltern
iNewUnit = PAE_Unit.canUpgradeUnit(pUnit)
if iNewUnit == -1:
return True
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!
Nein, das ist umgekehrte Logik
Das einzige was evtl. nicht ausgeführt wird, sind zB Ränge bei Einheiten die keine Praetorianer werden dürfen.
Dafür musste mann diese Zeilen ganz nach hinten schieben (direkt vor verlassen mit False). Da es aber wirklich nur sehr selten vorkommt, wollte ich damit nicht zusätzlich verwirren.
Geändert von Rob Anybody (11. August 2024 um 09:20 Uhr)
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)
Schneller Test zeigt, Sklaven ansiedeln funktioniert.
Trotzdem hast du recht, da eigentlich sollte die Funktion vorher abbrechen. Da verhält sich etwas nicht 100% korrekt.
Aber wenn es bisher läuft...
Achtung Spoiler:
Hier geht es allein um die KI. Alles was nicht in Python erledigt wird, versucht die KI im SdK zu erledigen, und dort kommt es zum CtD wenn falsche Werte übergeben werden. Rückgabe von "True" bedeutet: Ignoriere diese Einheit, das wurde schon behandelt.
Die Funktion canUpgradeUnit setzt eine Einheit (iNewUnit) nur auf -1 wenn diese Enheit eine Updateregel verletzt.
Die folgende If-Abfrage prüft mit ==-1 ob eine solche Verletzung festgestellt wurde. Alle anderen Einheiten werden durchgelassen.
In seltenen Fällen (so oft wie es zum CTD kam) kann das bedeuten, das eine Legion nun nicht mehr in den Rängen aufststeigt, weil sie kein Praetorianer werden darf.
Wir können aber gerne darüber reden, was Vorrang haben soll: doUpgradeVeteran oder doUpgradeRang
Edit:
Man muss Python bis zur Civ4-Ebene zurückverfolgen um die Auswirkung von True und False zu sehen.
Civ4/Assets/Phython/CvEntryPoints/CvGameInterface.py
Code:def AI_unitUpdate(argsList): 'AI moves units - return 0 to let AI handle it, return 1 to say that the move is handled in python ' #CvUtil.pyPrint( "CvGameInterface.AI_unitUpdate" ) return gameUtils().AI_unitUpdate(argsList)
Geändert von Rob Anybody (11. August 2024 um 09:20 Uhr)
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)
Eigentlich liegt der Hund bereits in canUpgradeUnit begraben. Hier werden zwei verschiedene CtD-Gründe geprpüft und gemeinsam zurückgegeben.
(Zwei der CtD von Markus waren vor Grenzheer, zwei CtD waren danach). Und ja, ich haue mit dem Hammer drauf, damit es keine Schlupflöcher mehr gibt.
Es kann sein, das wenn eine KI-Einheit da rein fällt, sie für den Rest des Spieles inaktiv wird. Das kann ich aber erst nach einem Blick ins SDK beurteilen.
Für eine saubere Trennung müsste man die Schleife für jede Ursache einzeln durchlaufen lasen, aber das bedeutet doppelte Rechenzeit, weil normalerweise keiner der beiden Gründe vorliegt.
Ich könnte höchsten versuchen, doUpgradeVeteran und doUpgradeRang innerhalb von canUpgradeUnit abzuhandeln![]()
Geändert von Rob Anybody (11. August 2024 um 09:21 Uhr)
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)