Choplifter mod, working but...

kallussed

Chieftain
Joined
Nov 15, 2005
Messages
5
So I created a mod that makes a transport chopper.

Attack 16 (+25% vs. Melee, Archer, Mounted)
Move 5
Ignores Terrain
Cost 180
Cargo 2 : Only carries Infantry, Marines, and Navy SEALs.
30% Withdraw Chance

It's sweet! Works perfectly! No new graphics, but choppers taking wounded SEALs back to base and dropping off fresh reinforcements is awesome! Only problem is that after setting the appropriate promotion options the only one that seems to work is Combat I. Nothing else. I wanted these units to be eligible for Medic. (Red Cross Choppers :))

It doesn't seem all that complicated, but anyone have a clue what would allow Combat I to work but no others? Other units still upgrade fine. I started over from scratch, and it improved (I couldn't upgrade the choppers at all the first time), but I know I'm missing something simple...

Not sure what you need, but here's what I've done:

CIV4BasicInfos
<UnitCombatInfo>
<Type>UNITCOMBAT_CHOPPER</Type>
<Description>TXT_KEY_UNITCOMBAT_CHOPPER</Description>
<Button>,Art/Interface/Buttons/Promotions/Helicopter_Units.dds,Art/Interface/Buttons/Promotions_Atlas.dds,2,7</Button>
</UnitCombatInfo>

CIV4UnitClassInfos
<UnitClassInfo>
<Type>UNITCLASS_CHOPPER</Type>
<Description>TXT_KEY_UNIT_CHOPPER</Description>
<iMaxGlobalInstances>-1</iMaxGlobalInstances>
<iMaxTeamInstances>-1</iMaxTeamInstances>
<iMaxPlayerInstances>-1</iMaxPlayerInstances>
<DefaultUnit>UNIT_CHOPPER</DefaultUnit>
</UnitClassInfo>

CIV4SpecialUnitInfos
<SpecialUnitInfo>
<Type>SPECIALUNIT_CHOPLIFTER</Type>
<Description>TXT_KEY_SPECIALUNIT_CHOPLIFTER</Description>
<bValid>1</bValid>
<ProductionTraits/>
</SpecialUnitInfo>

CIV4UnitInfos.xml (Units able to be transported are <Special>SPECIALUNIT_CHOPLIFTER</Special>)
Left existing data intact, just commented it out. Sorry for the crappy format.

<UnitInfo>
<Class>UNITCLASS_CHOPPER</Class><!-- <Class>UNITCLASS_GUNSHIP</Class> -->
<Type>UNIT_CHOPPER</Type><!-- <Type>UNIT_GUNSHIP</Type> -->
<UniqueNames/>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>UNITCOMBAT_CHOPPER</Combat><!-- <Combat>UNITCOMBAT_HELICOPTER</Combat> -->
<Domain>DOMAIN_LAND</Domain>
<DefaultUnitAI>UNITAI_ATTACK</DefaultUnitAI>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_CHOPPER</Description><!-- <Description>TXT_KEY_UNIT_GUNSHIP</Description> -->
<Civilopedia>TXT_KEY_UNIT_CHOPPER_PEDIA</Civilopedia><!-- <Civilopedia>TXT_KEY_UNIT_GUNSHIP_PEDIA</Civilopedia> -->
<Strategy>TXT_KEY_UNIT_CHOPPER_STRATEGY</Strategy><!-- <Strategy>TXT_KEY_UNIT_GUNSHIP_STRATEGY</Strategy> -->
<Advisor>ADVISOR_MILITARY</Advisor>
<bAnimal>0</bAnimal>
<bFood>0</bFood>
<bNoBadGoodies>0</bNoBadGoodies>
<bOnlyDefensive>0</bOnlyDefensive>
<bNoCapture>1</bNoCapture>
<bRivalTerritory>0</bRivalTerritory>
<bMilitaryHappiness>0</bMilitaryHappiness>
<bMilitarySupport>1</bMilitarySupport>
<bMilitaryProduction>1</bMilitaryProduction>
<bPillage>1</bPillage>
<bSabotage>0</bSabotage>
<bDestroy>0</bDestroy>
<bStealPlans>0</bStealPlans>
<bInvestigate>0</bInvestigate>
<bCounterSpy>0</bCounterSpy>
<bFound>0</bFound>
<bGoldenAge>0</bGoldenAge>
<bInvisible>0</bInvisible>
<bFirstStrikeImmune>0</bFirstStrikeImmune>
<bNoDefensiveBonus>1</bNoDefensiveBonus>
<bIgnoreBuildingDefense>1</bIgnoreBuildingDefense>
<bCanMoveImpassable>1</bCanMoveImpassable><!-- <bCanMoveImpassable>0</bCanMoveImpassable> -->
<bFlatMovementCost>1</bFlatMovementCost>
<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
<bNukeImmune>0</bNukeImmune>
<bPrereqBonuses>0</bPrereqBonuses>
<bPrereqReligion>0</bPrereqReligion>
<bMechanized>1</bMechanized>
<UnitClassUpgrades/>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_ATTACK</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_PILLAGE</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs/>
<Builds/>
<ReligionSpreads/>
<GreatPeoples/>
<Buildings/>
<ForceBuildings/>
<HolyCity>NONE</HolyCity>
<ReligionType>NONE</ReligionType>
<StateReligion>NONE</StateReligion>
<PrereqReligion>NONE</PrereqReligion>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqTech>TECH_ROCKETRY</PrereqTech>
<TechTypes>
<PrereqTech>TECH_FLIGHT</PrereqTech>
<PrereqTech>NONE</PrereqTech>
<PrereqTech>NONE</PrereqTech>
</TechTypes>
<BonusType>BONUS_OIL</BonusType>
<PrereqBonuses/>
<ProductionTraits/>
<Flavors/>
<iAIWeight>0</iAIWeight>
<iCost>180</iCost><!-- <iCost>160</iCost> -->
<iHurryCostModifier>0</iHurryCostModifier>
<iMinAreaSize>-1</iMinAreaSize>
<iMoves>5</iMoves><!-- <iMoves>4</iMoves> -->
<iAirRange>0</iAirRange>
<iNukeRange>-1</iNukeRange>
<iWorkRate>0</iWorkRate>
<iBaseDiscover>0</iBaseDiscover>
<iDiscoverMultiplier>0</iDiscoverMultiplier>
<iBaseHurry>0</iBaseHurry>
<iHurryMultiplier>0</iHurryMultiplier>
<iBaseTrade>0</iBaseTrade>
<iTradeMultiplier>0</iTradeMultiplier>
<iGreatWorkCulture>0</iGreatWorkCulture>
<TerrainImpassables/>
<FeatureImpassables/>
<iCombat>16</iCombat><!-- <iCombat>20</iCombat> -->
<iAirCombat>0</iAirCombat>
<iAirCombatLimit>0</iAirCombatLimit>
<iXPValueAttack>4</iXPValueAttack>
<iXPValueDefense>2</iXPValueDefense>
<iFirstStrikes>0</iFirstStrikes>
<iChanceFirstStrikes>0</iChanceFirstStrikes>
<iInterceptionProbability>0</iInterceptionProbability>
<iEvasionProbability>0</iEvasionProbability>
<iWithdrawalProb>30</iWithdrawalProb><!-- <iWithdrawalProb>25</iWithdrawalProb> -->
<iCollateralDamage>0</iCollateralDamage>
<iCollateralDamageLimit>0</iCollateralDamageLimit>
<iCollateralDamageMaxUnits>0</iCollateralDamageMaxUnits>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iAnimalCombat>0</iAnimalCombat>
<iHillsDefense>0</iHillsDefense>
<TerrainNatives/>
<FeatureNatives/>
<TerrainDefenses/>
<FeatureDefenses/>
<UnitClassAttackMods/>
<UnitClassDefenseMods/>
<!-- CHOPPER
<UnitCombatMods>
<UnitCombatMod>
<UnitCombatType>UNITCOMBAT_ARMOR</UnitCombatType>
<iUnitCombatMod>100</iUnitCombatMod>
</UnitCombatMod>
</UnitCombatMods>
CHOPPER -->
<UnitCombatMods>
<UnitCombatMod>
<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
<iUnitCombatMod>25</iUnitCombatMod>
</UnitCombatMod>
<UnitCombatMod>
<UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
<iUnitCombatMod>25</iUnitCombatMod>
</UnitCombatMod>
<UnitCombatMod>
<UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
<iUnitCombatMod>25</iUnitCombatMod>
</UnitCombatMod>
</UnitCombatMods>
<!-- CHOPPER -->
<DomainMods/>
<BonusProductionModifiers/>
<iBombRate>0</iBombRate>
<iBombardRate>0</iBombardRate>
<SpecialCargo>SPECIALUNIT_CHOPLIFTER</SpecialCargo><!-- <SpecialCargo>NONE</SpecialCargo> -->
<DomainCargo>NONE</DomainCargo>
<iCargo>2</iCargo><!-- <iCargo>0</iCargo> -->
<iConscription>0</iConscription>
<iCultureGarrison>10</iCultureGarrison>
<iExtraCost>0</iExtraCost>
<iAsset>5</iAsset>
<iPower>20</iPower>
<UnitMeshGroups>
<iGroupSize>1</iGroupSize>
<fMaxSpeed>1.75</fMaxSpeed>
<iMeleeWaveSize>1</iMeleeWaveSize>
<iRangedWaveSize>1</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<EarlyArtDefineTag>ART_DEF_UNIT_GUNSHIP</EarlyArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<Button>,Art/Interface/Buttons/Units/Gunship.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,5,10</Button>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions/>
</UnitInfo>


Sample from CIV4PromotionInfos
<Civ4PromotionInfos xmlns="x-schema:CIV4UnitSchema.xml">
<PromotionInfos>
<PromotionInfo>
<Type>PROMOTION_COMBAT1</Type>
<Description>TXT_KEY_PROMOTION_COMBAT1</Description>
<Sound>AS2D_IF_LEVELUP</Sound>
<PromotionPrereqOr1>NONE</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>10</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsDefense>0</iHillsDefense>
<TerrainDefenses/>
<FeatureDefenses/>
<UnitCombatMods/>
<DomainMods/>
<TerrainDoubleMoves/>
<FeatureDoubleMoves/>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_SIEGE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_GUN</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARMOR</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_HELICOPTER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->
<UnitCombat>
<UnitCombatType>UNITCOMBAT_CHOPPER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->
<UnitCombat>
<UnitCombatType>UNITCOMBAT_NAVAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
</UnitCombats>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>,Art/Interface/Buttons/Promotions/Combat1.dds,Art/Interface/Buttons/Promotions_Atlas.dds,8,2</Button>
</PromotionInfo>
<PromotionInfo>
<Type>PROMOTION_COMBAT2</Type>
<Description>TXT_KEY_PROMOTION_COMBAT2</Description>
<Sound>AS2D_IF_LEVELUP</Sound>
<PromotionPrereqOr1>PROMOTION_COMBAT1</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>10</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsDefense>0</iHillsDefense>
<TerrainDefenses/>
<FeatureDefenses/>
<UnitCombatMods/>
<DomainMods/>
<TerrainDoubleMoves/>
<FeatureDoubleMoves/>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_SIEGE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_GUN</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARMOR</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_HELICOPTER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_NAVAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->
<UnitCombat>
<UnitCombatType>UNITCOMBAT_CHOPPER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->
</UnitCombats>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>,Art/Interface/Buttons/Promotions/Combat2.dds,Art/Interface/Buttons/Promotions_Atlas.dds,1,6</Button>
</PromotionInfo>
<PromotionInfo>
<Type>PROMOTION_COMBAT3</Type>
<Description>TXT_KEY_PROMOTION_COMBAT3</Description>
<Sound>AS2D_IF_LEVELUP</Sound>
<PromotionPrereqOr1>PROMOTION_COMBAT2</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>10</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsDefense>0</iHillsDefense>
<TerrainDefenses/>
<FeatureDefenses/>
<UnitCombatMods/>
<DomainMods/>
<TerrainDoubleMoves/>
<FeatureDoubleMoves/>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_SIEGE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_GUN</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARMOR</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_HELICOPTER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_NAVAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->
<UnitCombat>
<UnitCombatType>UNITCOMBAT_CHOPPER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->
</UnitCombats>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>,Art/Interface/Buttons/Promotions/Combat3.dds,Art/Interface/Buttons/Promotions_Atlas.dds,2,6</Button>
</PromotionInfo>

Also modified:
CIV4FormationInfos.xml
CIV4GameText_Civilopedia_Concepts.xml
CIV4GameText_Civilopedia_Units.xml
CIV4GameText_Misc1.xml
CIV4GameText_Strategy.xml
CIV4GameTextInfos_Objects.xml

Any ideas? I've never really played any of the other civ games, but it doesn't seem all that hard. Thanks... :D
 
This is really cool! Civ4 desperately needs some airlifting capability, now that there aren't any paratroopers in the game!

The first thing comes to mind - have you tried using it with UNITCOMBAT_HELICOPTER? Do the promotions work in this case?

Also have you checked whether the AI is actually able to use the choplifter properly?
 
If I use unitcombat_helicopter then the helicopter and chopper must share the same promotions. I figured the chopper would be able to get a few things like medic that a gunship can't.
 
Fixed it!

removing the comments from the PromotionInfo file seems to have worked.

<!-- CHOPPER -->
<UnitCombat>
<UnitCombatType>UNITCOMBAT_CHOPPER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<!-- CHOPPER -->

A bug maybe? Anyway, I'm going to work on the mod some more tomorrow then release... Thanks all!
 
Back
Top Bottom