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)
Brandstifter benötigen keine Streichhölzer, sie zündeln mit Worten.
Wer Brandstifter im Internet duldet und nicht wieder und wieder widerspricht,
darf sich nicht wundern, wenn auch bald sein wahres Leben brennt. (frei nach Max Frisch)
R457: Save geladen
Achtung Spoiler:
R458: beide fahren und B verkauft/kauft ein, hat folglich keine BP mehr.
Achtung Spoiler:
R459: A fährt, B nicht trotz voller BP.
Achtung Spoiler:
Fehler: In R459 wird doAutomateMerchant nicht aufgerufen. Also bei beiden nicht, der eine hat halt schon seine Befehle. Das liegt daran, dass doAutomateMerchant nur in onUnitMove aufgerufen wird, wennNaja, für den der unterwegs ist, gilt isCity nicht und für den anderen wird onUnitMove nicht aufgerufen, er bewegt sich ja nicht.PHP-Code:
if bTradeRouteActive and pPlot.isCity():
if gc.getPlayer(pUnit.getOwner()).isHuman() and pUnit.canMove():
Lösungsvorschlag: gleich, nachdem der Bonus gekauft wurde und die restlichen Bewegungspunkte gestrichen sind, den Move-Befehl geben. Damit funktioniert es bei mir.
Legende:PHP-Code:
elif eBonusBuy in lCitySaleableGoods:
#if iPlayer == iHumanPlayer: CyInterface().addMessage(iHumanPlayer, True, 10, "Mission eBonusBuy in lCitySaleable ", None, 2, None, ColorTypes(7), 0, 0, False, False)
if eStoredBonus != eBonusBuy:
# if not already acquired / Wenn Bonus nicht bereits gekauft wurde
#if not pUnit.hasMoved():
doBuyBonus(pUnit, eBonusBuy, pCurrentCity.getOwner())
#CyInterface().addMessage(iHumanPlayer, True, 10, "Mission eStoredBonus != eBonusBuy SKIP", None, 2, None, ColorTypes(7), 0, 0, False, False)
#pUnit.getGroup().pushMission(MissionTypes.MISSION_SKIP, 0, 0, 0, True, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
pUnit.finishMoves()
eStoredBonus = CvUtil.getScriptData(pUnit, ["b"], -1)
if eStoredBonus == eBonus1:
pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, iX2, iY2, 1, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
elif eStoredBonus == eBonus2:
pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, iX1, iY1, 1, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
return True
x/y: aktuelles Ziel. b: geladener Bonus aus originCiv.
autA: Route aktiv
autX/Y/B 1/2: Start- und Zielpunkt mit jeweiligem Bonus
autLTC: Marker, ob der Karren diese Runde schon automatisierte Befehle bekommen hat
Ich hab Flunkys Änderung mal reinkopiert, und bis jetzt funktioniert alles wunderbar
Achtung Spoiler:
In der mir vorliegenden Fassung ist pUnit.finishMoves() bereits enthalten. Ich brauche das nicht einfügen.
Oder muss das woanders hin?
PHP-Code:
elif eBonusBuy in lCitySaleableGoods:
#if iPlayer == iHumanPlayer: CyInterface().addMessage(iHumanPlayer, True, 10, "Mission eBonusBuy in lCitySaleable ", None, 2, None, ColorTypes(7), 0, 0, False, False)
if eStoredBonus != eBonusBuy:
# if not already acquired / Wenn Bonus nicht bereits gekauft wurde
#if not pUnit.hasMoved():
doBuyBonus(pUnit, eBonusBuy, pCurrentCity.getOwner())
#CyInterface().addMessage(iHumanPlayer, True, 10, "Mission eStoredBonus != eBonusBuy SKIP", None, 2, None, ColorTypes(7), 0, 0, False, False)
#pUnit.getGroup().pushMission(MissionTypes.MISSION_SKIP, 0, 0, 0, True, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
pUnit.finishMoves()
return True
#CyInterface().addMessage(iHumanPlayer, True, 10, "Mission eBonusBuy MOVE to new city ", None, 2, None, ColorTypes(7), 0, 0, False, False)
#pUnit.getGroup().pushMoveToMission(pNewCity.getX(), pNewCity.getY())
pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, pNewCity.getX(), pNewCity.getY(), 1, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
return True
Geändert von Rob Anybody (08. Dezember 2018 um 00: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)
Brandstifter benötigen keine Streichhölzer, sie zündeln mit Worten.
Wer Brandstifter im Internet duldet und nicht wieder und wieder widerspricht,
darf sich nicht wundern, wenn auch bald sein wahres Leben brennt. (frei nach Max Frisch)
finishMoves ist immer enthalten, es geht um die folgenden 5 Zeilen, die neu sind:
PHP-Code:
eStoredBonus = CvUtil.getScriptData(pUnit, ["b"], -1)
if eStoredBonus == eBonus1:
pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, iX2, iY2, 1, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
elif eStoredBonus == eBonus2:
pUnit.getGroup().pushMission(MissionTypes.MISSION_MOVE_TO, iX1, iY1, 1, False, False, MissionAITypes.NO_MISSIONAI, pUnit.plot(), pUnit)
In meiner aktuellen Version siehts auch so ähnlich aus. Da gehört eindeutig das pushMission noch vor dem return.
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!
Können Handelsstraßen eigentlich auch auf dem Stadtfeld entstehen?
(davon hängt ab, ob in meinem nächsten Spiel die Städte 3 oder 4 Felder weit auseinander stehen )
Achtung Spoiler:
Ja, es beginnt sogar auf dem Stadtfeld.
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!
Gut. Bei mir entstehen nämlich irgendwie nie welche. Liegt glaub ich an der Verfügbarkeit der Ressourcen, ich hab beim Einarbeiten von Flunkys Codeänderung gesehen, daß das einen Einfluß hat.
Ist das eigentlich beabsichtigt? Ich handel zwischen zwei eigenen Städten Amber und Obsidian mit 8 Handelskarren, und es ist noch nie eine Handelsstraße entstanden. Braucht man dafür noch eine spezielle Tech, die ich übersehen habe, oder wird die Chance einfach 0, wenn beide Städte die Ressi haben?
Achtung Spoiler:
Beim Inlandshandel wird keine Handelsstraße erstellt, keine Forschung verschenkt und die Ressource gibt's auch nicht für 3 Runden nochmal extra.
Quark der hier vorher stand:PHP-Code:
if iOriginCiv != iBuyer:
iGewinnWissen = int(iPrice / 5 * pSeller.getCurrentEra())
_doResearchPush(iBuyer, iGewinnWissen)
_doCityProvideBonus(pCity, eBonus, 3)
# Trade route / Handelsstrasse
doBuildTradeRoad(pUnit, pCity)
Achtung Spoiler:
Kam mir genau aus dem Grund auch komisch vor, daher die Frage, ob noch irgendeine Tech nötig ist. Ich hab jetzt aus der ersten 10 mal 'ne 30 gemacht. Mal sehen, ob sich dadurch was ändert, ansonsten besteht da noch ein anderes Problem.
Edith: Ach, Inlandshandel. Finde das etwas schade, ist das gewollt? Und geht aus der Pedia nicht hervor.
Achtung Spoiler:
Sonst könnte man mehr oder minder gewollt Handelsstraßen zwischen seinen Städten "bauen" und damit "Gratisstraßenbau" betreiben.