mrrandomplayer
Hopeless Situation Warrior
Ok, I've finally gotten around to checking everything. All of the XML files are in correct (there aren't any XML errors anymore), but the game is still crashing, despite the PythonLog being empty. I am guessing that I might have screwed up in writing Venice's UHV. I had to write a new definition to check the largest navy.
Here it is:
And here is my new definition:
Are there any problems there? That is the place where I've likely screwed up.
Here it is:
Spoiler :
Code:
elif (iPlayer == iRome):
if (pRome.isAlive()):
if not pRome.isReborn:
##Roman UHV
else:
if (iGameTurn <= getTurnForYear(1210)):
bConstantinople = self.controlsCity(iRome, tConstantinople)
if bConstantinople:
self.setGoal(iRome, 0, 1)
else:
self.setGoal(iRome, 0, 0)
if (iGameTurn == getTurnForYear(1500)):
if self.getBestNavy(iRome) == iRome:
self.setGoal(iRome, 1, 1)
else:
self.setGoal(iRome, 1, 0)
if (iGameTurn == getTurnForYear(1000)):
if (pRome.getGold() >= utils.getTurns(10000)):
self.setGoal(iRome, 2, 1)
else:
self.setGoal(iRome, 2, 0)
And here is my new definition:
Spoiler :
Code:
def getBestNavy(self, iCiv):
iCGalley = CvUtil.findInfoTypeNum(gc.getUnitClassInfo, gc.getNumUnitClassInfos(), 'UNITCLASS_GALLEY')
iCTrireme = CvUtil.findInfoTypeNum(gc.getUnitClassInfo, gc.getNumUnitClassInfos(), 'UNITCLASS_TRIREME')
iCCaravel = CvUtil.findInfoTypeNum(gc.getUnitClassInfo, gc.getNumUnitClassInfos(), 'UNITCLASS_CARAVEL')
iCGalleon = CvUtil.findInfoTypeNum(gc.getUnitClassInfo, gc.getNumUnitClassInfos(), 'UNITCLASS_GALLEON')
iCFrigate = CvUtil.findInfoTypeNum(gc.getUnitClassInfo, gc.getNumUnitClassInfos(), 'UNITCLASS_FRIGATE')
iCShipOfTheLine = CvUtil.findInfoTypeNum(gc.getUnitClassInfo, gc.getNumUnitClassInfos(), 'UNITCLASS_SHIP_OF_THE_LINE')
iBestNavy = iCiv
iLargestNavy = gc.getPlayer(iCiv).getUnitClassCount(iCGalley) + gc.getPlayer(iCiv).getUnitClassCount(iCTrireme) + gc.getPlayer(iCiv).getUnitClassCount(iCCaravel) + gc.getPlayer(iCiv).getUnitClassCount(iCGalleon) + gc.getPlayer(iCiv).getUnitClassCount(iCFrigate) + gc.getPlayer(iCiv).getUnitClassCount(iCShipoftheLine)
for iLoopCiv in range(con.iNumPlayers):
iTempNavy = gc.getPlayer(iLoopCiv).getUnitClassCount(iCGalley) + gc.getPlayer(iLoopCiv).getUnitClassCount(iCTrireme) + gc.getPlayer(iLoopCiv).getUnitClassCount(iCCaravel) + gc.getPlayer(iLoopCiv).getUnitClassCount(iCGalleon) + gc.getPlayer(iLoopCiv).getUnitClassCount(iCFrigate) + gc.getPlayer(iLoopCiv).getUnitClassCount(iCShipoftheLine)
if iTempNavy > iLargestNavy:
iBestNavy = iLoopCiv
iLargestNavy = iTempNavy
return iBestNavy
Are there any problems there? That is the place where I've likely screwed up.