Is this possible?

GreekWorld.py - 2
Spoiler :

Code:
                #Persian events
                if (pPersia.isHuman() == 0):
                        city = gc.getMap().plot( tParsa[0], tParsa[1] ).getPlotCity()
                        if not city.isNone():
                                if (city.getOwner() == iPersia):
                                        #Media, Iran
                                        self.flipCity(9, tEcbatana, 1, 1, iPersia, [18, iIndia])
                                        self.flipCity(9, tGabae, 1, 1, iPersia, [18, iIndia])
                                        self.flipCity(9, tRagha, 1, 1, iPersia, [18, iIndia])
                                        self.flipCity(9, tHasanlu, 1, 1, iPersia, [18, iIndia])
                                        self.flipCity(9, tBactra, 1, 1, iPersia, [18, iIndia])
                                        #Turkey
                                        if (pMacedonia.isHuman() == 0):
                                                self.flipCity(10, tSardis, 1, 1, iPersia, [18, iIndia, iGreekCol, iGreece])
                                                self.flipCity(10, tTrapezus, 1, 1, iPersia, [iGreekCol, iIndia])
                                                self.flipCity(10, tTarsus, 1, 1, iPersia, [18, iIndia, iGreekCol, iGreece])
                                                self.flipCity(10, tMiletos, 0, 1, iPersia, [iGreece])
                                        #Babylon
                                        for cityName in PyPlayer(iBabylon).getCityList():
                                                if not cityName.isNone():
                                                        tCoords = (cityName.GetCy().getX(), cityName.GetCy().getY())
                                                        self.flipCity(12, tCoords, 1, 1, iPersia, [iBabylon])
                                        #Syria
                                        self.flipCity(13, tAleppo, 1, 1, iPersia, [18])
                                        self.flipCity(13, tTyre, 1, 1, iPersia, [18])
                                        #Egypt
                                        if (pMacedonia.isHuman() == 0):
                                                self.flipCity(15, tTanis, 1, 1, iPersia, [iEgypt])
                                                self.flipCity(15, tMemphis, 1, 1, iPersia, [iEgypt])
                                                self.flipCity(15, tHeliopolis, 1, 1, iPersia, [iEgypt])
                                                self.flipCity(15, tThebes, 1, 1, iPersia, [iEgypt])
                                                self.flipCity(15, tCyrene, 1, 1, iPersia, [iEgypt, iGreekCol])
                                        #Darius
                                        self.flipCity(16, tPura, 1, 1, iPersia, [18, iIndia])
                                        self.flipCity(16, tTaxila, 1, 1, iPersia, [iIndia])
                                        self.flipCity(16, tIsmara, 1, 1, iPersia, [18])
                                        if (pMacedonia.isHuman() == 0):
                                                self.flipCity(16, tByzantium, 1, 1, iPersia, [iGreekCol])
                                                #Persian wars
                                                if (self.getPersianFate() >= 30):	# LOQ 2005-10-12
                                                        self.flipCity(24, tMiletos, 0, 1, iGreece, [iPersia])
                                                        #Egypt will be free later
                                                        self.flipCity(39, tTanis, 1, 1, iEgypt, [iPersia])
                                                        self.flipCity(39, tMemphis, 1, 1, iEgypt, [iPersia])
                                                        self.flipCity(39, tHeliopolis, 1, 1, iEgypt, [iPersia])
                                                        self.flipCity(39, tThebes, 1, 1, iEgypt, [iPersia])
                                                        self.flipCity(39, tCyrene, 1, 1, iEgypt, [iPersia])
                                                #Persian wars: alternative (Persia wins)
                                                if (self.getPersianFate() < 30):                       	# LOQ 2005-10-12
                                                        for cityName in PyPlayer(iGreece).getCityList():
                                                                if not cityName.isNone():
                                                                        tCoords = (cityName.GetCy().getX(), cityName.GetCy().getY())
                                                                        self.flipCity(24, tCoords, 1, 1, iPersia, [iGreece])
                                                        self.flipCity(24, tSiracusa, 1, 1, iPhoenicia, [iGreekCol])
                                                        self.flipCity(24, tTrapezus, 1, 1, iGreekCol, [iPersia])
                                                        self.flipCity(24, tTaxila, 1, 1, iIndia, [iPersia])
                                                        self.flipCity(24, tEcbatana, 1, 1, iParthia, [iPersia])
                                        #Parthia
                                        self.flipCity(56, tGabae, 0, 1, iParthia, [iPersia])
                                        self.flipCity(56, tRagha, 0, 1, iParthia, [iPersia])
                                        self.flipCity(56, tHasanlu, 0, 1, iParthia, [iPersia])
                                        self.flipCity(56, tBactra, 0, 1, iParthia, [iPersia])
                                        
                #Macedonian events
                if (pMacedonia.isHuman() == 0):
                        city = gc.getMap().plot( tArgos[0], tArgos[1] ).getPlotCity()
                        if not city.isNone():
                                if (city.getOwner() == iMacedonia):
                                        self.flipCity(51, tIsmara, 1, 1, iMacedonia, [18, iScythia, iGreekCol])
                                        self.flipCity(52, tDelphi, 1, 1, iMacedonia, [iGreece])
                                        self.flipCity(52, tCorinth, 1, 1, iMacedonia, [iGreece])
                                        self.flipCity(52, tSparta, 1, 1, iMacedonia, [iGreece])
                                        self.flipCity(52, tAthens, 1, 1, iMacedonia, [iGreece])
                                        self.flipCity(52, tMiletos, 0, 1, iGreekCol, [iGreece])
                                        self.flipCity(52, tRhodes, 0, 1, iGreekCol, [iGreece])
                                        #Alexander 
                                        self.flipCity(53, tMiletos, 1, 1, iMacedonia, [iGreekCol, iIsrael, iScythia, iBabylon])
                                        self.flipCity(53, tRhodes, 1, 1, iMacedonia, [iGreekCol,iBabylon])
                                        self.flipCity(53, tTarsus, 1, 1, iMacedonia, [18, iGreekCol, iScythia, iIsrael, iParthia, iBabylon])
                                        self.flipCity(53, tSardis, 1, 1, iMacedonia, [18, iGreekCol, iScythia, iIsrael, iParthia, iBabylon])
                                        self.flipCity(53, tAleppo, 1, 1, iMacedonia, [18, iGreekCol, iScythia, iIsrael, iParthia, iBabylon])
                                        self.flipCity(54, tTyre, 1, 1, iMacedonia, [iEgypt, iPhoenicia, iIsrael, iBabylon])
                                        self.flipCity(54, tYerushalayim, 0, 1, iMacedonia, [iIsrael, iBabylon])
                                        self.flipCity(54, tTanis, 0, 1, iMacedonia, [iEgypt, iBabylon])
                                        self.flipCity(54, tMemphis, 0, 1, iMacedonia, [iEgypt, iBabylon])
                                        self.flipCity(54, tHeliopolis, 0, 1, iMacedonia, [iEgypt, iBabylon])
                                        self.flipCity(54, tThebes, 0, 1, iMacedonia, [iEgypt, iBabylon])
                                        self.flipCity(55, tAshur, 0, 1, iMacedonia, [iBabylon, iIsrael])
                                        self.flipCity(55, tBabylon, 0, 1, iMacedonia, [iBabylon, iIsrael])
                                        self.flipCity(55, tSusa, 0, 1, iMacedonia, [iBabylon, iIsrael])
                                        #Alexander attacks Persian territories (only if player is Rome)
                                        if (pPersia.isHuman() == 0):
                                                for cityName in PyPlayer(iPersia).getCityList():
                                                        if not cityName.isNone():
                                                                tCoords = (cityName.GetCy().getX(), cityName.GetCy().getY())
                                                                self.flipCity(55, tCoords, 0, 1, iMacedonia, [iPersia])
                                        if (iGameTurn == 54) or (iGameTurn == 55): #Seleucia spawn
                                                tTopLeft = (45, 32)
                                                tBottomRight = (51, 39)
                                                dummy, plotList = self.squareSearch( tTopLeft, tBottomRight, self.innerInvasion, [] )
                                                rndNum = gc.getGame().getSorenRandNum(len(plotList), 'Greek World - Seleucia')
                                                result = plotList[rndNum]
                                                if (result):
                                                        self.makeUnit(iPhalanx, iSeleucia, result, 4)
                                        #Alexander dies
                                        if (self.getAlexanderFate() >= 30):	# LOQ 2005-10-12
                                                self.flipCity(56, tTrapezus, 0, 1, iGreekCol, [iMacedonia])
                                                self.flipCity(56, tMiletos, 0, 1, iGreekCol, [iMacedonia])
                                                self.flipCity(56, tRhodes, 0, 1, iGreekCol, [iMacedonia])
                                                self.flipCity(56, tSardis, 0, 1, iGreekCol, [iMacedonia])
                                                self.flipCity(56, tTarsus, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tAleppo, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tTyre, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tYerushalayim, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tEcbatana, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tBabylon, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tAshur, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tLarsa, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tNineveh, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tSusa, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(56, tParsa, 0, 1, iSeleucia, [iMacedonia])
                                                #stronger Seleucid empire
                                                if (iGameTurn == 57):
                                                        for cityName in PyPlayer(iSeleucia).getCityList():
                                                                if not cityName.isNone():
                                                                        tCoords = (cityName.GetCy().getX(), cityName.GetCy().getY())
                                                                        self.makeUnit(iPhalanx, iSeleucia, tCoords, 2)
                                                self.flipCity(56, tGabae, 0, 1, iParthia, [iMacedonia])
                                                self.flipCity(56, tRagha, 0, 1, iParthia, [iMacedonia])
                                                self.flipCity(56, tHasanlu, 0, 1, iParthia, [iMacedonia])
                                                self.flipCity(56, tBactra, 0, 1, iIndia, [iMacedonia])
                                                self.flipCity(56, tTaxila, 0, 1, iIndia, [iMacedonia])
                                                self.flipCity(56, tTanis, 0, 1, iEgypt, [iMacedonia])
                                                self.flipCity(56, tMemphis, 0, 1, iEgypt, [iMacedonia])
                                                self.flipCity(56, tHeliopolis, 0, 1, iEgypt, [iMacedonia])
                                                self.flipCity(56, tThebes, 0, 1, iEgypt, [iMacedonia])
                                                self.flipCity(56, tCyrene, 0, 1, iEgypt, [iMacedonia])
                                        #Alexander lives
                                        if (self.getAlexanderFate() < 30):	# LOQ 2005-10-12
                                                self.flipCity(57, tPetra, 1, 1, iMacedonia, [18, iEgypt, iIsrael])
                                                self.flipCity(57, tTayma, 1, 1, iMacedonia, [18, iEgypt, iIsrael])                                            
                                                self.flipCity(57, tMarib, 1, 1, iMacedonia, [18, iEgypt, iIsrael])
                                                self.flipCity(57, tGerrha, 1, 1, iMacedonia, [18, iEgypt, iIsrael])
                                                self.flipCity(59, tGadir, 1, 1, iMacedonia, [iPhoenicia])
                                                if (pRome.isHuman() == 0):
                                                        self.flipCity(58, tSiracusa, 1, 1, iMacedonia, [iPhoenicia, iGreekCol, iRome])
                                                        self.flipCity(58, tPalemmo, 1, 1, iMacedonia, [iPhoenicia, iGreekCol, iRome])
                                                        self.flipCity(59, tGadir, 1, 1, iMacedonia, [iRome]) 
                                                self.flipCity(61, tGabae, 1, 1, iParthia, [iMacedonia])
                                                self.flipCity(61, tRagha, 1, 1, iParthia, [iMacedonia])
                                                self.flipCity(61, tHasanlu, 1, 1, iParthia, [iMacedonia])
                                                self.flipCity(61, tBactra, 1, 1, iIndia, [iMacedonia])
                                                self.flipCity(62, tTaxila, 1, 1, iIndia, [iMacedonia])
                                                self.flipCity(62, tAthens, 1, 1, iGreece, [iMacedonia])
                                                self.flipCity(62, tSparta, 1, 1, iGreece, [iMacedonia])
                                                self.flipCity(62, tDelphi, 1, 1, iGreece, [iMacedonia])
                                                self.flipCity(62, tCorinth, 1, 1, iGreece, [iMacedonia])
                                                self.flipCity(63, tTarsus, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tAleppo, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tTyre, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tYerushalayim, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tPetra, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tTayma, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tMarib, 0, 1, iSeleucia, [iMacedonia])
                                                self.flipCity(63, tGerrha, 0, 1, iSeleucia, [iMacedonia])
                                                if (iGameTurn == 64):
                                                        for cityName in PyPlayer(iSeleucia).getCityList():
                                                                if not cityName.isNone():
                                                                        tCoords = (cityName.GetCy().getX(), cityName.GetCy().getY())
                                                                        self.makeUnit(iPhalanx, iSeleucia, tCoords, 2)
                                        #Parthian expansion
                                        self.flipCity(92, tEcbatana, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        self.flipCity(92, tBabylon, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        self.flipCity(92, tAshur, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        self.flipCity(92, tLarsa, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        self.flipCity(92, tNineveh, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        self.flipCity(92, tSusa, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        self.flipCity(92, tParsa, 1, 1, iParthia, [iSeleucia, iMacedonia])
                                        if (iGameTurn == 93):
                                                for cityName in PyPlayer(iParthia).getCityList():
                                                        if not cityName.isNone():
                                                                tCoords = (cityName.GetCy().getX(), cityName.GetCy().getY())
                                                                self.makeUnit(iHorseArcher, iParthia, tCoords, 2)


                                

		# Christianity by LOQ
		if (iGameTurn == 123):
			city = gc.getMap().plot( tYerushalayim[0], tYerushalayim[1] ).getPlotCity()
			# if Yerushalayim razed
			if city.isNone():
				jewishCityList = []
				for iPlayer in range(iNumPlayers):
					for pyCity in PyPlayer(iPlayer).getCityList():
						if pyCity.GetCy().isHasReligion(iJudaism):
							jewishCityList.append(pyCity.GetCy())
				if jewishCityList:
					iCity = gc.getGame().getSorenRandNum(len(jewishCityList), 'Greek World - Birth of Christianity')
					city = jewishCityList[iCity]
			# if Yerushalayim exists or an alternative is found
			if not city.isNone():
				gc.getGame().setHolyCity(iChristianity, city, True)
                        #Christianity spreads
                        tCoords = (city.getX(), city.getY())
                        if (gc.getPlayer(city.getOwner()).isHuman() == 0):
                                self.makeUnit(iChristianMissionary, city.getOwner(), tCoords, 7)
                                
                #Christianity spreads
		if (iGameTurn >= 130) and (iGameTurn <= 170):
			christianCityList = []
 			for iPlayer in range(iNumPlayers):
				for pyCity in PyPlayer(iPlayer).getCityList():
					if pyCity.GetCy().isHasReligion(iChristianity):
						christianCityList.append(pyCity.GetCy())                              
			if christianCityList:
				iCity = gc.getGame().getSorenRandNum(len(christianCityList), 'Greek World - Spread of Christianity')
				city = christianCityList[iCity]
                                tCoords = (city.getX(), city.getY())
                                if (gc.getPlayer(city.getOwner()).isHuman() == 0):
                                        self.makeUnit(iChristianMissionary, city.getOwner(), tCoords, 1)



        def flipCity(self, iFlipTurn, tCityPlot, bFlipType, bKillUnits, iNewOwner, iOldOwners):
                """Changes owner of city specified by tCityPlot on turn iFlipTurn.
                bFlipType specifies if it's conquered or traded.
                If bKillUnits != 0 all the units in the city will be killed and replaced by two archers.
                iOldOwners is a list. Flip happens only if the old owner is in the list. An empty list will cause the flip to always happen."""
                pNewOwner = gc.getPlayer(iNewOwner)
                if (gc.getGame().getGameTurn() == iFlipTurn):
##                            popup = Popup.PyPopup() 
##                            popup.setBodyString( 'Turn' )
##                            popup.launch()
                            city = gc.getMap().plot( tCityPlot[0], tCityPlot[1] ).getPlotCity()
                            if not city.isNone():
##                                    popup = Popup.PyPopup() 
##                                    popup.setBodyString( 'NoCity' )
##                                    popup.launch()
                                    if (city.getOwner() in iOldOwners or not iOldOwners):
##                                            popup = Popup.PyPopup() 
##                                            popup.setBodyString( 'Owners' )
##                                            popup.launch()
                                            if (bKillUnits):
                                                    killPlot = gc.getMap().plot( tCityPlot[0], tCityPlot[1] )
                                                    for i in range(killPlot.getNumUnits()):
                                                            unit = killPlot.getUnit(0)
                                                            unit.kill(False, iNewOwner)
                                            if (bFlipType): #conquest
                                                    if (city.getPopulation() == 2):
                                                            city.setPopulation(3)
                                                    if (city.getPopulation() == 1):
                                                            city.setPopulation(2)
                                                    pNewOwner.acquireCity(city, True, False)
                                            else: #trade
                                                    pNewOwner.acquireCity(city, False, True)
                                            if (bKillUnits):
                                                    self.makeUnit(iArcher, iNewOwner, tCityPlot, 2)
                                            return True
                return False
 
GreekWorld.py
Spoiler :

Code:
	def squareSearch( self, tTopLeft, tBottomRight, function, argsList ): #by LOQ
		"""Searches all tile in the square from tTopLeft to tBottomRight and calls function for
		every tile, passing argsList. The function called must return a tuple: (1) a result, (2) if
		a plot should be painted and (3) if the search should continue."""
		tPaintedList = []
		result = None
		for x in range(tTopLeft[0], tBottomRight[0]):
			for y in range(tTopLeft[1], tBottomRight[1]):
				result, bPaintPlot, bContinueSearch = function((x, y), result, argsList)
				if bPaintPlot:			# paint plot
					tPaintedList.append((x, y))
				if not bContinueSearch:		# goal reached, so stop
					return result, tPaintedList
		return result, tPaintedList


	def innerInvasion( self, tCoords, result, argsList ):
		"""Checks validity of the plot at the current tCoords, returns plot if valid (which stops the search).
		Plot is valid if it's hill or flatlands and it isn't occupied by a unit or city"""
		bPaint = True
		bContinue = True
		pCurrent = gc.getMap().plot( tCoords[0], tCoords[1] )
		if ( pCurrent.isHills() or pCurrent.isFlatlands() ):
			if ( not pCurrent.isCity() and not pCurrent.isUnit() ):
        			# this is a good plot, so paint it and continue search
				return (None, bPaint, bContinue)
		# not a good plot, so don't paint it but continue search
		return (None, not bPaint, bContinue)

	def outerInvasion( self, tCoords, result, argsList ):
		"""Checks validity of the plot at the current tCoords, returns plot if valid (which stops the search).
		Plot is valid if it's hill or flatlands, it isn't occupied by a unit or city and if it isn't a civ's territory"""
		bPaint = True
		bContinue = True
		pCurrent = gc.getMap().plot( tCoords[0], tCoords[1] )
		if ( pCurrent.isHills() or pCurrent.isFlatlands() ):
			if ( not pCurrent.isCity() and not pCurrent.isUnit() ):
				if (pCurrent.countTotalCulture() == 0 ):
					# this is a good plot, so paint it and continue search
					return (None, bPaint, bContinue)
		# not a good plot, so don't paint it but continue search
		return (None, not bPaint, bContinue)

	def innerSeaSpawn( self, tCoords, result, argsList ):
		"""Checks validity of the plot at the current tCoords, returns plot if valid (which stops the search).
		Plot is valid if it's water and it isn't occupied by any unit. Unit check extended to adjacent plots"""
		bPaint = True
		bContinue = True
		pCurrent = gc.getMap().plot( tCoords[0], tCoords[1] )
		if ( pCurrent.isWater()):
			if ( not pCurrent.isCity() and not pCurrent.isUnit() ):
                                iClean = 0
                                for x in range(tCoords[0] - 1, tCoords[0] + 2):		# from x-1 to x+1
                                        for y in range(tCoords[1] - 1, tCoords[1] + 2):	# from y-1 to y+1
                                                if (pCurrent.getNumUnits() != 0):
                                                        iClean += 1
                                if ( iClean == 0 ):   
					# this is a good plot, so paint it and continue search
					return (None, bPaint, bContinue)
		# not a good plot, so don't paint it but continue search
		return (None, not bPaint, bContinue)

	def outerSpawn( self, tCoords, result, argsList ):
		"""Checks validity of the plot at the current tCoords, returns plot if valid (which stops the search).
		Plot is valid if it's hill or flatlands, it isn't occupied by a unit or city and if it isn't a civ's territory.
		Unit check extended to adjacent plots"""
		bPaint = True
		bContinue = True
		pCurrent = gc.getMap().plot( tCoords[0], tCoords[1] )
		if ( pCurrent.isHills() or pCurrent.isFlatlands() ):
			if ( not pCurrent.isCity() and not pCurrent.isUnit() ):
                                iClean = 0
                                for x in range(tCoords[0] - 1, tCoords[0] + 2):		# from x-1 to x+1
                                        for y in range(tCoords[1] - 1, tCoords[1] + 2):	# from y-1 to y+1
                                                if (pCurrent.getNumUnits() != 0):
                                                        iClean += 1
                                if ( iClean == 0 ):
                                        if (pCurrent.countTotalCulture() == 0 ):
                                                # this is a good plot, so paint it and continue search
                                                return (None, bPaint, bContinue)
		# not a good plot, so don't paint it but continue search
		return (None, not bPaint, bContinue)


        def checkCities(self, city, iNewOwner):
                """Renames a city depending on its owner"""
                if city.getName() == 'Taras' and iNewOwner == iRome:
                        city.setName('Tarentum', False)
                if city.getName() == 'Tarentum' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Taras', False)
                if city.getName() == 'Syrakousai' and iNewOwner == iRome:
                        city.setName('Syracusae', False)
                if city.getName() == 'Syracusae' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Syrakousai', False)
                if city.getName() == 'Athenai' and iNewOwner == iRome:
                        city.setName('Athanae', False)
                if city.getName() == 'Athanae' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Athenai', False)
                if city.getName() == 'Miletos' and iNewOwner == iRome:
                        city.setName('Miletus', False)
                if city.getName() == 'Miletus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Miletos', False)
                if city.getName() == 'Epidamnos' and iNewOwner == iRome:
                        city.setName('Dyrrachium', False)
                if city.getName() == 'Dyrrachium' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Epidamnos', False)
                if city.getName() == 'Rhodos' and iNewOwner == iRome:
                        city.setName('Rhodus', False)
                if city.getName() == 'Rhodus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Rhodos', False)
                if city.getName() == 'Byzantion' and iNewOwner == iRome:
                        city.setName('Byzantium', False)
                if city.getName() == 'Byzantium' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Byzantion', False)
                if city.getName() == 'Trapezounda' and iNewOwner == iRome:
                        city.setName('Trapezus', False)
                if city.getName() == 'Trapezus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Trapezounda', False)
                if city.getName() == 'Tarsos' and iNewOwner == iRome:
                        city.setName('Tarsus', False)
                if city.getName() == 'Tarsus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Tarsos', False)
                if city.getName() == 'Sparte' and iNewOwner == iRome:
                        city.setName('Sparta', False)
                if city.getName() == 'Sparta' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Sparte', False)
                if city.getName() == 'Korinthos' and iNewOwner == iRome:
                        city.setName('Corinthus', False)
                if city.getName() == 'Corinthus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Korinthos', False)
                if city.getName() == 'Delphoi' and iNewOwner == iRome:
                        city.setName('Delphi', False)
                if city.getName() == 'Delphi' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Delphoi', False)
                if city.getName() == 'Alexandreia' and iNewOwner == iRome:
                        city.setName('Alexandria', False)
                if city.getName() == 'Alexandria' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Alexandreia', False)
                if city.getName() == 'Alalia' and iNewOwner == iRome:
                        city.setName('Aleria', False)
                if city.getName() == 'Aleria' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Alalia', False)
                if city.getName() == 'Thasos' and iNewOwner == iRome:
                        city.setName('Thasus', False)
                if city.getName() == 'Thasus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Thasos', False)
                if city.getName() == 'Olynthos' and iNewOwner == iRome:
                        city.setName('Olynthus', False)
                if city.getName() == 'Olynthus' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Olynthos', False)
                if city.getName() == 'Thessaloniki' and iNewOwner == iRome:
                        city.setName('Thessalonica', False)
                if city.getName() == 'Thessalonica' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Thessaloniki', False)
                if city.getName() == 'Massalia' and iNewOwner == iRome:
                        city.setName('Massilia', False)
                if city.getName() == 'Massilia' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Massalia', False)

                if city.getName() == 'Roma' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Rome', False)
                if city.getName() == 'Rome' and iNewOwner == iRome:
                        city.setName('Roma', False)

                        
                if ((city.getName() == 'Sur') or (city.getName() == 'Tyros') or (city.getName() == 'Tsor') or (city.getName() == 'Zara')) and iNewOwner == iRome:
                        city.setName('Tyrus', False)
                if ((city.getName() == 'Tyrus') or (city.getName() == 'Sur') or (city.getName() == 'Tsor') or (city.getName() == 'Zara')) and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Tyros', False)
                if ((city.getName() == 'Tyrus') or (city.getName() == 'Tyros') or (city.getName() == 'Sur') or (city.getName() == 'Zara')) and iNewOwner == iIsrael:
                        city.setName('Tsor', False)
                if ((city.getName() == 'Tyrus') or (city.getName() == 'Tyros') or (city.getName() == 'Tsor') or (city.getName() == 'Sur')) and iNewOwner == iBabylon:
                        city.setName('Zara', False)
                if ((city.getName() == 'Tyrus') or (city.getName() == 'Tyros') or (city.getName() == 'Tsor') or (city.getName() == 'Zara')) and iNewOwner == iPhoenicia:
                        city.setName('Sur', False)
                if ((city.getName() == 'Qart-Hadasht') or (city.getName() == 'Karkhedon')) and iNewOwner == iRome:
                        city.setName('Carthago', False)
                if ((city.getName() == 'Qart-Hadasht') or (city.getName() == 'Carthago')) and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Karkhedon', False)
                if ((city.getName() == 'Carthago') or (city.getName() == 'Karkhedon')) and iNewOwner == iPhoenicia:
                        city.setName('Qart-Hadasht', False)
                if ((city.getName() == 'Lpqy') or (city.getName() == 'Lepcis')) and iNewOwner == iRome:
                        city.setName('Leptis Magna', False)
                if ((city.getName() == 'Lpqy') or (city.getName() == 'Leptis Magna')) and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Lepcis', False)
                if ((city.getName() == 'Leptis Magna') or (city.getName() == 'Lepcis')) and iNewOwner == iPhoenicia:
                        city.setName('Lpqy', False)
                if city.getName() == 'Hippo' and iNewOwner == iRome:
                        city.setName('Hippo Regius', False)
                if city.getName() == 'Hippo Regius' and iNewOwner == iPhoenicia:
                        city.setName('Hippo', False)
                        
                if ((city.getName() == 'Ziz') or (city.getName() == 'Panormos')) and iNewOwner == iRome:
                        city.setName('Panormus', False)
                if ((city.getName() == 'Ziz') or (city.getName() == 'Panormus')) and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Panormos', False)
                if ((city.getName() == 'Panormus') or (city.getName() == 'Panormos')) and iNewOwner == iPhoenicia:
                        city.setName('Ziz', False)
                if city.getName() == 'Gadir' and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Gades', False)
                if city.getName() == 'Gades' and iNewOwner == iPhoenicia:
                        city.setName('Gadir', False)

                if ((city.getName() == 'Yerushalayim') or (city.getName() == 'Hierousalem')) and iNewOwner == iRome:
                        city.setName('Aelia Capitolina', False)
                if ((city.getName() == 'Yerushalayim') or (city.getName() == 'Aelia Capitolina')) and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Hierousalem', False)
                if ((city.getName() == 'Aelia Capitolina') or (city.getName() == 'Hierousalem')) and iNewOwner == iIsrael:
                        city.setName('Yerushalayim', False)

                if city.getName() == 'Hangmatana' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Ecbatana', False)
                if city.getName() == 'Ecbatana' and iNewOwner == iPersia:
                        city.setName('Hangmatana', False)

                if city.getName() == 'Parsa' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Persepolis', False)
                if city.getName() == 'Persepolis' and iNewOwner == iPersia:
                        city.setName('Parsa', False)
                if city.getName() == 'Pathragada' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Pasargadae', False)
                if city.getName() == 'Pasargadae' and iNewOwner == iPersia:
                        city.setName('Pathragada', False)

                if ((city.getName() == 'Niwt-rst') or (city.getName() == 'Thebes')) and iNewOwner == iRome:
                        city.setName('Thebae', False)
                if ((city.getName() == 'Niwt-rst') or (city.getName() == 'Thebae')) and ((iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Thebes', False)
                if ((city.getName() == 'Thebes') or (city.getName() == 'Thebae')) and iNewOwner == iPhoenicia:
                        city.setName('Niwt-rst', False)
                if ((city.getName() == 'Djanet') or (city.getName() == 'Zoan')) and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Tanis', False)
                if ((city.getName() == 'Djanet') or (city.getName() == 'Tanis')) and iNewOwner == iIsrael:
                        city.setName('Zoan', False)
                if ((city.getName() == 'Tanis') or (city.getName() == 'Zoan')) and iNewOwner == iPhoenicia:
                        city.setName('Niwt-rst', False)
                if city.getName() == 'Ineb Hedj' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Memphis', False)
                if city.getName() == 'Memphis' and iNewOwner == iEgypt:
                        city.setName('Ineb Hedj', False)
                if city.getName() == 'Abdju' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Abydos', False)
                if city.getName() == 'Abydos' and iNewOwner == iEgypt:
                        city.setName('Abdju', False)
                if city.getName() == 'Iunu' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Heliopolis', False)
                if city.getName() == 'Heliopolis' and iNewOwner == iEgypt:
                        city.setName('Iunu', False)
                if city.getName() == 'Yebu' and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Elephantine', False)
                if city.getName() == 'Elephantine' and iNewOwner == iEgypt:
                        city.setName('Yebu', False)

                if ((city.getName() == 'Babili') or (city.getName() == 'Babel')) and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Babylon', False)
                if ((city.getName() == 'Babili') or (city.getName() == 'Babylon')) and iNewOwner == iIsrael:
                        city.setName('Babel', False)
                if ((city.getName() == 'Babylon') or (city.getName() == 'Babel')) and iNewOwner == iBabylon:
                        city.setName('Babili', False)
                if ((city.getName() == 'Susan') or (city.getName() == 'Shushan')) and ((iNewOwner == iRome) or (iNewOwner == iMacedonia) or (iNewOwner == iGreece) or (iNewOwner == iGreekCol)):
                        city.setName('Susa', False)
                if ((city.getName() == 'Susan') or (city.getName() == 'Susa')) and iNewOwner == iIsrael:
                        city.setName('Babel', False)
                if ((city.getName() == 'Susa') or (city.getName() == 'Shushan')) and iNewOwner == iBabylon:
                        city.setName('Susan', False)
                if city.getName() == 'Ninua' and iNewOwner == iIsrael:
                        city.setName('Nineveh', False)
                if city.getName() == 'Nineveh' and iNewOwner == iBabylon:
                        city.setName('Ninua', False)
                if city.getName() == 'Assur' and iNewOwner == iIsrael:
                        city.setName('Ashur', False)
                if city.getName() == 'Ashur' and iNewOwner == iBabylon:
                        city.setName('Assur', False)
                if city.getName() == 'Larsa' and iNewOwner == iIsrael:
                        city.setName('Ellasar', False)
                if city.getName() == 'Ellasar' and iNewOwner == iBabylon:
                        city.setName('Larsa', False)

                if city.getName() == 'Richborough' and iNewOwner == iRome:
                        city.setName('Rutupiae', False)
                if city.getName() == 'Rutupiae' and iNewOwner == iCelts:
                        city.setName('Richborough', False)
                if city.getName() == 'Lutetia' and iNewOwner == iRome:
                        city.setName('Lutetia Parisorum', False)
                if city.getName() == 'Lutetia Parisorum' and iNewOwner == iCelts:
                        city.setName('Lutetia', False)
                if city.getName() == 'Melpum' and ((iNewOwner == iRome) or (iNewOwner == iCelts)):
                        city.setName('Mediolanum', False)
 
Code:
                for cityValues in unpickledCityFileList:
                        CityOwner = cityValues
                        iX = cityValues
                        iY = cityValues
                        iPop = cityValues
                        iCulture = cityValues

For each value in unpickledCityFileList, set CityOwner, iX, iY, iPop and iCulture to this value. This is what the code says. CityOwner etc will always end up being the last value because they are all redefined with each loop.

What you need to do is to set the values to the corresponding value in unpickledCityFileList. You know CityOwner is the first value, so you can get it with CityOwner = unpickledCityFileList[0]. Same for all the others.



Code:
                unpickledCityFile = open('D:\FirstCityMapFile','r')
                #problem with Meier's using the ' which closes the pathway
There's two ways allowing you to use Meier's. One is to use "'D:\something" instead of '. The other is to use \' for the ' in Meier's.
 
For the GreekWorld.py - 2 file, here is the bit I added. The problem is that it gives python exception errors ( # python error line 231: list index out of range)...
Spoiler :

Code:
#CyGame().addPlayer(Player ID, leader ID, civilization id) where the last 2 are in the xml
		#CyGame().addPlayerAdvanced(Player ID, team ID, leader ID, civilization id) team id may be auto???
                #addPlayer (int eNewPlayer, int eNewTeam, int eLeader, int eCiv)
                #that's the only addplayer i found in the bts api
                #CyTeam getTeam(INT i) or just INT getTeam()
# I need to get the player ID from the first map and store it for the second map.
# Unless player ID changes between maps e.g. due to a civ being destroyed.
                unpickledCityFile = open('D:\FirstCityMapFile','r')
                
                unpickledCityFileList = pickle.load(unpickledCityFile)
                unpickledCityFileListValue = 0
# This retrieves the variables CityOwner, iX, iY, iPop, iCulture
                while unpickledCityFileListValue <= len(unpickledCityFileList):
                        CityOwner = unpickledCityFileList[unpickledCityFileListValue]
                        unpickledCityFileListValue = unpickledCityFileListValue + 1
                        iX = unpickledCityFileList[unpickledCityFileListValue]
                        # python error line 231: list index out of range
                        unpickledCityFileListValue = unpickledCityFileListValue + 1
                        iY = unpickledCityFileList[unpickledCityFileListValue]
                        unpickledCityFileListValue = unpickledCityFileListValue + 1
                        iPop = unpickledCityFileList[unpickledCityFileListValue]
                        unpickledCityFileListValue = unpickledCityFileListValue + 1
                        iCulture = unpickledCityFileList[unpickledCityFileListValue]
                        unpickledCityFileListValue = unpickledCityFileListValue + 1

		pPlayer = gc.getPlayer(CityOwner)
		pCity = pPlayer.initCity(iX,iY)
                
                
		#pCity = gc.getMap().plot(33,67).getPlotCity()
                pCity.setName('trialcity', False)
                # Not sure what False does
                pCity.setPopulation(iPop)
                pCity.setCulture(CityOwner,iCulture,True)
                #9=Germanic, 500=amount of culture, Not sure what True does
                #pCity.setHasRealBuilding(9,1)
                #9 gives it an aqueduct in this mod; 1 adds the building (check XML)
                #pCity.setHasRealBuilding(0,0)
                # 0 is the palace, 0 removes the building.  However testcity remains the capital
                #pCity.setHasReligion(5,1,0,0)
                # 5 makes it Greek polytheism.  1 adds the religion.  I don't know what BOOL bAnnounce, BOOL bArrows do...
 
                        
                        # 'end city' value is to somehow show when the/
                        # buildings' list has ended

                unpickledCityFile.close()


EDIT: Problem was 2 fold, solved by GreyFox and myself.
Spoiler :

Code:
 unpickledCityFileList = pickle.load(unpickledCityFile)
                unpickledCityFileListValue = 0
# This retrieves the variables CityOwner, iX, iY, iPop, iCulture
# NB unpickledCityFileListValue starts at 0 and thus finishes at len(unpickledCityFileList) - 1
                while unpickledCityFileListValue < len(unpickledCityFileList):
                    CityOwner = unpickledCityFileList[unpickledCityFileListValue]
                    unpickledCityFileListValue = unpickledCityFileListValue + 1
                    iX = unpickledCityFileList[unpickledCityFileListValue]
                    unpickledCityFileListValue = unpickledCityFileListValue + 1
                    iY = unpickledCityFileList[unpickledCityFileListValue]
                    unpickledCityFileListValue = unpickledCityFileListValue + 1
                    iPop = unpickledCityFileList[unpickledCityFileListValue]
                    unpickledCityFileListValue = unpickledCityFileListValue + 1
                    iCulture = unpickledCityFileList[unpickledCityFileListValue]
                    unpickledCityFileListValue = unpickledCityFileListValue + 1
                    EndofCityTag = unpickledCityFileList[unpickledCityFileListValue]
                    unpickledCityFileListValue = unpickledCityFileListValue + 1

		pPlayer = gc.getPlayer(CityOwner)
		pCity = pPlayer.initCity(iX,iY)
 
Another issue I'm having is whether player ID changes between maps if, for example, one of the civs is destroyed (e.g. if player ID 2 is destroyed, does player ID 3 get changed to player ID 2 in the subsequent map?). Does anyone know this one?
 
I think the saving data side of things is working but the loading-replacing is giving an error (maybe more to come - you never know your luck!).

From FFH2's event manager:
Spoiler :

Code:
def onGameStart(self, argsList):
		'Called at the start of the game'
....
unpickledLeadersFile = open('D:\SurvivingLeadersFile', 'r')
unpickledLeadersFileList = pickle.load(unpickledLeadersFile)
 
 
unpickledCityFile = open('D:\FirstCityMapFile','r')
unpickledCityFileList = pickle.load(unpickledCityFile)
for iLeaderCivCounter in range(len(unpickledLeadersFileList)):
        iPlayerNum, iLeader, iCiv, iTeam = unpickledLeadersFileList[iLeaderCivCounter]
#Runtime error... unidentifiable C++ exception

        CyGame().addPlayerAdvanced(iLeaderCivCounter, iTeam, iLeader, iCiv)
        #FFH2 only method (addPlayerAdvanced)
        # This retrieves the variables iPlayerNum, eCityName, iX, iY, iPop, iCulture, EndofCityTag
        unpickledCityFileListValue = 0                                          
        iTempiPlayerNum = iPlayerNum
        while iTempiPlayerNum <= iPlayerNum and unpickledCityFileListValue < len(unpickledCityFileList):
                iPlayerNum = unpickledCityFileList[unpickledCityFileListValue]
                # will the loop exit immediately here when it gets to iPlayerNum > iTempiPlayerNum or will it run through once more?
                unpickledCityFileListValue = unpickledCityFileListValue + 1
                eCityName = unpickledCityFileList[unpickledCityFileListValue]
                unpickledCityFileListValue = unpickledCityFileListValue + 1                             
                iX = unpickledCityFileList[unpickledCityFileListValue]
                unpickledCityFileListValue = unpickledCityFileListValue + 1
                iY = unpickledCityFileList[unpickledCityFileListValue]
                unpickledCityFileListValue = unpickledCityFileListValue + 1
                iPop = unpickledCityFileList[unpickledCityFileListValue]
                unpickledCityFileListValue = unpickledCityFileListValue + 1
                iCulture = unpickledCityFileList[unpickledCityFileListValue]
                unpickledCityFileListValue = unpickledCityFileListValue + 1
                #Retrieve specialists in city here
                #Retrieve religions in city here
                #Retrieve buildings here
                EndofCityTag = unpickledCityFileList[unpickledCityFileListValue]
                unpickledCityFileListValue = unpickledCityFileListValue + 1
                if iTempiPlayerNum == iPlayerNum:
                        pPlayer = gc.getPlayer(iLeaderCivCounter)
                        pCity = pPlayer.initCity(iX,iY)
                        pCity.setName(eCityName,False)
                        pCity.setPopulation(iPop)
                        pCity.setCulture(iLeaderCivCounter,iCulture,True)
        

        unpickledLeadersFile.close()
        unpickledCityFile.close()


I found this in one of the FFH2's files today when I was trying to work out what was going wrong - but the syntax is very similar to mine.
Spoiler :

Code:
#        	def formEmpire(self, iCiv, iLeader, iTeam, pCity, iAlignment):
#		iPlayer = self.getOpenPlayer()
#		pPlot = pCity.plot()
#		pPlot2 = self.findClearPlot(-1, pCity.plot())
#		if (iPlayer != -1 and pPlot2 != -1):
#			for i in range(pPlot.getNumUnits(), -1, -1):
#				pUnit = pPlot.getUnit(i)
#				pUnit.setXY(pPlot2.getX(), pPlot2.getY(), true, true, true)
#			CyGame().addPlayerAdvanced(iPlayer, iTeam, iLeader, iCiv)
#			pPlayer = gc.getPlayer(iPlayer)
#			pPlayer.acquireCity(pCity,false,false)
#			pCity.changeCulture(iPlayer, 100, True)
#			pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ARCHER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
#			pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ARCHER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
#			pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ARCHER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
#			pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ARCHER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
#			pPlayer.initUnit(gc.getInfoTypeForString('UNIT_WORKER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
#			if iAlignment != -1:
#				pPlayer.setAlignment(iAlignment)


I can't work out why when Kael writes the Cy().addPlayerAdvanced line it works and yet when I do it doesn't work (apart from Amurite magic :p).


EDIT: Solved by Snarko - it's an indentation problem - all indents must be based off the first line under the def
 
Inside Eventmanager.py, this loads the saved files (it replaces the civs/leaders and cities onto a blank/new map).:

Spoiler :

Code:
	def onGameStart(self, argsList):
		'Called at the start of the game'

		...

        	unpickledLeadersFile = open('D:\SurvivingLeadersFile', 'r')
        	unpickledLeadersFileList = pickle.load(unpickledLeadersFile)
 
 
        	unpickledCityFile = open('D:\FirstCityMapFile','r')
        	unpickledCityFileList = pickle.load(unpickledCityFile)

                unpickledCityFileListValue = 0                                          
 
                for iLeaderCivCounter in range(len(unpickledLeadersFileList)):
                        iPlayerNum, iLeader, iCiv, iTeam = unpickledLeadersFileList[iLeaderCivCounter]
                        print 'iLeaderCivCounter =', iLeaderCivCounter
			print 'iPlayerNum =', iPlayerNum
			print 'iLeader =', iLeader
			print 'iCiv =', iCiv
			print 'iTeam =', iTeam
			# This adds non-barbarian players to the game.
			if iLeaderCivCounter < len(unpickledLeadersFileList)-1:
                        	CyGame().addPlayerAdvanced(iLeaderCivCounter, iTeam, iLeader, iCiv)
                        #FFH2 only method (addPlayerAdvanced)
                        # This retrieves the variables iPlayerNum, eCityName, iX, iY, iPop, iCulture, EndofCityTag

                        iTempiPlayerNum = iPlayerNum
                        while iTempiPlayerNum == iPlayerNum and unpickledCityFileListValue < len(unpickledCityFileList):
                                iPlayerNum = unpickledCityFileList[unpickledCityFileListValue]
                                print 'unpickledCityFileListValue =', unpickledCityFileListValue
                                print 'len(unpickledCityFileList) =', len(unpickledCityFileList)
                                print 'iTempiPlayerNum =', iTempiPlayerNum
                                print 'iPlayerNum =', iPlayerNum
                                unpickledCityFileListValue = unpickledCityFileListValue + 1
                                eCityName = unpickledCityFileList[unpickledCityFileListValue]
                                unpickledCityFileListValue = unpickledCityFileListValue + 1                             
                                iX = unpickledCityFileList[unpickledCityFileListValue]
                                unpickledCityFileListValue = unpickledCityFileListValue + 1
                                iY = unpickledCityFileList[unpickledCityFileListValue]
                                unpickledCityFileListValue = unpickledCityFileListValue + 1
                                iPop = unpickledCityFileList[unpickledCityFileListValue]
                                unpickledCityFileListValue = unpickledCityFileListValue + 1
                                iCulture = unpickledCityFileList[unpickledCityFileListValue]
                                unpickledCityFileListValue = unpickledCityFileListValue + 1
                                #Retrieve specialists in city here
                                #Retrieve religions in city here
                                #Retrieve buildings here
                                EndofCityTag = unpickledCityFileList[unpickledCityFileListValue]
                                unpickledCityFileListValue = unpickledCityFileListValue + 1
                                print 'unpickledCityFileListValue =', unpickledCityFileListValue
                                if iTempiPlayerNum == iPlayerNum:
                                        if iPlayerNum == 35:
                                                print 'Got to barb initcity'
                                                pPlayer = gc.getPlayer(35)
                                                pCity = pPlayer.initCity(iX,iY)
                                                pCity.setName(eCityName,False)
                                                pCity.setPopulation(iPop)
                                                pCity.setCulture(35,iCulture,True)
                                                iPlayerNum = unpickledCityFileList[unpickledCityFileListValue]
                                        else:
                                                print 'Got to regular initcity'
                                                print 'iTempiPlayerNum =', iTempiPlayerNum
                                                pPlayer = gc.getPlayer(iLeaderCivCounter)
                                                print 'iX =', iX
                                                print 'iY =', iY
                                                # RuntimeError: unidentifiable c++ exception (initcity line) but the debug log looks fine...
                                                pCity = pPlayer.initCity(iX,iY)
                                                pCity.setName(eCityName,False)
                                                pCity.setPopulation(iPop)
                                                pCity.setCulture(iLeaderCivCounter,iCulture,True)
                                                iPlayerNum = unpickledCityFileList[unpickledCityFileListValue]
 
        	unpickledLeadersFile.close()
        	unpickledCityFile.close()


The print lines are used to print the information to the debug log file (see 2 posts below).
 
This saves the data to 2 files. I did this and then tried to load it (by commenting out this part of the program of course) onto a new map. I checked it is trying to load onto grass/plains.
Spoiler :

Code:
	def onGameEnd(self, argsList):
		'Called at the End of the game'
		print("Game is ending")

                ToSurvivingLeadersFile = open('D:\SurvivingLeadersFile', 'w')
                SurvivingLeadersList = []
                for iPlayer in range(gc.getMAX_PLAYERS()):
                        if gc.getPlayer(iPlayer).isAlive():
                                pLoopPlayer = gc.getPlayer(iPlayer)
                                iPlayerNum = iPlayer
                                iLeader = pLoopPlayer.getLeaderType()
                                iCiv = pLoopPlayer.getCivilizationType()
                                iTeam = pLoopPlayer.getTeam()
                                SurvivingLeadersList.append( [iPlayerNum, iLeader, iCiv, iTeam] )


                pickle.dump(SurvivingLeadersList, ToSurvivingLeadersFile)                
                ToSurvivingLeadersFile.close()


                ToFirstCityMapFile = open('D:\FirstCityMapFile', 'w')
                CityInfoList = []
                #this line calls gc.getMAX_PLAYERS() which is an SDK function.
                #iPlayerNum should be the same for each civ in both data files.  Here's to hoping!
                for iPlayer in range(gc.getMAX_PLAYERS()):
                        apCityList = PyPlayer(iPlayer).getCityList()
                        for pCity in apCityList:
                            iPlayerNum = iPlayer
                            CityInfoList.append(iPlayerNum)
                            eCityName = pCity.getName()
                            #What is the correct prefix for CityName.  I used 'e' but that's probably wrong.
                            CityInfoList.append(eCityName)
                            iX = pCity.getX()
                            CityInfoList.append(iX)
                            iY = pCity.getY()
                            CityInfoList.append(iY)
                            iPop = pCity.getPopulation()
                            CityInfoList.append(iPop)
                            iCulture = pCity.getCulture()
                            CityInfoList.append(iCulture)
                            iBuildingNumValue = 0
#                            #BTS only while loop.
#				for iBuildingValue in range(gc.getNumBuildingInfos()):
#					CityInfoList.append(pCity.getNumRealBuilding(iBuildingNumValue))
#                            CityInfoList.append('endcity')


                pickle.dump(CityInfoList, ToFirstCityMapFile)                
                ToFirstCityMapFile.close()
		return
 
I will highlight what I think are the important bits in blue but I will put all of the PythonDbg.log file in these following posts.
Spoiler :

Code:
Initializing Python
1. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\email
2. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\encodings
3. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx
4. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\build
5. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib
6. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale
7. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\py
8. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\tools
9. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib\colourchooser
10. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib\editor
11. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib\floatcanvas
12. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib\masked
13. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib\mixins
14. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\lib\ogl
15. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\af
16. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\ca
17. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\cs
18. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\da
19. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\de
20. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\el
21. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\es
22. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\eu
23. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\fi
24. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\fr
25. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\hi
26. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\hu
27. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\id
28. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\it
29. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\ja
30. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\lv
31. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\nb
32. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\nl
33. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\pl
34. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\pt_BR
35. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\ru
36. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\sl
37. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\sv
38. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\tr
39. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\uk
40. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\zh_CN
41. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\zh_TW
42. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\af\LC_MESSAGES
43. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\ca\LC_MESSAGES
44. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\cs\LC_MESSAGES
45. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\da\LC_MESSAGES
46. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\de\LC_MESSAGES
47. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\el\LC_MESSAGES
48. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\es\LC_MESSAGES
49. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\eu\LC_MESSAGES
50. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\fi\LC_MESSAGES
51. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\fr\LC_MESSAGES
52. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\hi\LC_MESSAGES
53. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\hu\LC_MESSAGES
54. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\id\LC_MESSAGES
55. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\it\LC_MESSAGES
56. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\ja\LC_MESSAGES
57. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\lv\LC_MESSAGES
58. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\nb\LC_MESSAGES
59. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\nl\LC_MESSAGES
60. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\pl\LC_MESSAGES
61. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\pt_BR\LC_MESSAGES
62. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\ru\LC_MESSAGES
63. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\sl\LC_MESSAGES
64. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\sv\LC_MESSAGES
65. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\tr\LC_MESSAGES
66. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\uk\LC_MESSAGES
67. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\zh_CN\LC_MESSAGES
68. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\locale\zh_TW\LC_MESSAGES
69. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\py\tests
70. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\tools\XRCed
71. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM\wx\tools\XRCed\src-images
72. Using Python sys path: ..\WARLORDS\ASSETS\PYTHON\SYSTEM
sys.path =
 
['..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\email', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\encodings', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\build', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\py', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\tools', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\colourchooser', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\editor', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\floatcanvas', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\masked', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\mixins', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\ogl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\af', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ca', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\cs', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\da', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\de', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\el', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\es', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\eu', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fi', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fr', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hi', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hu', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\id', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\it', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ja', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\lv', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nb', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pt_BR', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ru', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sv', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\tr', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\uk', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_CN', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_TW', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\af\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ca\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\cs\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\da\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\de\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\el\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\es\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\eu\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fi\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fr\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hi\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hu\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\id\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\it\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ja\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\lv\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nb\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nl\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pl\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pt_BR\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ru\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sl\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sv\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\tr\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\uk\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_CN\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_TW\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\py\\tests', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\tools\\XRCed', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\tools\\XRCed\\src-images', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM']


sys.modules =
 
{'zipimport': <module 'zipimport' (built-in)>, 'signal': <module 'signal' (built-in)>, '__builtin__': <module '__builtin__' (built-in)>, 'sys': <module 'sys' (built-in)>, '__main__': <module '__main__' (built-in)>, 'exceptions': <module 'exceptions' (built-in)>, 'CvPythonExtensions': <module 'CvPythonExtensions' (built-in)>}


sys.builtin_module_names =
 
('CvPythonExtensions', '__builtin__', '__main__', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_csv', '_heapq', '_hotshot', '_locale', '_multibytecodec', '_random', '_sre', '_subprocess', '_symtable', '_weakref', '_winreg', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'md5', 'mmap', 'msvcrt', 'nt', 'operator', 'parser', 'regex', 'rgbimg', 'sha', 'signal', 'strop', 'struct', 'sys', 'thread', 'time', 'xxsubtype', 'zipimport')
 
Spoiler :

Code:
1. Using moduleSearchDirs: python\entrypoints\
2. Using moduleSearchDirs: python\screens\
3. Using moduleSearchDirs: python\pywb\
4. Using moduleSearchDirs: python\
5. Using moduleSearchDirs: python\pitboss\
6. Using moduleSearchDirs: python\pyhelper\
7. Using moduleSearchDirs: python\pyunit\
8. Using moduleSearchDirs: python\_debugtools\
9. Using moduleSearchDirs: 
EntryPoint module:cvrandomeventinterface
EntryPoint module:cvspellinterface
EntryPoint module:cvscreensinterface
EntryPoint module:cvpopupinterface
EntryPoint module:cvtranslator
EntryPoint module:cvgameinterface
EntryPoint module:cvoptionsscreencallbackinterface
EntryPoint module:cvwbinterface
EntryPoint module:pbmain
EntryPoint module:cvappinterface
EntryPoint module:rainforest
EntryPoint module:terra
EntryPoint module:donut
EntryPoint module:big_and_small
EntryPoint module:boreal
EntryPoint module:medium_and_small
EntryPoint module:global_highlands
EntryPoint module:hemispheres
EntryPoint module:arboria
EntryPoint module:highlands
EntryPoint module:cvgameinterfacefile
EntryPoint module:cvmapscriptinterface
EntryPoint module:islands
EntryPoint module:great_plains
EntryPoint module:continents
EntryPoint module:fantasy_realm
EntryPoint module:archipelago
EntryPoint module:wheel
EntryPoint module:lakes
EntryPoint module:tilted_axis
EntryPoint module:inland_sea
EntryPoint module:mirror
EntryPoint module:fractal
EntryPoint module:oasis
EntryPoint module:pangaea
EntryPoint module:hub
EntryPoint module:balanced
EntryPoint module:maze
EntryPoint module:custom_continents
EntryPoint module:shuffle
EntryPoint module:ring
EntryPoint module:team_battleground
EntryPoint module:cvunitcontrolinterface
EntryPoint module:cvdiplomacyinterface
EntryPoint module:cvdebuginterface
EntryPoint module:cvscreenutilsinterface
EntryPoint module:cveventinterface
EntryPoint module:ice_age
load_module CvEventInterface

load_module CvUtil

load_module traceback

load_module CvEventManager

load_module CvScreensInterface

load_module CvMainInterface

load_module ScreenInput

load_module CvScreenEnums

load_module time

load_module CvDomesticAdvisor

load_module CvTechChooser

load_module CvForeignAdvisor

load_module math

load_module CvExoticForeignAdvisor

load_module IconGrid

load_module DomPyHelpers

load_module PyHelpers

load_module TechTree

load_module re

load_module CvMilitaryAdvisor

load_module CvFinanceAdvisor

load_module CvReligionScreen

load_module CustomFunctions

load_module Popup

load_module CvCorporationScreen

load_module CvCivicsScreen

load_module string

load_module CvVictoryScreen

load_module CvEspionageAdvisor

load_module CvOptionsScreen

load_module CvReplayScreen

load_module CvHallOfFameScreen

load_module CvDanQuayle

load_module CvGameUtils

load_module CvUnVictoryScreen

load_module CvDawnOfMan

load_module CvTechSplashScreen

load_module CvTopCivs

load_module random

load_module CvInfoScreen

load_module CvIntroMovieScreen

load_module CvVictoryMovieScreen

load_module CvWonderMovieScreen

load_module CvEraMovieScreen

load_module CvSpaceShipScreen

load_module CvPediaMain

load_module CvPediaScreen

load_module CvScreen

load_module CvPediaTech

load_module CvPediaUnit

load_module CvPediaBuilding

load_module CvPediaPromotion

load_module CvPediaUnitChart

load_module CvPediaBonus

load_module CvPediaTerrain

load_module CvPediaFeature

load_module CvPediaImprovement

load_module CvPediaCivic

load_module CvPediaCivilization

load_module CvPediaLeader

load_module CvPediaSpecialist

load_module CvPediaHistory

load_module CvPediaProject

load_module CvPediaReligion

load_module CvPediaSpell

load_module CvPediaCorporation

load_module CvWorldBuilderScreen

load_module CvWorldBuilderDiplomacyScreen

load_module CvDebugTools

load_module CvDebugInfoScreen

load_module CvMapGeneratorUtil

load_module CvGFCScreen

load_module CvPopupInterface

load_module CvScreenUtilsInterface

load_module CvScreenUtils

init-ing world builder screen

load_module CvWBPopups

load_module CvCameraControls

load_module CvAdvisorUtils

load_module pickle
 
Spoiler :

Code:
PY:OnInit
load_module CvAppInterface

load_module Archipelago

load_module Balanced

load_module Continents

load_module Custom_Continents

load_module Fantasy_Realm

load_module Fractal

load_module Great_Plains

load_module Highlands

load_module Hub

load_module Ice_Age

load_module Inland_Sea

load_module Islands

load_module Lakes

load_module Maze

load_module Mirror

load_module Oasis

load_module Pangaea

load_module Ring

load_module Shuffle

load_module Team_Battleground

load_module Terra

load_module Tilted_Axis

load_module Wheel

load_module Arboria

load_module Big_and_Small

load_module Boreal

load_module Donut

load_module Global_Highlands

load_module Hemispheres

load_module Medium_and_Small

load_module Rainforest

load_module CvWBInterface

load_module CvWBDesc

load_module array

PY:loadDesc:C:\Users\User\Documents\My Games\Beyond the Sword\Saves\WorldBuilder\testmaptiny, curDir:D:\2K Games\Firaxis Games\Sid Meier's Civilization 4 Complete\Beyond the Sword
Reading game desc

Reading teams desc

reading team 0

reading team 1

reading team 2

reading team 3

reading team 4

reading team 5

reading team 6

reading team 7

reading team 8

reading team 9

reading team 10

reading team 11

reading team 12

reading team 13

reading team 14

reading team 15

reading team 16

reading team 17

reading team 18

reading team 19

reading team 20

reading team 21

reading team 22

reading team 23

reading team 24

reading team 25

reading team 26

reading team 27

reading team 28

reading team 29

reading team 30

reading team 31

reading team 32

reading team 33

reading team 34

Reading players desc

Reading map desc

Reading/creating 384 plot descs

Reading/creating 0 sign descs

WB read done
 
Spoiler :

Code:
[COLOR="Blue"]
PY:Player 0's alive status set to: 1
PY:Player 1's alive status set to: 1
PY:Player 2's alive status set to: 1
PY:Player 35's alive status set to: 1[/COLOR]
map rebuild. gridw=24, gridh=16
preapply plots

map apply - recalc areas/regions

apply plots

apply signs

Randomize Resources

WB apply done

load_module CvGameInterface

load_module CvGameInterfaceFile

load_module encodings

load_module encodings.latin_1

8500 - gold

8501 - research

8502 - culture

8503 - espionage

8483 - food

8484 - production

8485 - commerce

8550 - fellowship of leaves

8551 - fellowship of leaves

8552 - order

8553 - order

8554 - octopus overlords

8555 - octopus overlords

8556 - runes of kilmorph

8557 - runes of kilmorph

8558 - ashen veil

8559 - ashen veil

8560 - empyrean

8561 - empyrean

8562 - council of esus

8563 - council of esus

3 SCREEN TURNED ON

99 SCREEN TURNED ON

load_module encodings.raw_unicode_escape

load_module encodings.string_escape
[COLOR="Blue"]
iLeaderCivCounter =
 
0

iPlayerNum =
 
0

iLeader =
 
27

iCiv =
 
12

iTeam =
 
0

PY:Player 0's alive status set to: 1
unpickledCityFileListValue =
 
0

len(unpickledCityFileList) =
 
21

iTempiPlayerNum =
 
0

iPlayerNum =
 
0

unpickledCityFileListValue =
 
7

Got to regular initcity

iTempiPlayerNum =
 
0

iX =
 
8

iY =
 
13

iLeaderCivCounter =
 
1

iPlayerNum =
 
1

iLeader =
 
25

iCiv =
 
11

iTeam =
 
1

PY:Player 1's alive status set to: 1
unpickledCityFileListValue =
 
7

len(unpickledCityFileList) =
 
21

iTempiPlayerNum =
 
1

iPlayerNum =
 
1

unpickledCityFileListValue =
 
14

Got to regular initcity

iTempiPlayerNum =
 
1

iX =
 
11

iY =
 
3

iLeaderCivCounter =
 
2

iPlayerNum =
 
2

iLeader =
 
30

iCiv =
 
14

iTeam =
 
2

PY:Player 2's alive status set to: 1
unpickledCityFileListValue =
 
14

len(unpickledCityFileList) =
 
21

iTempiPlayerNum =
 
2

iPlayerNum =
 
2

unpickledCityFileListValue =
 
21

Got to regular initcity

iTempiPlayerNum =
 
2

iX =
 
21

iY =
 
13[/COLOR]

PY:saveDesc:C:\Users\User\Documents\My Games\Beyond the Sword\Saves\WorldBuilder\WBQuickSave, curDir:D:\2K Games\Firaxis Games\Sid Meier's Civilization 4 Complete\Beyond the Sword
WBSave done

PY:OnPreSave
Game is ending


Now there were 3 civs in the save file, each with their capital city (I retired on turn 2): the amurites (me), the hippus, and the balseraphs. So the save files have dain, tasunke??, and keelyn and 3 capital cities.

If you want to try it, just copy the saving part into your FFH2 eventmanager.py file and then remove/comment out it before trying to load it with the loading part of the program (again copy-paste to your eventmanager.py file). Note that it will create the 2 files in D drive (you can easily change that to C drive if you want).
 
Back
Top Bottom