Modding Question - Hero Graphics

Azurain

Chieftain
Joined
Feb 12, 2010
Messages
3
Hello,

I've spent a fair bit of time searching the forum for an answer to this, as well as a couple hours trying to figure it out through trial and error, but I apologize if the answer to this is obvious or somewhere I should have thought to have looked. :)

It's actually a rather minor change I'm looking to make. I always find myself a little less interested in hero units because of the single unit. I imagine (for my sake--I don't know about the FFH flavor, or care too much in this case) that a hero is a powerful individual who leads an elite company of warriors. I mean, each FFH unit must represent hundreds or thousands of soldiers--it'd be dumb, to me, if a hero were by himself just slaughtering men by the hundred.

So, to make this more immersive for myself, what I've been trying to do is give heroes two other units within their unit, graphically (like how a ranger has two panthers). I've gotten the xml sorted out perfectly such that if I copy/paste the graphic/mesh xml into another unit's entry, it shows up fine (Chalid with two Radiant Guards) but with the hero unit itself, it's just a blank graphic.

I've already modded the hero promotion to remove the single unit display restriction. I've gone through the unit xml with a fine comb and nothing outside of basic stats and starting promotions (and pedia entries) is different between my ranger unit and my Chalid unit. No matter what I do, I can't get Chalid to have two Radiant Guard unit-graphics beside him.

My guess is that there's some crazy python thing involved, but I can't imagine why python would be involved specifically in hero unit graphics in a way that would make a hero's graphics appear blank only when he's set to have three unit-graphics instead of one.

Just to note, technically I'm playing the wildmana mod, but I'm not aware of any changes to hero unit code in wildmana at all. In any case, I'm including the xml here in case anyone can help. Thanks in advance. ;)

Spoiler :
<UnitInfo>
<Class>UNITCLASS_CHALID</Class>
<Type>UNIT_CHALID</Type>
<UniqueNames>
</UniqueNames>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>UNITCOMBAT_MELEE</Combat>
<Domain>DOMAIN_LAND</Domain>
<DefaultUnitAI>UNITAI_HERO</DefaultUnitAI>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_CHALID</Description>
<Civilopedia>TXT_KEY_UNIT_GIBBON_PEDIA</Civilopedia>
<Strategy>TXT_KEY_UNIT_CHALID_STRATEGY</Strategy>
<Advisor>ADVISOR_MILITARY</Advisor>
<bAnimal>0</bAnimal>
<bFood>0</bFood>
<bNoBadGoodies>0</bNoBadGoodies>
<bOnlyDefensive>0</bOnlyDefensive>
<bNoCapture>0</bNoCapture>
<bQuickCombat>0</bQuickCombat>
<bRivalTerritory>0</bRivalTerritory>
<bMilitaryHappiness>1</bMilitaryHappiness>
<bMilitarySupport>0</bMilitarySupport>
<bMilitaryProduction>1</bMilitaryProduction>
<bPillage>1</bPillage>
<bSpy>0</bSpy>
<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>0</bNoDefensiveBonus>
<bIgnoreBuildingDefense>0</bIgnoreBuildingDefense>
<bCanMoveImpassable>0</bCanMoveImpassable>
<bCanMoveAllTerrain>0</bCanMoveAllTerrain>
<bFlatMovementCost>0</bFlatMovementCost>
<bIgnoreTerrainCost>0</bIgnoreTerrainCost>
<bNukeImmune>0</bNukeImmune>
<bPrereqBonuses>0</bPrereqBonuses>
<bPrereqReligion>0</bPrereqReligion>
<bMechanized>0</bMechanized>
<bSuicide>0</bSuicide>
<bHiddenNationality>0</bHiddenNationality>
<bAlwaysHostile>0</bAlwaysHostile>
<UnitClassUpgrades>
</UnitClassUpgrades>
<UnitClassTargets>
</UnitClassTargets>
<UnitCombatTargets>
</UnitCombatTargets>
<UnitClassDefenders>
</UnitClassDefenders>
<UnitCombatDefenders>
</UnitCombatDefenders>
<FlankingStrikes>
</FlankingStrikes>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_ATTACK</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs>
</NotUnitAIs>
<Builds>
</Builds>
<ReligionSpreads>
</ReligionSpreads>
<CorporationSpreads>
</CorporationSpreads>
<GreatPeoples>
</GreatPeoples>
<Buildings>
</Buildings>
<ForceBuildings>
</ForceBuildings>
<HolyCity>NONE</HolyCity>
<ReligionType>RELIGION_THE_EMPYREAN</ReligionType>
<StateReligion>RELIGION_THE_EMPYREAN</StateReligion>
<PrereqReligion>RELIGION_THE_EMPYREAN</PrereqReligion>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqTech>TECH_RELIGIOUS_LAW</PrereqTech>
<TechTypes>
</TechTypes>
<BonusType>NONE</BonusType>
<PrereqBonuses>
</PrereqBonuses>
<ProductionTraits>
</ProductionTraits>
<Flavors>
</Flavors>
<iAIWeight>200</iAIWeight>
<iCost>300</iCost>
<iHurryCostModifier>0</iHurryCostModifier>
<iAdvancedStartCost>-1</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iMinAreaSize>-1</iMinAreaSize>
<iMoves>2</iMoves>
<bNoRevealMap>0</bNoRevealMap>
<iAirRange>0</iAirRange>
<iAirUnitCap>0</iAirUnitCap>
<iDropRange>0</iDropRange>
<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>
<iEspionagePoints>0</iEspionagePoints>
<TerrainImpassables>
</TerrainImpassables>
<FeatureImpassables>
</FeatureImpassables>
<TerrainPassableTechs>
</TerrainPassableTechs>
<FeaturePassableTechs>
</FeaturePassableTechs>
<iCombat>7</iCombat>
<iCombatLimit>100</iCombatLimit>
<iAirCombat>0</iAirCombat>
<iAirCombatLimit>0</iAirCombatLimit>
<iXPValueAttack>32</iXPValueAttack>
<iXPValueDefense>16</iXPValueDefense>
<iFirstStrikes>0</iFirstStrikes>
<iChanceFirstStrikes>0</iChanceFirstStrikes>
<iInterceptionProbability>0</iInterceptionProbability>
<iEvasionProbability>0</iEvasionProbability>
<iWithdrawalProb>0</iWithdrawalProb>
<iCollateralDamage>0</iCollateralDamage>
<iCollateralDamageLimit>0</iCollateralDamageLimit>
<iCollateralDamageMaxUnits>0</iCollateralDamageMaxUnits>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iAnimalCombat>0</iAnimalCombat>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<TerrainNatives>
</TerrainNatives>
<FeatureNatives>
</FeatureNatives>
<TerrainAttacks>
</TerrainAttacks>
<TerrainDefenses>
</TerrainDefenses>
<FeatureAttacks>
</FeatureAttacks>
<FeatureDefenses>
</FeatureDefenses>
<UnitClassAttackMods>
</UnitClassAttackMods>
<UnitClassDefenseMods>
</UnitClassDefenseMods>
<UnitCombatMods>
</UnitCombatMods>
<UnitCombatCollateralImmunes>
</UnitCombatCollateralImmunes>
<DomainMods>
</DomainMods>
<BonusProductionModifiers>
</BonusProductionModifiers>
<iBombRate>0</iBombRate>
<iBombardRate>0</iBombardRate>
<SpecialCargo>NONE</SpecialCargo>
<DomainCargo>NONE</DomainCargo>
<iCargo>0</iCargo>
<iConscription>0</iConscription>
<iCultureGarrison>16</iCultureGarrison>
<iExtraCost>0</iExtraCost>
<iAsset>10</iAsset>
<iPower>21</iPower>
<UnitMeshGroups>
<iGroupSize>3</iGroupSize>
<fMaxSpeed>1.75</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>3</iMeleeWaveSize>
<iRangedWaveSize>0</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<EarlyArtDefineTag>ART_DEF_UNIT_CHALID</EarlyArtDefineTag>
</UnitMeshGroup>
<UnitMeshGroup>
<iRequired>2</iRequired>
<EarlyArtDefineTag>ART_DEF_UNIT_RADIANT_GUARD</EarlyArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<FormationType>FORMATION_TYPE_DEFAULT</FormationType>
<HotKey></HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<bGraphicalOnly>0</bGraphicalOnly>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions>
<FreePromotion>
<PromotionType>PROMOTION_HERO</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_CHANNELING1</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_CHANNELING2</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_CHANNELING3</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_SUN1</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_LAW1</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_DIVINE</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
<FreePromotion>
<PromotionType>PROMOTION_SENTRY</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
</FreePromotions>
<LeaderPromotion>NONE</LeaderPromotion>
<iLeaderExperience>0</iLeaderExperience>
<bAbandon>1</bAbandon>
<iCombatDefense>7</iCombatDefense>
<iTier>3</iTier>
<DiploVoteType>DIPLOVOTE_OVERCOUNCIL</DiploVoteType>
<BonusAffinities>
<BonusAffinity>
<BonusType>BONUS_MANA_SUN</BonusType>
<iAffinity>2</iAffinity>
</BonusAffinity>
</BonusAffinities>
</UnitInfo>
 
Ack! Nevermind; figured it out, mostly. It works fine if I start new games whenever I make a change to unit graphics. I just forgot how easily modding Civ4/FFH can break a savegame--I'm spoiled by modding Total War and Dominions 3. :)

If anyone knows off-hand if there's a reason why his new graphics refuse to appear in an existing savegame but are fine in a new game (just so I understand) it'd be appreciated.
 
Ack! Nevermind; figured it out, mostly. It works fine if I start new games whenever I make a change to unit graphics. I just forgot how easily modding Civ4/FFH can break a savegame--I'm spoiled by modding Total War and Dominions 3. :)

If anyone knows off-hand if there's a reason why his new graphics refuse to appear in an existing savegame but are fine in a new game (just so I understand) it'd be appreciated.

I don't have any formal knowledge concerning "why" that would be the case in CivIVFFH2. But, it could be to some graphics ref-data being ref'd in the save-file. Maybe so some promotions/items/upgrades could be displayed properly or have a chance to have unique displays or something?

Or, could it be your cache? IIRC, the cache is flushed and recreated every time you choose to start a new game. Try forcing a cache flush by holding down CTRL while clicking on the BTS desktop icon to start the game or, starting a new game, dropping that game then loading up your old save file.
 
Top Bottom