Modern Alliances

By the way... Singapore is a country not a city state :D
 
I can't say your wrong since you live in Singapore, but every source i see, which is upward of 10, says they are a city state. I am not saying it is not a country, but what a city state is is basically a city that is also a country, and several sources say that it is the most city-state like city state :)lol:) in the world since it is the most city state that meets the full definitians of a soverign state

I did attempt to look on the singapore governement website for a more reliable resource, but couldn't find anything
 
yeah initially I thought city states only refer to cities which are part of a bigger country yet have their own government rights.
But it seems that even if the city itself is the whole country, it can still be classified as a city state, so no issue lol

However, 1 thing I can be sure of:
Mr Nathan is no longer the "current" president.
Retired :D
 
I basically will merge in my C++ changes into that DLL when everything is finsihed. (I could do it now without the unit code, which I haven't done yet but I will wait until the end :p)
 
Not sure if you are aware there is a problem with your download link. Unless it is only me having the problem to download from a missing page. Can you please confirm.
 
@ J_mie

Before you make me a new DLL, could you add some other things to it? I know you said you would before, but just amking sure and dont want you to create a DLL and then do it again later. I can supply you with what to attempt to put in the DLL later, since for now we should focus on finishing natural wonders mod
 
@ Platyping

So the ancient wonders isn't working:mad: I fixed my civ so now I actually have time to try it, even when I set it so it is a random number between 0-1, there's no wonder after 50 turns, here is the code, any ideas?
Code:
def onBeginGameTurn(self, argsList):
		'Called at the beginning of the end of each turn'
		iGameTurn = argsList[0]
		## Ancient Wonders Start ##
		if CyGame().getSorenRandNum(1, "Wonder Building") == 0:
			AncientWonder = []
			for iWonder in range(gc.getNumBuildingInfos()):
				Wonderinfo = gc.getBuildingInfo(iWonder)
				WonderBuildingClass = Wonderinfo.getBuildingClassType()
				WonderSpecialBuilding = Wonderinfo.getSpecialBuildingType()
				if WonderSpecialBuilding == gc.getInfoTypeForString("SPECIALBUILDING_ANCIENT_WONDER") and CyGame().getBuildingClassCreatedCount(WonderBuildingClass) == 0:
					AncientWonder.append(iWonder)

			if len(AncientWonder) > 0:
				OlyPlayer = []
				for iPlayerX in range(gc.getMAX_CIV_PLAYERS()):
					pPlayerX = gc.getPlayer(iPlayerX)
					if pPlayerX.isAlive()==true:
						OlyPlayer.append(pPlayerX)

				pPlayer = OlyPlayer[CyGame().getSorenRandNum(len(OlyPlayer), "which player")]
				citychance = CyGame().getSorenRandNum(pPlayer.getNumCities(), "which city")

				i = 0
				(loopCity, iter) = pPlayer.firstCity(false)
				while(loopCity):
					if i == citychance:
						WhichWonder = CyGame().getSorenRandNum(len(AncientWonder), "which wonder")
						Wonderinfo = gc.getBuildingInfo(AncientWonder[WhichWonder])
						if Wonderinfo.isWater():
							if loopCity.isCoastal(10):
								loopCity.setNumRealBuilding(AncientWonder[WhichWonder], 1)
						else:
							loopCity.setNumRealBuilding(AncientWonder[WhichWonder], 1)
if ((not gc.getGame().isNetworkMultiPlayer()) and (pPlayer.getID() == gc.getGame().getActivePlayer())):
	popupInfo = CyPopupInfo()
	popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
	popupInfo.setData1(AncientWonder[WhichWonder])
	popupInfo.setData2(loopCity.getID())
	popupInfo.setData3(0)
	popupInfo.setText(u"showWonderMovie")
	popupInfo.addPopup(pPlayer.getID())
CyInterface().addImmediateMessage(CyTranslator().getText("TXT_ANCIENT_START",(gc.getBuildingInfo(AncientWonder[WhichWonder]).getDescription(),loopCity.getName(),pPlayer.getCivilizationDescriptionKey(),)), None)
					i += 1
					(loopCity, iter) = pPlayer.nextCity(iter, false)
## Ancient Wonders End ##

		CvTopCivs.CvTopCivs().turnChecker(iGameTurn)
 
hmm strange how both this doesn't work AND mine? problem with your civ still?

make sure you enable python exceptions!
 
Did you... set up a new special building class for the wonders?

Anyway, the indention for movie display and text display at last portion is wrong
 
How do you enable python exceptions again? is it this?
Code:
; Set to 1 for no python exception popups
HidePythonExceptions = 0

Because when I do that, when I load mod it gives me a boat load of errors, in which I did not get before i reinstalled civ, and had it enabled (you only have to enable once so I dont remember how to)
 
Yes, it gives errors because, there ARE errors like the obvious indentation errors I mentioned.
You might as well delete the whole chunch of movie and message display codes at bottom part first and solve other issues
 
Hmm thats weird, since I never got errors before, doesnt make sence o well still gotta fix them

Would this be the right indentation?
Code:
def onBeginGameTurn(self, argsList):
		'Called at the beginning of the end of each turn'
		iGameTurn = argsList[0]
		## Ancient Wonders Start ##
		if CyGame().getSorenRandNum(1, "Wonder Building") == 0:
			AncientWonder = []
			for iWonder in range(gc.getNumBuildingInfos()):
				Wonderinfo = gc.getBuildingInfo(iWonder)
				WonderBuildingClass = Wonderinfo.getBuildingClassType()
				WonderSpecialBuilding = Wonderinfo.getSpecialBuildingType()
				if WonderSpecialBuilding == gc.getInfoTypeForString("SPECIALBUILDING_ANCIENT_WONDER") and CyGame().getBuildingClassCreatedCount(WonderBuildingClass) == 0:
					AncientWonder.append(iWonder)

			if len(AncientWonder) > 0:
				OlyPlayer = []
				for iPlayerX in range(gc.getMAX_CIV_PLAYERS()):
					pPlayerX = gc.getPlayer(iPlayerX)
					if pPlayerX.isAlive()==true:
						OlyPlayer.append(pPlayerX)

				pPlayer = OlyPlayer[CyGame().getSorenRandNum(len(OlyPlayer), "which player")]
				citychance = CyGame().getSorenRandNum(pPlayer.getNumCities(), "which city")

				i = 0
				(loopCity, iter) = pPlayer.firstCity(false)
				while(loopCity):
					if i == citychance:
						WhichWonder = CyGame().getSorenRandNum(len(AncientWonder), "which wonder")
						Wonderinfo = gc.getBuildingInfo(AncientWonder[WhichWonder])
						if Wonderinfo.isWater():
							if loopCity.isCoastal(10):
								loopCity.setNumRealBuilding(AncientWonder[WhichWonder], 1)
						else:
							loopCity.setNumRealBuilding(AncientWonder[WhichWonder], 1)
			if ((not gc.getGame().isNetworkMultiPlayer()) and (pPlayer.getID() == gc.getGame().getActivePlayer())):
				popupInfo = CyPopupInfo()
				popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
				popupInfo.setData1(AncientWonder[WhichWonder])
				popupInfo.setData2(loopCity.getID())
				popupInfo.setData3(0)
				popupInfo.setText(u"showWonderMovie")
				popupInfo.addPopup(pPlayer.getID())
				CyInterface().addImmediateMessage(CyTranslator().getText("TXT_ANCIENT_START",(gc.getBuildingInfo(AncientWonder[WhichWonder]).getDescription(),loopCity.getName(),pPlayer.getCivilizationDescriptionKey(),)), None)
					i += 1
					(loopCity, iter) = pPlayer.nextCity(iter, false)
## Ancient Wonders End ##

Not sure since python errors seem to make no sence to me
 
Code:
## Ancient Wonders Start ##
		if CyGame().getSorenRandNum(1, "Wonder Building") == 0:
			AncientWonder = []
			for iWonder in range(gc.getNumBuildingInfos()):
				Wonderinfo = gc.getBuildingInfo(iWonder)
				WonderBuildingClass = Wonderinfo.getBuildingClassType()
				WonderSpecialBuilding = Wonderinfo.getSpecialBuildingType()
				if WonderSpecialBuilding == gc.getInfoTypeForString("SPECIALBUILDING_CATHEDRAL") and CyGame().getBuildingClassCreatedCount(WonderBuildingClass) == 0:
					AncientWonder.append(iWonder)

			if len(AncientWonder) > 0:
				OlyPlayer = []
				for iPlayerX in range(gc.getMAX_CIV_PLAYERS()):
					pPlayerX = gc.getPlayer(iPlayerX)
					if pPlayerX.isAlive()==true:
						OlyPlayer.append(pPlayerX)

				pPlayer = OlyPlayer[CyGame().getSorenRandNum(len(OlyPlayer), "which player")]
				citychance = CyGame().getSorenRandNum(pPlayer.getNumCities(), "which city")

				i = 0
				b_WonderBuilt = false
				(loopCity, iter) = pPlayer.firstCity(false)
				while(loopCity):
					if i == citychance:
						WhichWonder = CyGame().getSorenRandNum(len(AncientWonder), "which wonder")
						Wonderinfo = gc.getBuildingInfo(AncientWonder[WhichWonder])
						if Wonderinfo.isWater():
							if loopCity.isCoastal(10):
								loopCity.setNumRealBuilding(AncientWonder[WhichWonder], 1)
								b_WonderBuilt = true
						else:
							loopCity.setNumRealBuilding(AncientWonder[WhichWonder], 1)
							b_WonderBuilt = true
					if b_WonderBuilt == true:
						if ((not gc.getGame().isNetworkMultiPlayer()) and (pPlayer.getID() == gc.getGame().getActivePlayer())):
							popupInfo = CyPopupInfo()
							popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
							popupInfo.setData1(AncientWonder[WhichWonder])
							popupInfo.setData2(loopCity.getID())
							popupInfo.setData3(0)
							popupInfo.setText(u"showWonderMovie")
							popupInfo.addPopup(pPlayer.getID())
						CyInterface().addImmediateMessage(CyTranslator().getText("TXT_ANCIENT_START",(gc.getBuildingInfo(AncientWonder[WhichWonder]).getDescription(),loopCity.getName(),pPlayer.getCivilizationDescriptionKey(),)), None)
						break
					i += 1
					(loopCity, iter) = pPlayer.nextCity(iter, false)
## Ancient Wonders End ##

Try this first, test with cathedrals
 
cathedrals have been removed, but the special building class is fine, it matches up with what I created( first thing I checked when I got error)

Most likely beside the indentation, if I have any errors it would be copying your wonders/projects probably putting it a line up to down to far
 
Fixed indentation and no more errors thank :goodjob:

but the ancient wonders still dont show up, and the specialbuilding is definatly right

the only code I need to change to be specific to my mod is this right?
Code:
if WonderSpecialBuilding == gc.getInfoTypeForString("SPECIALBUILDING_ANCIENT_WONDER") and CyGame().getBuildingClassCreatedCount(WonderBuildingClass) == 0:

Just switch the special buildings and it whoudl work right? Otherwise it is directly from what you just posted,and i do not get any errors
 
Top Bottom