Starting as a CivCol Modder my story

Pallando

Chieftain
Joined
May 29, 2012
Messages
94
Colonization has always been a game very dear to me. I remember playing the first game and it was awesome. Then when the remake came I was very excited to play it. Unfortunately, when it came it I felt the game a little flat.
Then came Dale's mod, and it gave the flavour that the current game was missing. There were lots of great mods like Plantation Economy, DoaNE. I then found the great mod that is TAC. Wow, it was just fantastic, I played some games and was happy with that. I stopped playing eventually.
Then I saw Ray and Robert begin a new mod that attracted me again to Col Rel&Rev. They finally opened it up to non team members and I began playing again. It is a great mod (it is based from TAC). While I was playing there was an event that the King gave me a Man of War, artillery and a Hessian. I tried to use my Hessian in one of my colonies to teach his craft to my citizens. Alas, it couldn't be done. Then I noticed that it took 15 turns to train a Free Colonist with a College. That is not cool man. :(
I kindly asked in the R&R Forum and Ray gave me some pointers on how to do that.

The purpose of this thread is to document the things that I want to change in the game and post them in here. :)
 
First thing First
1. How does the Education System works and how to modify it?
Since R&R uses TAC as source, the Education System is the one that the guys from TAC made.
In the GlobalDefinesAlt.xml file I found the following:
Spoiler :
</Define>
<!-- NBMOD EDU -->
<!-- TAC - EDUCATION COST SYSTEM - koma13, KingMB, Netbandit - 23.11.09 - START -->
<Define>
<DefineName>USE_TAC_EDUCATION_COST_SYSTEM</DefineName>
<iDefineIntVal>1</iDefineIntVal>
</Define>
<Define>
<DefineName>TAC_EDUCATION_RANK1</DefineName>
<fDefineFloatVal>0.0</fDefineFloatVal>
</Define>
<Define>
<DefineName>TAC_EDUCATION_RANK2</DefineName>
<fDefineFloatVal>0.3</fDefineFloatVal>
</Define>
<Define>
<DefineName>TAC_EDUCATION_RANK3</DefineName>
<fDefineFloatVal>0.9</fDefineFloatVal>
</Define>
<!-- TAC - EDUCATION COST SYSTEM - koma13, KingMB, Netbandit - 23.11.09 - END -->

Reading that I figured that there are 3 levels, the level 1 has a cost of 0. The Level 2 has a cost of 0.3*1000 = 300, and level 3 has a cost of .9*1000 = 900.
I know that if I change theses numbers I can chage the cost of the training.

We have this also:
Spoiler :
</Define>
<!-- NBMOD REF -->
<!-- NBMOD EDU -->
<Define>
<DefineName>EDUCATION_THRESHOLD_INCREASE</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>EDUCATION_THRESHOLD</DefineName>
<iDefineIntVal>30</iDefineIntVal>
</Define>

I think that the EDUCATION_THRESHOLD_INCREASE is a variable that sizes the increase of "turns" of the next unit "studying". It was set to 0 to avoid this.
The EDUCATION_THRESHOLD is the variable that sizes the amoung of turns a unit needs in order to graduate. The original value was 60 but I changed it to 30.
In detail we have:
EDUCATION_THRESHOLD
Spoiler :
60: 20 turns Schoolhouse, 15 College
40: 14 turns Schoolhouse, 10 College
30: 10 turns Schoolhouse, 8 College
20: 7 turns Schoolhouse, 5 College

Now we can set the number according to our liking.

We also have the variables that the unit use for Education:
From the CIV4UnitInfos.xml
<iNativeLearnTime>3</iNativeLearnTime>
<iStudentWeight>1000</iStudentWeight>
<iTeacherWeight>Y</iTeacherWeight>
Where Y can be: 0,2,3 and 4.
Spoiler :

0 = (CONVERTED_NATIVE, CRIMINAL, INDENTURED_SERVANT and COLONIST)
2 = (GUNSMITH, cANNONSMITH, BREWER, DISTILLER, WINE_MAKER, FERMENTATOR,SPICE_TRADER,WEAVER,DYER,TOBACCONIST,ROPES_MAKER,SAILCLOTH_MAKER,WHALE_OIL_COOKER,FURNITURE_MAKER,VETERAN,PREACHER, STATESMAN,CHRISTIAN_MISSIONARY,CHRISTIAN_MISSIONARY_PROT
3 = (BLACKSMITH,CARPENTER, FUR_TRADER, TANNER, RANCHER, BUTCHER, PIONEER,
SCOUT)
4 = (Fisherman, grapes picker, INDIGO_PLANTER, TRAPPER, COCOA_PLANTER,
COFFEE_PLANTER, RED_PEPPER_PLANTER, SUGAR_PLANTER)

For our purposes, we leave for now the iNativeLearnTime.

In the CIV4BuildingsInfos.xml we have what we can teach at each Educational Building:
Spoiler :
SCHOOLHOUSE
<iTeachLevel>1</iTeachLevel>
COLLEGE
<iTeachLevel>2</iTeachLevel>
UNIVERSITY
<iTeachLevel>3</iTeachLevel>
GREAT_UNIVERSITY
<iTeachLevel>3</iTeachLevel>


In the CIV4UnitInfos.xml, we also have the variable <iTeachLevel>X</iTeachLevel>
Where X can be 1,2,3 and 100.
Spoiler :
1 = (FISHERMAN,STONECUTTER, MINER, SALT_MINER, SILVERMINER, GOLD_MINER,
GEMSTONES_MINER,PEARLS_HUNTER,LUMBERJACK,CARPENTER, PIONEER, SCOUT)
2 = (TOBACCO_PLANTER, HEMP_PLANTER, COTTON_PLANTER, INDIGO_PLANTER,Huter,SEALS_HUNTER, TRAPPER, COCOA_PLANTER,
COFFEE_PLANTER, RED_PEPPER_PLANTER, SUGAR_PLANTER,BLACKSMITH,GUNSMITH,
CANNONSMITH, FUR_TRADER,TANNER, BREWER, DISTILLER, WINE_MAKER,FERMENTATOR,SPICE_TRADER, WEAVER,DYER, TOBACCONIST,
ROPES_MAKER,SAILCLOTH_MAKER, WHALE_OIL_COOKER, FURNITURE_MAKER,RANCHER, BUTCHER)
3 = (VETERAN,PREACHER, STATESMAN,
CHRISTIAN_MISSIONARY,CHRISTIAN_MISSIONARY_PROT)
100 = (CONVERTED_NATIVE, CRIMINAL, INDENTURED_SERVANT and COLONIST)


What we learned?
How to modify the turns and amount of money it takes to train someone in an Educational Institution. We also learned what kind of Building we need in order to train Specialist.

What we are missing?
Using only the xml files, we are missing the natives and missionary learning. I think that I would like to modify the categories, instead of there being 3 levels of specialist, I would rather have 4 or 5. Say the first one cost 0 (Fisherman), second 300 (Blacksmith, Carpenters), third 500 (Veteran Soldiers, GunSmith), fourth 700 (Hessian) and fifth 900 (Statesman and Preachers).

What is our next little Project?
How to make a Hessian unit to be able to train and be a normal colonist.:) I will post screenshots. :)

If I'm missing something or wrong, please correct me. :)

If you would like to post your progress or your modding project in this thread please feel free to do so.
 
Religion and Revolution is not even yet released and already the first ModMod starting. :D

Great job so far understanding the Education System. :thumbsup:

By the way:

If you are able to read C++ a lot of things are much easier to understand by simply taking a look into the sources.
(They are included in our SVN as well.)

You could simply search for "iEuropeCost" (name of tag in XML) for example and see what the logic does with that.

Edit:

When you will finally play a mod you created yourself, fulfilling your personal wishes and ideas,
it is when you will truly experience real gaming pleasures. :thumbsup:
(Wise words of an unknown chieftain of an unknown modding tribe. ;) )
 
If you are able to read C++ a lot of things are much easier to understand by simply taking a look into the sources.
(They are included in our SVN as well.)

You could simply search for "iEuropeCost" (name of tag in XML) for example and see what the logic does with that.
Thanks I will do that. A special thanks to you Ray for being so open and helpful with beginners like me. :)
I think that if all people would post what they know of certain things of the game, there would be many more mods and interest in the game.
 
Turning a Hessian into a Colonist
When the King in my fist game gave me a Man of War, an artillery and a Hessian. I wanted to be a able to train Hessian and use them against the King in the Revolution. If they are german mercenaries, I should be able to buy them in Europe right? Turns out that they can't be bought nor train. So that is what we are going to do in this part.
In the CIV4UnitInfos.xml file I have the following information of the Hessian:
Spoiler :
<UnitInfo>
<Type>UNIT_HESSIAN</Type>
<Class>UNITCLASS_HESSIAN</Class>
<UniqueNames/>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>UNITCOMBAT_GUN</Combat>
<Domain>DOMAIN_LAND</Domain>
<DefaultUnitAI>UNITAI_COUNTER</DefaultUnitAI>
<DefaultProfession>NONE</DefaultProfession>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_HESSIAN</Description>
<Civilopedia>TXT_KEY_UNIT_HESSIAN_PEDIA</Civilopedia>
<Strategy>TXT_KEY_UNIT_HESSIAN_STRATEGY</Strategy>
<iTeachLevel>100</iTeachLevel>
<fNBMOD_REF_StrengthWeight>1.0</fNBMOD_REF_StrengthWeight>
<bGraphicalOnly>0</bGraphicalOnly>
<bNoBadGoodies>0</bNoBadGoodies>
<bOnlyDefensive>0</bOnlyDefensive>
<bNoCapture>0</bNoCapture>
<bQuickCombat>0</bQuickCombat>
<bRivalTerritory>0</bRivalTerritory>
<bMilitaryProduction>0</bMilitaryProduction>
<bFound>0</bFound>
<bInvisible>0</bInvisible>
<bNoDefensiveBonus>1</bNoDefensiveBonus>
<bCanMoveImpassable>0</bCanMoveImpassable>
<bCanMoveAllTerrain>0</bCanMoveAllTerrain>
<bFlatMovementCost>0</bFlatMovementCost>
<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
<bMechanized>0</bMechanized>
<bLineOfSight>0</bLineOfSight>
<bHiddenNationality>0</bHiddenNationality>
<bAlwaysHostile>0</bAlwaysHostile>
<bTreasure>0</bTreasure>
<bLbDCanBecomeExpert>0</bLbDCanBecomeExpert>
<bLbDCanGetFree>0</bLbDCanGetFree>
<bLbDCanEscape>0</bLbDCanEscape>
<UnitClassUpgrades/>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_COUNTER</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_OFFENSIVE</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs/>
<Builds/>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqOrBuildings/>
<ProductionTraits/>
<iAIWeight>0</iAIWeight>
<YieldCosts/>
<iHurryCostModifier>0</iHurryCostModifier>
<iAdvancedStartCost>-1</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iEuropeCost>-1</iEuropeCost>
<iEuropeCostIncrease>0</iEuropeCostIncrease>
<iImmigrationWeight>0</iImmigrationWeight>
<iImmigrationWeightDecay>0</iImmigrationWeightDecay>
<iMinAreaSize>-1</iMinAreaSize>
<iMoves>1</iMoves>
<bCapturesCargo>0</bCapturesCargo>
<bCapturesShips>0</bCapturesShips>
<iWorkRate>0</iWorkRate>
<iWorkRateModifier>0</iWorkRateModifier>
<iMissionaryRateModifier>0</iMissionaryRateModifier>
<TerrainImpassables/>
<FeatureImpassables/>
<EvasionBuildings/>
<iCombat>3</iCombat>
<iXPValueAttack>4</iXPValueAttack>
<iXPValueDefense>2</iXPValueDefense>
<iWithdrawalProb>0</iWithdrawalProb>
<iCityAttack>50</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<TerrainAttacks/>
<TerrainDefenses/>
<FeatureAttacks/>
<FeatureDefenses/>
<UnitClassAttackMods/>
<UnitClassDefenseMods/>
<UnitCombatMods/>
<DomainMods/>
<YieldModifiers/>
<YieldChanges/>
<BonusYieldChanges/>
<bLandYieldChanges>1</bLandYieldChanges>
<bWaterYieldChanges>1</bWaterYieldChanges>
<iBombardRate>0</iBombardRate>
<SpecialCargo>NONE</SpecialCargo>
<DomainCargo>NONE</DomainCargo>
<iCargo>0</iCargo>
<iRequiredTransportSize>1</iRequiredTransportSize>
<iBerthSize>1</iBerthSize>
<iAsset>250</iAsset>
<iPower>50</iPower>
<iNativeLearnTime>-1</iNativeLearnTime>
<iStudentWeight>0</iStudentWeight>
<iTeacherWeight>0</iTeacherWeight>
<ProfessionMeshGroups>
<UnitMeshGroups>
<ProfessionType>NONE</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>3</iRequired>
<ArtDefineTag>ART_DEF_UNIT_HESSIAN</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
</ProfessionMeshGroups>
<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions>
<FreePromotion>
<PromotionType>PROMOTION_VETERAN1</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_BAYONET</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
</FreePromotions>
<LeaderPromotion>NONE</LeaderPromotion>
<iLeaderExperience>0</iLeaderExperience>
</UnitInfo>

So Ray gave me the idea that I had to alter it with the data of the Veteran Soldier if I want to make them trainable and be able to buy them in Europe.
Here is the data of the Veteran Soldier:
Spoiler :
<UnitInfo>
<Type>UNIT_VETERAN</Type>
<Class>UNITCLASS_VETERAN</Class>
<UniqueNames/>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>NONE</Combat>
<Domain>DOMAIN_LAND</Domain>
<DefaultUnitAI>UNITAI_OFFENSIVE</DefaultUnitAI>
<DefaultProfession>PROFESSION_MUSKETMAN</DefaultProfession>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_VETERAN</Description>
<Civilopedia>TXT_KEY_UNIT_VETERAN_PEDIA</Civilopedia>
<Strategy>TXT_KEY_UNIT_VETERAN_STRATEGY</Strategy>
<iTeachLevel>3</iTeachLevel>
<fNBMOD_REF_StrengthWeight>1.0</fNBMOD_REF_StrengthWeight>
<bGraphicalOnly>0</bGraphicalOnly>
<bNoBadGoodies>0</bNoBadGoodies>
<bOnlyDefensive>0</bOnlyDefensive>
<bNoCapture>0</bNoCapture>
<bQuickCombat>0</bQuickCombat>
<bRivalTerritory>0</bRivalTerritory>
<bMilitaryProduction>0</bMilitaryProduction>
<bFound>1</bFound>
<bInvisible>0</bInvisible>
<bNoDefensiveBonus>0</bNoDefensiveBonus>
<bCanMoveImpassable>0</bCanMoveImpassable>
<bCanMoveAllTerrain>0</bCanMoveAllTerrain>
<bFlatMovementCost>0</bFlatMovementCost>
<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
<bMechanized>0</bMechanized>
<bLineOfSight>0</bLineOfSight>
<bHiddenNationality>0</bHiddenNationality>
<bAlwaysHostile>0</bAlwaysHostile>
<bTreasure>0</bTreasure>
<bLbDCanBecomeExpert>0</bLbDCanBecomeExpert>
<bLbDCanGetFree>0</bLbDCanGetFree>
<bLbDCanEscape>0</bLbDCanEscape>
<UnitClassUpgrades/>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_OFFENSIVE</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_DEFENSIVE</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs/>
<Builds>
<Build>
<BuildType>BUILD_ROAD</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_PLASTERED_ROAD</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_FARM</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_PLANTATION</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_PASTURE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_MINE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_QUARRY</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_VINEYARD</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_COLLECTORS_POST</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_LODGE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_COCOA_PLANTATION</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_TRAPPER_HUT</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_REMOVE_JUNGLE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_REMOVE_FOREST</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_REMOVE_LIGHT_FOREST</BuildType>
<bBuild>1</bBuild>
</Build>
</Builds>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqOrBuildings/>
<ProductionTraits/>
<iAIWeight>0</iAIWeight>
<YieldCosts/>
<iHurryCostModifier>0</iHurryCostModifier>
<iAdvancedStartCost>-1</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iEuropeCost>2000</iEuropeCost>
<iEuropeCostIncrease>300</iEuropeCostIncrease>
<iImmigrationWeight>50</iImmigrationWeight>
<iImmigrationWeightDecay>0</iImmigrationWeightDecay>
<iMinAreaSize>-1</iMinAreaSize>
<iMoves>1</iMoves>
<bCapturesCargo>0</bCapturesCargo>
<bCapturesShips>0</bCapturesShips>
<iWorkRate>0</iWorkRate>
<iWorkRateModifier>0</iWorkRateModifier>
<iMissionaryRateModifier>0</iMissionaryRateModifier>
<TerrainImpassables/>
<FeatureImpassables/>
<EvasionBuildings/>
<iCombat>0</iCombat>
<iXPValueAttack>4</iXPValueAttack>
<iXPValueDefense>2</iXPValueDefense>
<iWithdrawalProb>0</iWithdrawalProb>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<TerrainAttacks/>
<TerrainDefenses/>
<FeatureAttacks/>
<FeatureDefenses/>
<UnitClassAttackMods/>
<UnitClassDefenseMods/>
<UnitCombatMods/>
<DomainMods/>
<YieldModifiers/>
<YieldDemands>
<YieldDemand>
<YieldType>YIELD_COFFEE</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_WOOL_CLOTH</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_LEATHER</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_SALT</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_BEER</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
</YieldDemands>
<YieldChanges/>
<BonusYieldChanges/>
<bLandYieldChanges>1</bLandYieldChanges>
<bWaterYieldChanges>1</bWaterYieldChanges>
<iBombardRate>0</iBombardRate>
<SpecialCargo>NONE</SpecialCargo>
<DomainCargo>NONE</DomainCargo>
<iCargo>0</iCargo>
<iRequiredTransportSize>1</iRequiredTransportSize>
<iBerthSize>1</iBerthSize>
<iAsset>250</iAsset>
<iPower>25</iPower>
<iNativeLearnTime>-1</iNativeLearnTime>
<iStudentWeight>0</iStudentWeight>
<iTeacherWeight>2</iTeacherWeight>
<ProfessionMeshGroups>
<UnitMeshGroups>
<ProfessionType>NONE</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_VETERAN</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_SCOUT</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_SCOUT</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_MUSKETMAN</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>3</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_VETERAN_MUSKETMAN</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_CUIRASSIER</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>2</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_UNIT_VETERAN_CUIRASSIER</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_SOLDIER</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>3</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_VETERAN_SOLDIER</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_DRAGOON</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>2</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_UNIT_VETERAN_DRAGOON</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_PIONEER</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_PIONEER</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_MISSIONARY</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_MISSIONARY</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
</ProfessionMeshGroups>
<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions>
<FreePromotion>
<PromotionType>PROMOTION_VETERAN1</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_LEADERSHIP</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
</FreePromotions>
<LeaderPromotion>NONE</LeaderPromotion>
<iLeaderExperience>0</iLeaderExperience>
</UnitInfo>

I noticed several differences:
Spoiler :
Hessian
<Combat>UNITCOMBAT_GUN</Combat>
<DefaultUnitAI>UNITAI_COUNTER</DefaultUnitAI>
<DefaultProfession>NONE</DefaultProfession>
<iTeachLevel>100</iTeachLevel>
<bFound>0</bFound>
<bNoDefensiveBonus>1</bNoDefensiveBonus>
<iEuropeCost>-1</iEuropeCost>
<iEuropeCostIncrease>0</iEuropeCostIncrease>

<iImmigrationWeight>0</iImmigrationWeight>
<iCombat>3</iCombat>
<iCityAttack>50</iCityAttack>
<iPower>50</iPower>
<iTeacherWeight>0</iTeacherWeight>

I made the following changes:
Spoiler :

<Combat>NONE</Combat>
<DefaultUnitAI>UNITAI_OFFENSIVE</DefaultUnitAI>
<DefaultProfession>PROFESSION_MUSKETMAN</DefaultProfession>
<iTeachLevel>3</iTeachLevel>
<bFound>1</bFound>
<iEuropeCost>3000</iEuropeCost>
<iEuropeCostIncrease>300</iEuropeCostIncrease>
<iImmigrationWeight>50</iImmigrationWeight>
<iTeacherWeight>2</iTeacherWeight>

I had also to copy paste the other parts missing from the Veteran Soldier. In the end it looked like this:
Spoiler :
<UnitInfo>
<Type>UNIT_HESSIAN</Type>
<Class>UNITCLASS_HESSIAN</Class>
<UniqueNames/>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>NONE</Combat>
<Domain>DOMAIN_LAND</Domain>
<DefaultUnitAI>UNITAI_OFFENSIVE</DefaultUnitAI>
<DefaultProfession>PROFESSION_MUSKETMAN</DefaultProfession>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_HESSIAN</Description>
<Civilopedia>TXT_KEY_UNIT_HESSIAN_PEDIA</Civilopedia>
<Strategy>TXT_KEY_UNIT_HESSIAN_STRATEGY</Strategy>
<iTeachLevel>3</iTeachLevel>
<fNBMOD_REF_StrengthWeight>1.0</fNBMOD_REF_StrengthWeight>
<bGraphicalOnly>0</bGraphicalOnly>
<bNoBadGoodies>0</bNoBadGoodies>
<bOnlyDefensive>0</bOnlyDefensive>
<bNoCapture>0</bNoCapture>
<bQuickCombat>0</bQuickCombat>
<bRivalTerritory>0</bRivalTerritory>
<bMilitaryProduction>0</bMilitaryProduction>
<bFound>1</bFound>
<bInvisible>0</bInvisible>
<bNoDefensiveBonus>1</bNoDefensiveBonus>
<bCanMoveImpassable>0</bCanMoveImpassable>
<bCanMoveAllTerrain>0</bCanMoveAllTerrain>
<bFlatMovementCost>0</bFlatMovementCost>
<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
<bMechanized>0</bMechanized>
<bLineOfSight>0</bLineOfSight>
<bHiddenNationality>0</bHiddenNationality>
<bAlwaysHostile>0</bAlwaysHostile>
<bTreasure>0</bTreasure>
<bLbDCanBecomeExpert>0</bLbDCanBecomeExpert>
<bLbDCanGetFree>0</bLbDCanGetFree>
<bLbDCanEscape>0</bLbDCanEscape>
<UnitClassUpgrades/>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_OFFENSIVE</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_DEFENSIVE</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs/>
<Builds>
<Build>
<BuildType>BUILD_ROAD</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_PLASTERED_ROAD</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_FARM</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_PLANTATION</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_PASTURE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_MINE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_QUARRY</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_VINEYARD</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_COLLECTORS_POST</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_LODGE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_COCOA_PLANTATION</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_TRAPPER_HUT</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_REMOVE_JUNGLE</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_REMOVE_FOREST</BuildType>
<bBuild>1</bBuild>
</Build>
<Build>
<BuildType>BUILD_REMOVE_LIGHT_FOREST</BuildType>
<bBuild>1</bBuild>
</Build>
</Builds>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqOrBuildings/>
<ProductionTraits/>
<iAIWeight>0</iAIWeight>
<YieldCosts/>
<iHurryCostModifier>0</iHurryCostModifier>
<iAdvancedStartCost>-1</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iEuropeCost>3000</iEuropeCost>
<iEuropeCostIncrease>300</iEuropeCostIncrease>
<iImmigrationWeight>50</iImmigrationWeight>
<iImmigrationWeightDecay>0</iImmigrationWeightDecay>
<iMinAreaSize>-1</iMinAreaSize>
<iMoves>1</iMoves>
<bCapturesCargo>0</bCapturesCargo>
<bCapturesShips>0</bCapturesShips>
<iWorkRate>0</iWorkRate>
<iWorkRateModifier>0</iWorkRateModifier>
<iMissionaryRateModifier>0</iMissionaryRateModifier>
<TerrainImpassables/>
<FeatureImpassables/>
<EvasionBuildings/>
<iCombat>3</iCombat>
<iXPValueAttack>4</iXPValueAttack>
<iXPValueDefense>2</iXPValueDefense>
<iWithdrawalProb>0</iWithdrawalProb>
<iCityAttack>50</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<TerrainAttacks/>
<TerrainDefenses/>
<FeatureAttacks/>
<FeatureDefenses/>
<UnitClassAttackMods/>
<UnitClassDefenseMods/>
<UnitCombatMods/>
<DomainMods/>
<YieldModifiers/>
<YieldDemands>
<YieldDemand>
<YieldType>YIELD_COFFEE</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_WOOL_CLOTH</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_LEATHER</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_SALT</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
<YieldDemand>
<YieldType>YIELD_BEER</YieldType>
<iYieldDemand>20</iYieldDemand>
</YieldDemand>
</YieldDemands>
<YieldChanges/>
<BonusYieldChanges/>
<bLandYieldChanges>1</bLandYieldChanges>
<bWaterYieldChanges>1</bWaterYieldChanges>
<iBombardRate>0</iBombardRate>
<SpecialCargo>NONE</SpecialCargo>
<DomainCargo>NONE</DomainCargo>
<iCargo>0</iCargo>
<iRequiredTransportSize>1</iRequiredTransportSize>
<iBerthSize>1</iBerthSize>
<iAsset>250</iAsset>
<iPower>50</iPower>
<iNativeLearnTime>-1</iNativeLearnTime>
<iStudentWeight>0</iStudentWeight>
<iTeacherWeight>2</iTeacherWeight>
<ProfessionMeshGroups>
<UnitMeshGroups>
<ProfessionType>NONE</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_HESSIAN</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_SCOUT</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_SCOUT</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_MUSKETMAN</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>3</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_VETERAN_MUSKETMAN</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_CUIRASSIER</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>2</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_UNIT_VETERAN_CUIRASSIER</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_SOLDIER</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>3</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_VETERAN_SOLDIER</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_DRAGOON</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>2</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_UNIT_VETERAN_DRAGOON</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_PIONEER</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_PIONEER</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<UnitMeshGroups>
<ProfessionType>PROFESSION_MISSIONARY</ProfessionType>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>4</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<ArtDefineTag>ART_DEF_UNIT_PROFESSION_MISSIONARY</ArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
</ProfessionMeshGroups>
<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions>
<FreePromotion>
<PromotionType>PROMOTION_VETERAN1</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_BAYONET</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
</FreePromotions>
<LeaderPromotion>NONE</LeaderPromotion>
<iLeaderExperience>0</iLeaderExperience>
</UnitInfo>


These are the results that I get.

Unfortunately, I can't seem to get to be able to buy them in Europe.
 
Unfortunately, I can't seem to get to be able to buy them in Europe.

Hessians are usually locked for all Colonial Players.
(They are special units that only the kings are supposed to have.)

The DLL-Diplo-Event simply ignores that fact because it is coded to do so.
(The rest of the game logic does not.)

Thus you need to go into:
CIV4CivilizationInfos.xml

and remove this for Colonial Players (not Natives !) in <Units>:
Code:
<Unit>
	<UnitClassType>UNITCLASS_HESSIAN</UnitClassType>
	<UnitType>NONE</UnitType>
</Unit>
 
Thanks a lot.
Wow this is going to be a great day today. It is just starting but I have just learned something new. :)
 
Something funny happened to me yesterday. Using Ray's advice, or what I understood, I deleted the lines

UnitInfo>
Type>UNIT_HESSIAN</Type>
<Class>UNITCLASS_HESSIAN</Class>
<
<UniqueNames/>
But I got an error message.

Then I changed
Type>UNIT_HESSIAN</Type>
<Class>UNITCLASS_HESSIAN</Class>
<
<UniqueNames/>
with

<UnitInfo>
<Type>UNIT_VETERAN</Type>
<Class>UNITCLASS_VETERAN</Class>

<UniqueNames/>
I had finally the Hessian being able to be bought in Europe. :)
Unfortunately, I had no Veteran Soldier available for purchase. :(

What I learned?
How to replace a unit with another in the Europe buy screen. Not exactly what I wanted but a good first try.
I will try to add a Scout to be available for purchase in Europe.
 
Something funny happened to me yesterday. Using Ray's advice, or what I understood, I deleted the lines

You have totally misunderstood what I had tried to tell you. :D

The file you should have taken a look at is:

CIV4CivilizationInfos.xml

not

CIV4UnitInfos.xml


The only thing you should have done was to remove the locking of that unit for colonial players.
(So colonial players would be allowed to have that unit.)

Please follow my advice and undo your recent changes.
Then everything should work as you want it to. :thumbsup:
 
You have totally misunderstood what I had tried to tell you.

The file you should have take a look at is:

CIV4CivilizationInfos.xml
Like Homer Simpson would say. DOOH. :)

I guess it's true when they say that you learn more from making mistakes. :)

What I learned?
READ CAREFULLY!! :D
 
Again:

In Civ4CivilizationInfos.xml it is defined which Civilization can have which Units.
Some Units are locked for certain Civs.

So if you want to give these Units to those Civs, you need to remove the lock.

In your case you need to remove this complete block of XML to allow Hessians for the Player:
(But only remove it for Colonial Civs not Natives !)

Code:
<Unit>
	<UnitClassType>UNITCLASS_HESSIAN</UnitClassType>
	<UnitType>NONE</UnitType>
</Unit>

A lot of other things are defined as well in that file of course ...
 
Now, doing it correctly I was able to add it. :)

What we learned?
That the file Civ4CivilizationInfos.xml has the units information of each civilization.

What's next?
Were are adding a Founding Father. :)
 

Attachments

  • hessianeurope.JPG
    hessianeurope.JPG
    124.4 KB · Views: 128
You are making great progress ! :goodjob:

By the way:
Do you know how to sort the "Hessian Mercenary" after the "Veteran" in the list of units to buy in Europe Screen ?

Try to figure it out. :)
(If you don't find the solution, I will tell you. :thumbsup:)
 
By the way:
Do you know how to sort the "Hessian Mercenary" after the "Veteran" in the list of units to buy in Europe Screen ?
I don't know yet.
That is the great thing about doing this, you learn new stuff everyday. :)

Sometimes you learn even more when you make mistakes, that if you were mistake free. :D
 
within just a few days, nice progress. actually, your right - it is inspiring and reminds me the tasks are not impossible.
 
Something funny is happening to me. :)

Because I'm making small in my quest to learn, I have the interesting problem that my previous save games do not work in my next versions. So I keep beginning game after game after game.

Ray just gave me the answer to the xml file that has the info about the order of the units that appear in the docks of Europe, but I have not make the appropiate changes because I want to at least finish a game. I may play about 50 to 75 turns, make a change and then kaput, new game for me.

That is why I haven't posted anything new yet, but I'm still documenting what I do.
 
In 95% of the cases doing and testing changes in XML will only work when starting new games.
Savegames store a lot of the old XML.

In many cases, they will simply not work with the modified version.
Especially if you modify a XML-Schema.
 
copy-paste the exported religion_and_revolution and use the "copy" for such things. Much easier to port some small changes in from the copy folder than to re-do them every update.
 
Ok, now that I have some time, and having just installed TAC 2.03, I tried to add the unit Scout to be able to be bought in Europe.

This is what I did:
In the CIV4UnitInfos.xml, I found:
<UnitInfo>
<Type>UNIT_SCOUT</Type>
<Class>UNITCLASS_SCOUT</Class>
and in the section
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iEuropeCost>-1500</iEuropeCost>
<iEuropeCostIncrease>0</iEuropeCostIncrease>
<iImmigrationWeight>200</iImmigrationWeight>
<iImmigrationWeightDecay>75</iImmigrationWeightDecay>

I deleted the minus sign and we have a positive number 1500.

In the order of the units that appear in the docks of Europe we go to the file:
CIV4UnitClassInfos.xml We have:
<UnitClassInfos>
<UnitClassInfo>
<Type>UNITCLASS_COLONIST</Type>
<Description>TXT_KEY_UNIT_COLONIST</Description>
<DefaultUnit>UNIT_COLONIST</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_INDENTURED_SERVANT</Type>
<Description>TXT_KEY_UNIT_INDENTURED_SERVANT</Description>
<DefaultUnit>UNIT_INDENTURED_SERVANT</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CRIMINAL</Type>
<Description>TXT_KEY_UNIT_CRIMINAL</Description>
<DefaultUnit>UNIT_CRIMINAL</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CONVERTED_NATIVE</Type>
<Description>TXT_KEY_UNIT_CONVERTED_NATIVE</Description>
<DefaultUnit>UNIT_CONVERTED_NATIVE</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_MINER</Type>
<Description>TXT_KEY_UNIT_MINER</Description>
<DefaultUnit>UNIT_MINER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_LUMBERJACK</Type>
<Description>TXT_KEY_UNIT_LUMBERJACK</Description>
<DefaultUnit>UNIT_LUMBERJACK</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TOBACCO_PLANTER</Type>
<Description>TXT_KEY_UNIT_TOBACCO_PLANTER</Description>
<DefaultUnit>UNIT_TOBACCO_PLANTER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_COTTON_PLANTER</Type>
<Description>TXT_KEY_UNIT_COTTON_PLANTER</Description>
<DefaultUnit>UNIT_COTTON_PLANTER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_SUGAR_PLANTER</Type>
<Description>TXT_KEY_UNIT_SUGAR_PLANTER</Description>
<DefaultUnit>UNIT_SUGAR_PLANTER</DefaultUnit>
</UnitClassInfo>
<!-- expert cocoa planter; ray 25.05.2010-->
<UnitClassInfo>
<Type>UNITCLASS_COCOA_PLANTER</Type>
<Description>TXT_KEY_UNIT_COCOA_PLANTER</Description>
<DefaultUnit>UNIT_COCOA_PLANTER</DefaultUnit>
</UnitClassInfo>
<!-- expert cocoa planter; ray 25.05.2010-->
<UnitClassInfo>
<Type>UNITCLASS_FARMER</Type>
<Description>TXT_KEY_UNIT_FARMER</Description>
<DefaultUnit>UNIT_FARMER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TRAPPER</Type>
<Description>TXT_KEY_UNIT_TRAPPER</Description>
<DefaultUnit>UNIT_TRAPPER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_FISHERMAN</Type>
<Description>TXT_KEY_UNIT_FISHERMAN</Description>
<DefaultUnit>UNIT_FISHERMAN</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_SILVERMINER</Type>
<Description>TXT_KEY_UNIT_SILVERMINER</Description>
<DefaultUnit>UNIT_SILVERMINER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_BLACKSMITH</Type>
<Description>TXT_KEY_UNIT_BLACKSMITH</Description>
<DefaultUnit>UNIT_BLACKSMITH</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_GUNSMITH</Type>
<Description>TXT_KEY_UNIT_GUNSMITH</Description>
<DefaultUnit>UNIT_GUNSMITH</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_FUR_TRADER</Type>
<Description>TXT_KEY_UNIT_FUR_TRADER</Description>
<DefaultUnit>UNIT_FUR_TRADER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CARPENTER</Type>
<Description>TXT_KEY_UNIT_CARPENTER</Description>
<DefaultUnit>UNIT_CARPENTER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_DISTILLER</Type>
<Description>TXT_KEY_UNIT_DISTILLER</Description>
<DefaultUnit>UNIT_DISTILLER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_WEAVER</Type>
<Description>TXT_KEY_UNIT_WEAVER</Description>
<DefaultUnit>UNIT_WEAVER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TOBACCONIST</Type>
<Description>TXT_KEY_UNIT_TOBACCONIST</Description>
<DefaultUnit>UNIT_TOBACCONIST</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_WHALE_OIL_COOKER</Type>
<Description>TXT_KEY_UNIT_WHALE_OIL_COOKER</Description>
<DefaultUnit>UNIT_WHALE_OIL_COOKER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_RANCHER</Type>
<Description>TXT_KEY_UNIT_RANCHER</Description>
<DefaultUnit>UNIT_RANCHER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_VETERAN</Type>
<Description>TXT_KEY_UNIT_VETERAN</Description>
<DefaultUnit>UNIT_VETERAN</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_REGULAR</Type>
<Description>TXT_KEY_UNIT_REGULAR</Description>
<DefaultUnit>UNIT_REGULAR</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_PIONEER</Type>
<Description>TXT_KEY_UNIT_PIONEER</Description>
<DefaultUnit>UNIT_PIONEER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_SCOUT</Type>
<Description>TXT_KEY_UNIT_SCOUT</Description>
<DefaultUnit>UNIT_SCOUT</DefaultUnit>

</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_PREACHER</Type>
<Description>TXT_KEY_UNIT_PREACHER</Description>
<DefaultUnit>UNIT_PREACHER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_STATESMAN</Type>
<Description>TXT_KEY_UNIT_STATESMAN</Description>
<DefaultUnit>UNIT_STATESMAN</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CHRISTIAN_MISSIONARY</Type>
<Description>TXT_KEY_UNIT_CHRISTIAN_MISSIONARY</Description>
<DefaultUnit>UNIT_CHRISTIAN_MISSIONARY</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_WAGON_TRAIN</Type>
<Description>TXT_KEY_UNIT_WAGON_TRAIN</Description>
<DefaultUnit>UNIT_WAGON_TRAIN</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TREK</Type>
<Description>TXT_KEY_UNIT_TREK</Description>
<DefaultUnit>UNIT_TREK</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_STAGECOACH</Type>
<Description>TXT_KEY_UNIT_STAGECOACH</Description>
<DefaultUnit>UNIT_STAGECOACH</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CARRIER</Type>
<Description>TXT_KEY_UNIT_CARRIER</Description>
<DefaultUnit>UNIT_CARRIER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_LIGHT_CANNON</Type>
<Description>TXT_KEY_UNIT_LIGHT_CANNON</Description>
<DefaultUnit>UNIT_LIGHT_CANNON</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CANNON</Type>
<Description>TXT_KEY_UNIT_CANNON</Description>
<DefaultUnit>UNIT_CANNON</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CARAVEL</Type>
<Description>TXT_KEY_UNIT_CARAVEL</Description>
<DefaultUnit>UNIT_CARAVEL</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_FLUYT</Type>
<Description>TXT_KEY_UNIT_FLUYT</Description>
<DefaultUnit>UNIT_FLUYT</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_MERCHANTMAN</Type>
<Description>TXT_KEY_UNIT_MERCHANTMAN</Description>
<DefaultUnit>UNIT_MERCHANTMAN</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_PRIVATEER</Type>
<Description>TXT_KEY_UNIT_PRIVATEER</Description>
<DefaultUnit>UNIT_PRIVATEER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CARRACK</Type>
<Description>TXT_KEY_UNIT_CARRACK</Description>
<DefaultUnit>UNIT_CARRACK</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_GALLEON</Type>
<Description>TXT_KEY_UNIT_GALLEON</Description>
<DefaultUnit>UNIT_GALLEON</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_FRIGATE</Type>
<Description>TXT_KEY_UNIT_FRIGATE</Description>
<DefaultUnit>UNIT_FRIGATE</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_SHIP_OF_THE_LINE</Type>
<Description>TXT_KEY_UNIT_SHIP_OF_THE_LINE</Description>
<DefaultUnit>UNIT_SHIP_OF_THE_LINE</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_WHALING_BOAT</Type>
<Description>TXT_KEY_UNIT_WHALING_BOAT</Description>
<DefaultUnit>UNIT_WHALING_BOAT</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_FOOD</Type>
<Description>TXT_KEY_UNIT_FOOD</Description>
<DefaultUnit>UNIT_FOOD</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_LUMBER</Type>
<Description>TXT_KEY_UNIT_LUMBER</Description>
<DefaultUnit>UNIT_LUMBER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_SILVER</Type>
<Description>TXT_KEY_UNIT_SILVER</Description>
<DefaultUnit>UNIT_SILVER</DefaultUnit>
</UnitClassInfo>
<!-- TAC Writing Bull 24.05.2010 START -->
<UnitClassInfo>
<Type>UNITCLASS_COCOA</Type>
<Description>TXT_KEY_UNIT_COCOA</Description>
<DefaultUnit>UNIT_COCOA</DefaultUnit>
</UnitClassInfo>
<!-- TAC Writing Bull 24.05.2010 END -->
<UnitClassInfo>
<Type>UNITCLASS_COTTON</Type>
<Description>TXT_KEY_UNIT_COTTON</Description>
<DefaultUnit>UNIT_COTTON</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_FUR</Type>
<Description>TXT_KEY_UNIT_FUR</Description>
<DefaultUnit>UNIT_FUR</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_SUGAR</Type>
<Description>TXT_KEY_UNIT_SUGAR</Description>
<DefaultUnit>UNIT_SUGAR</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TOBACCO</Type>
<Description>TXT_KEY_UNIT_TOBACCO</Description>
<DefaultUnit>UNIT_TOBACCO</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_WHALE_BLUBBER</Type>
<Description>TXT_KEY_UNIT_WHALE_BLUBBER</Description>
<DefaultUnit>UNIT_WHALE_BLUBBER</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_ORE</Type>
<Description>TXT_KEY_UNIT_ORE</Description>
<DefaultUnit>UNIT_ORE</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CLOTH</Type>
<Description>TXT_KEY_UNIT_CLOTH</Description>
<DefaultUnit>UNIT_CLOTH</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_COATS</Type>
<Description>TXT_KEY_UNIT_COATS</Description>
<DefaultUnit>UNIT_COATS</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_RUM</Type>
<Description>TXT_KEY_UNIT_RUM</Description>
<DefaultUnit>UNIT_RUM</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_CIGARS</Type>
<Description>TXT_KEY_UNIT_CIGARS</Description>
<DefaultUnit>UNIT_CIGARS</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_WHALE_OIL</Type>
<Description>TXT_KEY_UNIT_WHALE_OIL</Description>
<DefaultUnit>UNIT_WHALE_OIL</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TOOLS</Type>
<Description>TXT_KEY_UNIT_TOOLS</Description>
<DefaultUnit>UNIT_TOOLS</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_MUSKETS</Type>
<Description>TXT_KEY_UNIT_MUSKETS</Description>
<DefaultUnit>UNIT_MUSKETS</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_HORSES</Type>
<Description>TXT_KEY_UNIT_HORSES</Description>
<DefaultUnit>UNIT_HORSES</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TRADE_GOODS</Type>
<Description>TXT_KEY_UNIT_TRADE_GOODS</Description>
<DefaultUnit>UNIT_TRADE_GOODS</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_TREASURE</Type>
<Description>TXT_KEY_UNIT_TREASURE</Description>
<DefaultUnit>UNIT_TREASURE</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_GREAT_GENERAL</Type>
<Description>TXT_KEY_UNIT_GREAT_GENERAL</Description>
<DefaultUnit>UNIT_GREAT_GENERAL</DefaultUnit>
</UnitClassInfo>
<!-- TAC Writing Bull 16.03.2010 -->
<UnitClassInfo>
<Type>UNITCLASS_HESSIAN</Type>
<Description>TXT_KEY_UNIT_HESSIAN</Description>
<DefaultUnit>UNIT_HESSIAN</DefaultUnit>
</UnitClassInfo>
<UnitClassInfo>
<Type>UNITCLASS_NATIVE_MERC</Type>
<Description>TXT_KEY_UNIT_NATIVE</Description>
<DefaultUnit>UNIT_NATIVE_MERC</DefaultUnit>
</UnitClassInfo>
</UnitClassInfos>
</Civ4UnitClassInfos>

And voilá. We can purchase our Scout. Notice that the Free Colonist, Indunted Servant, like the Scout, have negative <iEuropeCost>-800</iEuropeCost>, and are not able to be bought.

What we learned, how to add a unit to be bought in the docks of Europe.

What is next? How to add a new type of road into the game. Like R&R Plastered roads.
 

Attachments

  • ScoutinEurope.JPG
    ScoutinEurope.JPG
    116.5 KB · Views: 108
What we learned, how to add a unit to be bought in the docks of Europe.

:thumbsup:

How to add a new type of road into the game. Like R&R Plastered roads.

There is a small DLL part to this:
At some city size, the normal road on the central city plot will be transformed to "Plastered Road".

There is also a small DLL part about "Entering Peaks".
(But since that feature does not exist in TAC, you don't have to worry about.)

Otherwise this is pure XML and graphics.
 
Top Bottom