Quick Modding Questions Thread

This would be quite complex I think, the air units might be in globaldefines, but there is nothing for sea or land, also coding the ai to cope with this change would be quite dificult too, it would require custom python maybe, but probably it would require SDK work. So it would be more complex than just changing some values in a file..
 
Just a quick question: Which file(s) in Final Frontier make the static infront of the leaderheads?

Edit: And also, where are the planet names stored and how do you change them
 
This would be quite complex I think, the air units might be in globaldefines, but there is nothing for sea or land, also coding the ai to cope with this change would be quite dificult too, it would require custom python maybe, but probably it would require SDK work. So it would be more complex than just changing some values in a file..


The airport's capacity for air units is in the building infos file, I'm able to adjust that to allow as many air units as I want to have in a city with an airport, but no luck with the default value for air units allowed in a city without an airport. I looked in the global defines file as well as some python files but couldn't find anything....

As far as anything to do with land and sea unit maximims in a city, does anyone else have any suggestions?

If these are complex changes to make, are there any advanced modders out there that would wanna try to take on the challenge?

Thanks
 
Just a quick question: Which file(s) in Final Frontier make the static infront of the leaderheads?

Edit: And also, where are the planet names stored and how do you change them

Th static is apparently caused by the REPLACE_LEADER_FORGROUND entry in CIV4ArtDefines_Misc.xml. The NIF and KFM it points to do the trick, with the actual static in the NIF coming from in the file Art\Leaderheads\Space Leader\LeaderStatic.dds in the main BtS Art folder.

The planet names are generated in Python and stored, along with everything else about planets, in the script data in Python. In regular FF it randomly picks the name parts for each planet. In Final Frontier Plus I changed it to have one iof the two (always the second) the same for every planet in any star system and added some names to pick from. The actual location where the names are created is in the createRandomSystem function in the CvSolarSystem.py file. The actual planet name lists are in FinalFrontierTextInfosObjects.xml.

BTW, if you are not already doing so I suggest using FFP as a base for a new mod instead of regular FF. FFP fixes a bunch of bugs, runs faster, has a slightly smarter AI in some ways, andshoudl be a little bit easier to mod since some stuff was moved from being special cases in the Python to XML tags so you can just specify those particular properties in the XML instead of having to modify the Python to do those things. Also, has BUG merged in.
 
Just curious.

Code:
int CvBuildingInfo::getSpecialistExtraCommerce(int i) const
{
	FAssertMsg(i < NUM_COMMERCE_TYPES, "Index out of bounds");
	FAssertMsg(i > -1, "Index out of bounds");
	return m_piSpecialistExtraCommerce ? m_piSpecialistExtraCommerce[i] : -1;
}

Code:
int getSpecialistExtraCommerce(int i) const;	// Exposed to Python

getSpecialistExtraCommerce(int i) is already defined in vanilla BTS for CvBuildingInfos in CvInfos, but when you try to call it with python, it gives an error CvBuildingInfos object has no attribute "getSpecialistExtraCommerce"?
 
Just curious.

Code:
int CvBuildingInfo::getSpecialistExtraCommerce(int i) const
{
	FAssertMsg(i < NUM_COMMERCE_TYPES, "Index out of bounds");
	FAssertMsg(i > -1, "Index out of bounds");
	return m_piSpecialistExtraCommerce ? m_piSpecialistExtraCommerce[i] : -1;
}

Code:
int getSpecialistExtraCommerce(int i) const;	// Exposed to Python

getSpecialistExtraCommerce(int i) is already defined in vanilla BTS for CvBuildingInfos in CvInfos, but when you try to call it with python, it gives an error CvBuildingInfos object has no attribute "getSpecialistExtraCommerce"?

That would probably mean the tag isn't exposed to python in the dll you're using.
 
The sad thing is it is not using any modified dll, which means it is running the BTS dll...
 
In the regular BtS DLL, the ones for the civic info and player objects are exposed to Python but the one for the building info is not. So where the CvInfos.h file says it is exposed to Python for the CvBuildingInfo is incorrect.
 
So sad, why firaxis likes to do things halfway :D
That is just one of those xml infos I found not exposed to python.
Many other info files also have 1 or 2 tags which are forgotten...
 
it does make me smile when they over engineer some parts and then forget to engineer others, like some fields where you add an entry and then also have to add a boolean and switch it on! If I went to the trouble of adding an entry I am pretty sure I am not going to want to switch that entry off!!!
 
1. Does anyone know of a way to mod defensive pact agreements so that you do not break your defensive pacts with allies when you declare war on a civ? I always thought it was unrealistic that all defensive pacts were broken when war was declared...

2. Does anyone know of a way to mod religious shrines to act kind of similiar to Palaces as opposed to the default where they can only be built in the founding city of the religion.

Example:

Hinduism gets founded by a rival civ. After Hinduism spreads to my civ, I build the hindu Shrine in one of my cities and my city becomes the capital of the religion. I think this might make game play more dynamic in regards to religion on the game...just because you founded the religion doesn't mean the religious capital always stays in your civ/city
 
Remove holy city requirement in buildinginfo.xml
Use python to shift holy city when built.
 
Remove holy city requirement in buildinginfo.xml
Use python to shift holy city when built.

Thanks,

Removing the holy city requirement shouldnt be too difficult, I am pretty used to modding xml files. I don't know much about modding python, would you care to provide a step by step?

Any advice about the defensive pacts being kept with allies after a declaration of war on a rival?
 
onBuildingBuilt, CvEventManager

1) Check if Building Built is a Shrine
2) Check what is the respective religion
3) Shift Holy City
 
1. Does anyone know of a way to mod defensive pact agreements so that you do not break your defensive pacts with allies when you declare war on a civ? I always thought it was unrealistic that all defensive pacts were broken when war was declared...

Looks like theres a mod that is similar in BBAI global defines but the problem is that its more of an alliance than a defensive pact......If you have defensive pacts with civs, and you declare war on a different civ, then all the civs that you have a defensive pact with will automatically declare war too. Anyone know how to change this?
 
Back
Top Bottom