1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Starting as a CivCol Modder my story

Discussion in 'Civ4Col - Creation & Customization' started by Pallando, Jul 30, 2012.

  1. Pallando

    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. :)
     
  2. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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.
     
  3. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    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. ;) )
     
  4. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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.
     
  5. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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.
     
  6. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    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>
    
     
  7. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    Thanks a lot.
    Wow this is going to be a great day today. It is just starting but I have just learned something new. :)
     
  8. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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.
     
  9. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    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:
     
  10. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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
     
  11. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    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 ...
     
  12. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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. :)
     

    Attached Files:

  13. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    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:)
     
  14. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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
     
  15. thadian

    thadian Kami of Awakened Dreamers

    Joined:
    Sep 27, 2006
    Messages:
    2,288
    Location:
    Indiana, USA
    within just a few days, nice progress. actually, your right - it is inspiring and reminds me the tasks are not impossible.
     
  16. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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.
     
  17. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    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.
     
  18. thadian

    thadian Kami of Awakened Dreamers

    Joined:
    Sep 27, 2006
    Messages:
    2,288
    Location:
    Indiana, USA
    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.
     
  19. Pallando

    Pallando Chieftain

    Joined:
    May 29, 2012
    Messages:
    94
    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.
     

    Attached Files:

  20. raystuttgart

    raystuttgart Civ4Col Modder

    Joined:
    Jan 24, 2011
    Messages:
    5,527
    Gender:
    Male
    Location:
    Stuttgart, Germany
    :thumbsup:

    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.
     

Share This Page