Quick Modding Questions Thread

Art defines
Spoiler :
Code:
		<UnitArtInfo>
			<Type>ART_DEF_UNIT_MACV_SOG</Type>
			<Button>Art/Interface/Buttons/Units/MACV_SOG.dds</Button>
			<fScale>0.44</fScale>
			<fInterfaceScale>1.0</fInterfaceScale>
			<bActAsLand>0</bActAsLand>
			<bActAsAir>0</bActAsAir>
			<NIF>Art/Units/US/SOG/SOG.nif</NIF>
			<KFM>Art/Units/Paratrooper/Paratrooper.kfm</KFM>
			<SHADERNIF>Art/Units/US/SOG/SOG.nif</SHADERNIF>
			<ShadowDef>
				<ShadowNIF>Art/Units/01_UnitShadows/UnitShadow.nif</ShadowNIF>
				<ShadowAttachNode>BIP Pelvis</ShadowAttachNode>
				<fShadowScale>0.9</fShadowScale>
			</ShadowDef>
			<fBattleDistance>0.35</fBattleDistance>
			<fRangedDeathTime>0.05</fRangedDeathTime>
			<bActAsRanged>1</bActAsRanged>
			<TrainSound>AS2D_UNIT_BUILD_UNIT</TrainSound>
			<AudioRunSounds>
				<AudioRunTypeLoop/>
				<AudioRunTypeEnd/>
			</AudioRunSounds>
		</UnitArtInfo>
attachment.php

It uses paratrooper anims, because this unit can paradrop. .NIF used is based on paratrooper .NIF.
All i did was replacing paratrooper body with marine body, and adding some fancy things on it.


I can select, and build the unit in a city fine. But the issue is that if SOG unit is on the map, between turns 7-8, the game crashes.
If I remove all SOG units during turn 7 (Also ones beeing build in cities.), ->press next turn(game is prosessing other player's moves.)->game doesn't crash. After that, I can build new SOG units, and the game doesn't crash.
I want to know what code is called between turns 7 and 8, something in that code is crashing my game.
 
I'm working on a mod to have contagious plagues (because my mods are always delightful that way) and I'm having some confusion regarding events with python code. The event, as far as what the XML file tells it to do, is working just fine, but the python function where most of the action occurs isn't being called.
My Civ4EventInfos.xml file includes the line:
Code:
<PythonCallback>doPlague</PythonCallback>

The python function is in a larger file, but the part that isn't happening is this:
Code:
def doPlague(argsList):
	iEvent = argsList[0] 
	kTriggeredData = argsList[1]
	myplot = cyMap.plot(kTriggeredData.iPlotX,  kTriggeredData.iPlotY)
	InfectedPlots.append(myplot)
	#let's see if this is running:
	pop = PyPopup()
	pop.setBodyString('doPlague is running.')
	pop.launch()
I inserted an otherwise unnecessary popup to tell me that it's happening, and it doesn't pop up. Needless to say, the actual function of the python code (adding the plague plot to a list to be checked by another function) isn't executing either.

Sooo... is there something obvious I'm missing? I have exceptions turned on and nothing came up when I ran it.
 
The Python functions used by the Event stuff must be in the correct file: CvRandomEventInterface.py, located in the Python\EntryPoints folder.

That is the only place it looks for them.

If that is where it is, perhaps you have a bug in your code. Actually, I think I see one: it is generally "CyMap().plot(...)", not "cyMap.plot(...)" unless you have defined "cyMap" to be "CyMap()". So it is being called then the function is probably crashing on that line, never getting to anything after it. Are you sure you have HidePythonExceptions = 0 in the main .ini file?
 
Ok, turns out I inadvertently lied, and exceptions were not enabled (though I could've sworn they were before...).
I did, in fact, define cyMap = CyMap() earlier, so that wasn't it.
It was my favorite syntax error, forgetting the colon after an "if" statement. However, I didn't know about the CvRandomEventInterface.py thing, so that's probably why it still isn't working after I fixed the bug. Thanks!
 
Progress has been made, most definitely, and the code is executing. Now I've got a weird little thing going on. Here's doPlague, now correctly located in the CvRandomEventInterface.py file:
Code:
def doPlague(argsList):
	iEvent = argsList[0] 
	kTriggeredData = argsList[1]
	cyMap = CyMap()
	myplot = cyMap.plot(kTriggeredData.iPlotX,  kTriggeredData.iPlotY)
	Plague.PlagueListAdd(myplot)
And here's the function it's calling:
Code:
def PlagueListAdd(NewPlot):
	InfectedPlots.append(NewPlot)
But when, in another function called at the beginning of each turn, I try to use an element of InfectedPlots in a for loop, it tells me that the element from InfectedPlots is a 'list'!
Here's the important part of the for loop:
Code:
		for ThisPlot in InfectedPlots:	#For each of the infected plots...
			Neighbors = []
			x = ThisPlot.getX()
			y = ThisPlot.getY()
...and it tells me that I can't do a .getX() on ThisPlot because ThisPlot is a list.
So, my question is: Huh?
 
Hello everyone :)

I have a weirdish problem today :)

I was tried to give Privateer a bonus vs Ship of the Line and got this:

Spoiler :
Civ4ScreenShot0002.jpg
I checked and recheked everything but can't determine why the unit name doesn't match

all the unit names and class names are original BTS, I changed nothing but it doesn't want to recognise the proper name for ship of the line

my priv data:

Spoiler :


<UnitInfo>
<Class>UNITCLASS_PRIVATEER</Class>
<Type>UNIT_PRIVATEER</Type>
<UniqueNames/>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>UNITCOMBAT_NAVAL</Combat>
<Domain>DOMAIN_SEA</Domain>
<DefaultUnitAI>UNITAI_PIRATE_SEA</DefaultUnitAI>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_PRIVATEER</Description>
<Civilopedia>TXT_KEY_UNIT_PRIVATEER_PEDIA</Civilopedia>
<Strategy>TXT_KEY_UNIT_PRIVATEER_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>0</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>1</bMechanized>
<bRenderBelowWater>1</bRenderBelowWater>
<bSuicide>0</bSuicide>
<bHiddenNationality>1</bHiddenNationality>
<bAlwaysHostile>1</bAlwaysHostile>
<UnitClassUpgrades>
<UnitClassUpgrade>
<UnitClassUpgradeType>UNITCLASS_HEAVYFRIGATE</UnitClassUpgradeType>
<bUnitClassUpgrade>1</bUnitClassUpgrade>
</UnitClassUpgrade>
</UnitClassUpgrades>
<UnitClassTargets/>
<UnitCombatTargets/>
<UnitClassDefenders/>
<UnitCombatDefenders/>
<FlankingStrikes/>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_PIRATE_SEA</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs>
<UnitAI>
<UnitAIType>UNITAI_ESCORT_SEA</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_RESERVE_SEA</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_ATTACK_SEA</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</NotUnitAIs>
<Builds/>
<ReligionSpreads/>
<CorporationSpreads/>
<GreatPeoples/>
<Buildings/>
<ForceBuildings/>
<HolyCity>NONE</HolyCity>
<ReligionType>NONE</ReligionType>
<StateReligion>NONE</StateReligion>
<PrereqReligion>NONE</PrereqReligion>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqTech>TECH_NAVAL_ENGINEERING</PrereqTech>
<TechTypes>
<PrereqTech>NONE</PrereqTech>
<PrereqTech>NONE</PrereqTech>
</TechTypes>
<BonusType>NONE</BonusType>
<PrereqBonuses>
<BonusType>BONUS_COPPER</BonusType>
<BonusType>BONUS_IRON</BonusType>
<BonusType>NONE</BonusType>
<BonusType>NONE</BonusType>
</PrereqBonuses>
<ProductionTraits/>
<Flavors/>
<iAIWeight>0</iAIWeight>
<iCost>70</iCost>
<iHurryCostModifier>0</iHurryCostModifier>
<iAdvancedStartCost>100</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iMinAreaSize>20</iMinAreaSize>
<iMoves>4</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/>
<FeatureImpassables/>
<TerrainPassableTechs/>
<FeaturePassableTechs/>
<iCombat>6</iCombat>
<iCombatLimit>100</iCombatLimit>
<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>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/>
<FeatureNatives/>
<TerrainAttacks/>
<TerrainDefenses/>
<FeatureAttacks/>
<FeatureDefenses/>

<UnitClassAttackMods>
<UnitClassAttackMod>
<UnitClassType>UNITCLASS_SHIP_OF_THE_LINE</UnitClassType>
<iUnitClassMod>50</iUnitClassMod>
</UnitClassAttackMod>
</UnitClassAttackMods>
<UnitClassDefenseMods>
<UnitClassDefenseMod>
<UnitClassType>UNITCLASS_SHIP_OF_THE_LINE</UnitClassType>
<iUnitClassMod>50</iUnitClassMod>
</UnitClassDefenseMod>
</UnitClassDefenseMods>

<UnitCombatMods/>
<UnitCombatCollateralImmunes/>
<DomainMods/>
<BonusProductionModifiers/>
<iBombRate>0</iBombRate>
<iBombardRate>0</iBombardRate>
<SpecialCargo>NONE</SpecialCargo>
<DomainCargo>DOMAIN_LAND</DomainCargo>
<iCargo>0</iCargo>
<iConscription>0</iConscription>
<iCultureGarrison>0</iCultureGarrison>
<iExtraCost>0</iExtraCost>
<iAsset>2</iAsset>
<iPower>4</iPower>
<UnitMeshGroups>
<iGroupSize>1</iGroupSize>
<fMaxSpeed>2.25</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>1</iMeleeWaveSize>
<iRangedWaveSize>1</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<EarlyArtDefineTag>ART_DEF_UNIT_PRIVATEER</EarlyArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<FormationType>FORMATION_TYPE_MACHINE</FormationType>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions>
<FreePromotion>
<PromotionType>PROMOTION_SENTRY</PromotionType>
<bFreePromotion>1</bFreePromotion>
</FreePromotion>
</FreePromotions>
<LeaderPromotion>NONE</LeaderPromotion>
<iLeaderExperience>0</iLeaderExperience>
</UnitInfo>



ship of the line data
Spoiler :


<UnitInfo>
<Class>UNITCLASS_SHIP_OF_THE_LINE</Class>
<Type>UNIT_SHIP_OF_THE_LINE</Type>
<UniqueNames/>
<Special>NONE</Special>
<Capture>NONE</Capture>
<Combat>UNITCOMBAT_NAVAL</Combat>
<Domain>DOMAIN_SEA</Domain>
<DefaultUnitAI>UNITAI_ATTACK_SEA</DefaultUnitAI>
<Invisible>NONE</Invisible>
<SeeInvisible>NONE</SeeInvisible>
<Description>TXT_KEY_UNIT_SHIP_OF_THE_LINE</Description>
<Civilopedia>TXT_KEY_UNIT_SHIP_OF_THE_LINE_PEDIA</Civilopedia>
<Strategy>TXT_KEY_UNIT_SHIP_OF_THE_LINE_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>0</bMilitaryHappiness>
<bMilitarySupport>1</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>1</bMechanized>
<bRenderBelowWater>1</bRenderBelowWater>
<bSuicide>0</bSuicide>
<bHiddenNationality>0</bHiddenNationality>
<bAlwaysHostile>0</bAlwaysHostile>
<UnitClassUpgrades>
<UnitClassUpgrade>
<UnitClassUpgradeType>UNITCLASS_HEAVYFRIGATE</UnitClassUpgradeType>
<bUnitClassUpgrade>1</bUnitClassUpgrade>
</UnitClassUpgrade>
</UnitClassUpgrades>
<UnitClassTargets/>
<UnitCombatTargets/>
<UnitClassDefenders/>
<UnitCombatDefenders/>
<FlankingStrikes/>
<UnitAIs>
<UnitAI>
<UnitAIType>UNITAI_ATTACK_SEA</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
<UnitAI>
<UnitAIType>UNITAI_RESERVE_SEA</UnitAIType>
<bUnitAI>1</bUnitAI>
</UnitAI>
</UnitAIs>
<NotUnitAIs/>
<Builds/>
<ReligionSpreads/>
<CorporationSpreads/>
<GreatPeoples/>
<Buildings/>
<ForceBuildings/>
<HolyCity>NONE</HolyCity>
<ReligionType>NONE</ReligionType>
<StateReligion>NONE</StateReligion>
<PrereqReligion>NONE</PrereqReligion>
<PrereqCorporation>NONE</PrereqCorporation>
<PrereqBuilding>NONE</PrereqBuilding>
<PrereqTech>TECH_NAVAL_ENGINEERING</PrereqTech>
<TechTypes>
<PrereqTech>TECH_FLINTLOCK</PrereqTech>
<PrereqTech>TECH_STEEL</PrereqTech>
</TechTypes>
<BonusType>BONUS_IRON</BonusType>
<PrereqBonuses/>
<ProductionTraits/>
<Flavors/>
<iAIWeight>0</iAIWeight>
<iCost>120</iCost>
<iHurryCostModifier>0</iHurryCostModifier>
<iAdvancedStartCost>100</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iMinAreaSize>20</iMinAreaSize>
<iMoves>3</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/>
<FeatureImpassables/>
<TerrainPassableTechs/>
<FeaturePassableTechs/>
<iCombat>10</iCombat>
<iCombatLimit>100</iCombatLimit>
<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>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/>
<FeatureNatives/>
<TerrainAttacks/>
<TerrainDefenses/>
<FeatureAttacks/>
<FeatureDefenses/>
<UnitClassAttackMods>
<UnitClassAttackMod>
<UnitClassType>UNITCLASS_FRIGATE</UnitClassType>
<iUnitClassMod>50</iUnitClassMod>
</UnitClassAttackMod>
</UnitClassAttackMods>
<UnitClassDefenseMods>
<UnitClassDefenseMod>
<UnitClassType>UNITCLASS_FRIGATE</UnitClassType>
<iUnitClassMod>50</iUnitClassMod>
</UnitClassDefenseMod>
</UnitClassDefenseMods>
<UnitCombatMods/>
<UnitCombatCollateralImmunes/>
<DomainMods/>
<BonusProductionModifiers/>
<iBombRate>0</iBombRate>
<iBombardRate>12</iBombardRate>
<SpecialCargo>NONE</SpecialCargo>
<DomainCargo>DOMAIN_LAND</DomainCargo>
<iCargo>0</iCargo>
<iConscription>0</iConscription>
<iCultureGarrison>0</iCultureGarrison>
<iExtraCost>0</iExtraCost>
<iAsset>2</iAsset>
<iPower>6</iPower>
<UnitMeshGroups>
<iGroupSize>1</iGroupSize>
<fMaxSpeed>2.25</fMaxSpeed>
<fPadTime>1</fPadTime>
<iMeleeWaveSize>1</iMeleeWaveSize>
<iRangedWaveSize>1</iRangedWaveSize>
<UnitMeshGroup>
<iRequired>1</iRequired>
<EarlyArtDefineTag>ART_DEF_UNIT_SHIP_OF_THE_LINE</EarlyArtDefineTag>
</UnitMeshGroup>
</UnitMeshGroups>
<FormationType>FORMATION_TYPE_MACHINE</FormationType>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<FreePromotions/>
<LeaderPromotion>NONE</LeaderPromotion>
<iLeaderExperience>0</iLeaderExperience>
</UnitInfo>


ship of the line class info
Spoiler :

<UnitClassInfo>
<Type>UNITCLASS_SHIP_OF_THE_LINE</Type>
<Description>TXT_KEY_SHIP_OF_THE_LINE</Description>
<iMaxGlobalInstances>-1</iMaxGlobalInstances>
<iMaxTeamInstances>-1</iMaxTeamInstances>
<iMaxPlayerInstances>-1</iMaxPlayerInstances>
<iInstanceCostModifier>0</iInstanceCostModifier>
<DefaultUnit>UNIT_SHIP_OF_THE_LINE</DefaultUnit>
</UnitClassInfo>


any ideas?
thanks!
 
<UnitClassInfo>
<Type>UNITCLASS_SHIP_OF_THE_LINE</Type>
<Description>TXT_KEY_UNIT_SHIP_OF_THE_LINE</Description>
<iMaxGlobalInstances>-1</iMaxGlobalInstances>
<iMaxTeamInstances>-1</iMaxTeamInstances>
<iMaxPlayerInstances>-1</iMaxPlayerInstances>
<iInstanceCostModifier>0</iInstanceCostModifier>
<DefaultUnit>UNIT_SHIP_OF_THE_LINE</DefaultUnit>
</UnitClassInfo>
 
GOT IT :)

It works. I guess Fraxis screwed up the descreiption key in BTS file and game was reading unit name from some other place for original unit but not any references to it...somehow.

anyway, thank you much - it was driving me crazy for 2 hours now :D

No it wasn't firaxis, they always read unitclass description in those situations, not unit descriptions
 
But the unit class description was wrong. That is a Firaxis provided bug. The data they provided there is wrong.

Those unit class descriptions are mostly unused, so they don't generally have to be correct. Most of them are correct, but I seem to recall that 2 or 3 of them are wrong - although it might only be that one (bad luck for ChaosSlayer either way). That particular use is one of the few places that description value is used, and possibly the only place in BtS (since the UnitClassTargets tag is not used by any unit in BtS and that is one other thing that might use it) so if no unit gets a modifier vs. that unit class that description probably doesn't appear anywhere. Since the vast majority of them don't appear anywhere, there would never be any bug reports for any that are wrong so they wouldn't get corrected.

This is also true of the building class descriptions, only more so since I think they literally do not appear anywhere in the game (unless you install BUG, which can add columns for building classes in the custom domestic advisor which use them in the hover text). They might all be correct, which would be pretty lucky.

Altering mods runs this risk too, especially 3rd party mods.
 
I'm getting this lovely error message using a dll causing my mod to crash. It only seems to crash when Texas is in the game, could it be because I tried to add another color from History in the Making?

Assert Failed

File: CvGlobals.cpp
Line: 1153
Expression: e < GC.getNumPlayerColorInfos()
Message:

EDIT: Fixed that, now I just don't have any buttons.
 
How do I made my svn repository on the interenet so that only me and certain others can update/change the repository. I still want others to be able to download it.

I'm using Tortoise SVN and the repository is at sourceforge.net.
 
How do I made my svn repository on the interenet so that only me and certain others can update/change the repository. I still want others to be able to download it.

I'm using Tortoise SVN and the repository is at sourceforge.net.

You don't do anything, subversion is by default read-only for everyone, and writeable only to those with developer status i.e. with a login & password.

To give write access to others you simply add them to the project as developers. Everything is explained here:
http://sourceforge.net/apps/trac/sourceforge/wiki/Subversion permissions management
 
Back
Top Bottom