View Full Version : How to stop civs from discovering certain inventions?
Hoodinski Dec 04, 2005, 02:05 PM Hi there. I'm really fresh around here and I was wondering- is it possible to stop all civilizations discover technologies from a certain point? I'd like the medieval to be the deadline beyond which no civ could go. Is that possible? Someone mentioned deleting the tech but I'm afraid I don't know how. I'd be glad for your help.
Reveilled Dec 04, 2005, 04:21 PM Hi there. I'm really fresh around here and I was wondering- is it possible to stop all civilizations discover technologies from a certain point? I'd like the medieval to be the deadline beyond which no civ could go. Is that possible? Someone mentioned deleting the tech but I'm afraid I don't know how. I'd be glad for your help.
Open the CIV4TechInfos.xml. There are a few ways of doing this. The first, which is simplest but most time consuming is to delete the techs you don't want. For example, you wouldn't want Industrialism, so find the entry for Industrialism (which will have TECH_INDUSTRIALISM in its <type> field, so you can just search for its name), and delete everything from the preceeding <TechInfo> (which should be on the line above TECH_INDUSTRIALISM) to </TechInfo> (including the tags themselves).
The second slightly more complicated method is to find the initial Rennaisance techs and change their requirements to make them impossible to research. I believe these are Nationalism, Printing Press, Education, Gunpowder and Astronomy. Find these techs, and scroll down until you find a part of their section that reads <AndPreReqs> or <AndPreReqs/>. This is the requirement tech, which you must have discovered in order to research the technology. Replace this tag (in the case of <AndPreReqs>, you have to replace the tag and everything between it) with:
<AndPreReqs>
<PrereqTech>TECH_FUTURE_TECH</PrereqTech>
</AndPreReqs>
The result here will be that researching that particular technology will be impossible without discovering Future Tech first, which is impossible because you can't research Future Tech's prerequisistes.
Just to make sure you know what I'm talking about, here's an edited version of Gunpowder:
<TechInfo>
<Type>TECH_GUNPOWDER</Type>
<Description>TXT_KEY_TECH_GUNPOWDER</Description>
<Civilopedia>TXT_KEY_TECH_GUNPOWDER_PEDIA</Civilopedia>
<Help/>
<Strategy>TXT_KEY_TECH_GUNPOWDER_STRATEGY</Strategy>
<Advisor>ADVISOR_MILITARY</Advisor>
<iAIWeight>0</iAIWeight>
<iAITradeModifier>10</iAITradeModifier>
<iCost>1000</iCost>
<Era>ERA_RENAISSANCE</Era>
<FirstFreeUnitClass>NONE</FirstFreeUnitClass>
<iWorkerSpeedModifier>0</iWorkerSpeedModifier>
<iTradeRoutes>0</iTradeRoutes>
<iHealth>0</iHealth>
<iHappiness>0</iHappiness>
<iFirstFreeTechs>0</iFirstFreeTechs>
<iAsset>32</iAsset>
<iPower>12</iPower>
<bRepeat>0</bRepeat>
<bTrade>1</bTrade>
<bDisable>0</bDisable>
<bGoodyTech>0</bGoodyTech>
<bExtraWaterSeeFrom>0</bExtraWaterSeeFrom>
<bMapCentering>0</bMapCentering>
<bMapVisible>0</bMapVisible>
<bMapTrading>0</bMapTrading>
<bTechTrading>0</bTechTrading>
<bGoldTrading>0</bGoldTrading>
<bOpenBordersTrading>0</bOpenBordersTrading>
<bDefensivePactTrading>0</bDefensivePactTrading>
<bPermanentAllianceTrading>0</bPermanentAllianceTrading>
<bBridgeBuilding>0</bBridgeBuilding>
<bIrrigation>0</bIrrigation>
<bIgnoreIrrigation>0</bIgnoreIrrigation>
<bWaterWork>0</bWaterWork>
<iGridX>11</iGridX>
<iGridY>14</iGridY>
<DomainExtraMoves/>
<CommerceFlexible/>
<TerrainTrades/>
<Flavors>
<Flavor>
<FlavorType>FLAVOR_MILITARY</FlavorType>
<iFlavor>9</iFlavor>
</Flavor>
<Flavor>
<FlavorType>FLAVOR_PRODUCTION</FlavorType>
<iFlavor>4</iFlavor>
</Flavor>
<Flavor>
<FlavorType>FLAVOR_SCIENCE</FlavorType>
<iFlavor>4</iFlavor>
</Flavor>
</Flavors>
<OrPreReqs>
<PrereqTech>TECH_GUILDS</PrereqTech>
<PrereqTech>TECH_EDUCATION</PrereqTech>
</OrPreReqs>
<AndPreReqs>
<PrereqTech>TECH_FUTURE_TECH</PrereqTech>
</AndPreReqs>
<Quote>TXT_KEY_TECH_GUNPOWDER_QUOTE</Quote>
<Sound>AS2D_TECH_GUNPOWDER</Sound>
<SoundMP>AS2D_TECH_MP_GUNPOWDER</SoundMP>
<Button>,Art/Interface/Buttons/TechTree/Gunpowder.dds,Art/Interface/Buttons/TechTree_Atlas.dds,5,4</Button>
</TechInfo>
The change is in bold.
Kindness Dec 04, 2005, 06:05 PM An easier way to do this would be to use the CivTech editor - here (http://forums.civfanatics.com/showthread.php?t=140264)
Just set the eras you don't want to be used to like 100x research cost.
Reveilled Dec 04, 2005, 06:18 PM An easier way to do this would be to use the CivTech editor - here (http://forums.civfanatics.com/showthread.php?t=140264)
Just set the eras you don't want to be used to like 100x research cost.
But will the AI respond correctly to the costs and research all the medieval techs before moving on to the others? or will it try to research the high-cost ones and be stuck forever?
Kindness Dec 04, 2005, 06:39 PM I dunno - I was actually thinking about that, but more along the lines of once they get all the medieval techs would they drop research down to 0% - or leave it at 90% waiting for 34567turns for the next tech.
I guess changing the prereqs would be the safest idea.
jbfballrb Dec 04, 2005, 06:51 PM there should be a tag <bDisable> and you can change that to the opposite (dont remember if its 1 or 0) and that will make it impossible to research. youd just have to do this for the initial rennaissance techs, because you couldnt get beyond them. and dont delete the techs--it will mess the game up because other stuff (ie, buildings, units) will still look for those, and the game will be angry
Hoodinski Dec 05, 2005, 07:13 AM Thanks you guys. It seems to work. I'll just havta check if it doesn't crash later on in the game.
Hoodinski Dec 05, 2005, 01:58 PM Oka- I've tested the first idea with prereqs but it seems to mess up the game. It just exits to the desktop without any info.
DSChapin Dec 05, 2005, 02:22 PM I've found in the past that any kind of "requirement loop" (I need Writing for Priesthood, and Priesthood for Writing!) crashes the game - I think because the AI gets stuck in an infinite loop.
Kindness Dec 05, 2005, 03:45 PM there should be a tag <bDisable> and you can change that to the opposite (dont remember if its 1 or 0) and that will make it impossible to research. youd just have to do this for the initial rennaissance techs, because you couldnt get beyond them. and dont delete the techs--it will mess the game up because other stuff (ie, buildings, units) will still look for those, and the game will be angry
^Try this idea - look for this line:
<bDisable>0</bDisable> and change it to 1
Fireb Dec 05, 2005, 05:19 PM Well...It seems that disabled techs are not truly disabled! (i've just discovered this).
Let me explain:
I wanted only certain civs to be able to research certain techs. For example if I wanted only the mongols to be able to research horse-riding:
-1: I would disable animal husbandry using <bDisable>1</bDisable>
-2: I would give horse-riding to the mongols as a starting tech. (either through the civilisations_schema.xml or through a .wbs file)
This means that no-one can research animal husbandry, and therefore they can't get horsebackriding. As the mongols already have animal husbandry, they can still get horseback riding...
But everyone else can still research animal husbandry even though it is disabled!!! They can't do it 'directly' (by clicking on animal hunbandry) - and it won't be an option in the research drop-down list) - but if they go to the tech-tree (f6) and select horseback-riding to research from there (which isn't disabled), then they can (and must) research animal husbandry on the way to horseback riding.
I do not yet know if the AI will be stopped by disabling a tech, leading to a later (researchable) tech, but it certainly doesn't stop humans.
The reason why I wouldn't simply disable horseback riding is because I wouldn't want the mongols to start with it right away, but have to research it first.
I can see 2 possible workarounds to this problem:
1)Give the disabled tech an extemely high research cost
or
2)is to give one civ a disabled tech - which doesn't lead to anything else, and then make compound pre-requisites for whatever I wanted only that tech to be able to build. For example, I would disable horseback riding, give it to the Mongols as a starting tech, make sure no other techs require horseback riding (cavalry, etc), and then change the tech pre-requisites of Keshiks/horse-archers to horseback riding AND another tech. (this is already done for some units, such as knights).
pduthie_au Dec 05, 2005, 05:57 PM Another alternative is to use the <disabletechs> in the civ4civilizationinfos.xml file.
|
|