Modmodding Q&A Thread

Looks like a formatting error in the XML then, make sure that all tags exist and are properly closed. The best way to find the error is usually to undo all changes, and then incrementally readd them while loading the mod between each step.
 
I found that the error points out Machu Picchu's PrereqCivic part, which worked well in original files. It makes me very confused...

Let me come back after checking XML files.
 
I'm back again! Now it runs properly, except the fact that I didn't finished UP and UHV for new civ yet.

Here's the question: What decides the historical area of each civs? It seems like core area decided by python files, but historical area seems not. Is it related with AI warmap or citymap?

++ And what decides the flip zone? :mischief:
 
Files with a settler map value of 90 or more are historical. The settler maps are in CvRhyes.cpp.

Flip zones are a civ's core area. The flip zone for a couple of AI civs is increased which happens in the initBirth() method in RiseAndFall.py.
 
Files with a settler map value of 90 or more are historical. The settler maps are in CvRhyes.cpp.

Flip zones are a civ's core area. The flip zone for a couple of AI civs is increased which happens in the initBirth() method in RiseAndFall.py.

I found initBirth()'s definition code:

if iCiv == iMongolia and utils.getHumanID() != iMongolia:
tTopLeft = (81, 45) # 6 more west, 1 more south
if iCiv == iTurkey and utils.getHumanID() != iTurkey and not pByzantium.isAlive():
tTopLeft = (67, 41) # two more west
if iCiv == iPersia and utils.getHumanID() != iPersia:
tTopLeft = (72, 37) # include Assyria and Anatolia
if iCiv == iSpain and utils.getHumanID() != iSpain:
tBottomRight = (55, 46)
if iCiv == iInca and utils.getHumanID() != iInca:
tTopLeft = (26, 19)
tBottomRight = (31, 24)
if iCiv == iArgentina and utils.getHumanID() != iArgentina:
tTopLeft = (29, 3)


Do those new TL and BR values related with actual core areas? If not, then if I make another line for new civ with out "and utils.getHumanID() != iAustralia" part, will it change the flip area for any cases? (whether player is a human player or not.)
 
The starting values of tTopLeft and tBottomRight are the core areas. They will be overwritten in the quoted part of the code if you include your civilization there. Of course you don't have to restrict it to AI civs if you don't want to.
 
I want some help with modding . For my India game, I want to make the Mughal spawn conditional upon the Seljuks controlling Afghanistan. How would I remove the Mughals in case I succeed in keeping the Seljuks out ? Which file do I modify ? Also is there a way to get rid of the vassal caps ?
 
The most convenient location to stop a spawn is the initBirth() method in RiseAndFall.py. There are a couple of examples already, like Thailand or Byzantium.

There is a method that counts the number of cities of a civ in a specific region, it's used for several UHV goals in Victory.py if you want to look it up.

The vassal limit is hardcoded into the DLL as far as I know.
 
I followed the instruction of ASAF's guide, but when I try to load the CvGameCoreDLL.sln (I copied all files from the CvGameCore folder in the DoC mod folder, which includes this file), I got an error saying:

"The selected file is a solution file, but was created by a newer version of this application and cannot be opened."

Is this because I use VS2008 and you got a newer version (VS2010)? If yes, where can I get it?
Or can I use that file from the vanilla BTS gamecore?
 
Exactly, try to use VS2010. The Express version is free if you register with Microsoft.
 
Leo, I have a small problem with my scenario. I don't know where this goes since this is technically not a modmodmod but it's a modified map, so I'm posting this here.

So, just for fun, O finished a scenario I mentioned in the Corrupt-A-Wish thread a very long time ago. However, whenever I open the scenario as any civ that spawns further than Persia, the game just crashes.

One of the many changes is that I put pretty much every civ that exists in the game, alive and well. Is that the cause of the problem? In addition, I made this on 1.11 (that means no SVN). One problem I saw that is caused by this is that I once tried to play as the Byzantines and I saw them with 10000 score (they only have Trebizond in this scenario)

Here's the scenario file.
 

Attachments

The most convenient location to stop a spawn is the initBirth() method in RiseAndFall.py. There are a couple of examples already, like Thailand or Byzantium.

There is a method that counts the number of cities of a civ in a specific region, it's used for several UHV goals in Victory.py if you want to look it up.

The vassal limit is hardcoded into the DLL as far as I know.

Can you tell me what exactly was changed in the file ? I'm trying to change it right now but I'm unsure of which line to change in the RiseandFall.py.
 
Leo, I have a small problem with my scenario. I don't know where this goes since this is technically not a modmodmod but it's a modified map, so I'm posting this here.

So, just for fun, O finished a scenario I mentioned in the Corrupt-A-Wish thread a very long time ago. However, whenever I open the scenario as any civ that spawns further than Persia, the game just crashes.

One of the many changes is that I put pretty much every civ that exists in the game, alive and well. Is that the cause of the problem? In addition, I made this on 1.11 (that means no SVN). One problem I saw that is caused by this is that I once tried to play as the Byzantines and I saw them with 10000 score (they only have Trebizond in this scenario)

Here's the scenario file.
Are different civs available from the start in your scenario than in the normal 1700AD one?
Can you tell me what exactly was changed in the file ? I'm trying to change it right now but I'm unsure of which line to change in the RiseandFall.py.
It should be right at the beginning of the initBirth() method.
 
Are different civs available from the start in your scenario than in the normal 1700AD one?

Pretty much I put every civ that exists in every start (including the Seljuks, but I forgot to include the celts and I didn't include America, Argentina and Brazil). However, I didn't mod any other civs in.
 
Does it replace the 1700AD scenario?
 
Okay that's not easily possible because of all the scenario scripting. I can't check the code right now but there should be a method to determine the scenario you're in in RFCUtils.py. It is identified by looking which civs are playable. If you have enabled additional ones the logic might be messed up.
 
Ah, I forgot to mention that the modded scenario is not meant to replace the original 1700 A.D scenario. It is meant to be a separate scenario derivated from it.

I'm not very familiarized with RFC modmodding, so I will probabily misunderstand a couple of things.
 
I can tell you more as soon as I'm back at my computer.
 
Back
Top Bottom