PDA

View Full Version : Help with New General



bloodfyr
01-01-2005, 06:41 AM
Okay...so I'm trying to create a new General for personal use when my friends and I play Zero Hour over the LAN. It's a Chinese general that specialized in Air Force (basically the equivalent to Granger. Where Granger uses his air force to pummel his opponnet to oblivion, I use my airforce to support a small ground force in battle)

Anyway...I've edited pretty much just about everything about this general to my liking, while trying to keep it balanced. It uses Zero Hour Reborn's new fighters for China in it. I'm not going to release it onto the internet. It's for my personal use.

But anyway...I keep running into this problem where the game has problems parsing a particular line in my ChinaAirGeneral.ini file. It parses the entire file just fine, except for the 'Object CAir_ChinaCommandCenter' line, which is down near the very end of the file.

Here's that section of ChinaAirGeneral.ini (I cut out the some of the unimportant stuff for posting). If you could please take a look at it and tell me what's wrong (which I'm betting is a simple, stupid mistake on my part), I would love you forever. I thought I had this pretty much edited just fine. I've created CommandSets, edited PlayerFaction, and edited CommandButton. Maybe there's somewhere else I'm supposed to edit?

*is a n00b and knows it*


Object CAir_ChinaCommandCenter

; *** ART Parameters ***

; ------------ the main building itself -----------------
SelectPortrait = SNComCentr_L
ButtonImage = SNComCentr
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes

; DAY ************************************
DefaultConditionState
Model = NBConYardI
Animation = NBConYardI.NBConYardI
AnimationMode = LOOP
End
ConditionState = DAMAGED
Model = NBConYardI_D
Animation = NBConYardI_D.NBConYardI_D
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End
ConditionState = REALLYDAMAGED RUBBLE
Model = NBConYardI_E
Animation = NBConYardI_E.NBConYardI_E
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Fire04 SmolderingFire
ParticleSysBone = Fire05 SmolderingFire
ParticleSysBone = Fire06 SmolderingFire
ParticleSysBone = Fire07 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End


;NIGHT ***********************************
ConditionState = NIGHT
Model = NBConYardI_N
Animation = NBConYardI_N.NBConYardI_N
AnimationMode = LOOP
End
ConditionState = DAMAGED NIGHT
Model = NBConYardI_DN
Animation = NBConYardI_DN.NBConYardI_DN
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End
ConditionState = REALLYDAMAGED RUBBLE NIGHT
Model = NBConYardI_EN
Animation = NBConYardI_EN.NBConYardI_EN
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Fire04 SmolderingFire
ParticleSysBone = Fire05 SmolderingFire
ParticleSysBone = Fire06 SmolderingFire
ParticleSysBone = Fire07 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End


;SNOW *************************************
ConditionState = SNOW
Model = NBConYardI_S
Animation = NBConYardI_S.NBConYardI_S
AnimationMode = LOOP
End
ConditionState = DAMAGED SNOW
Model = NBConYardI_DS
Animation = NBConYardI_DS.NBConYardI_DS
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End
ConditionState = REALLYDAMAGED RUBBLE SNOW
Model = NBConYardI_ES
Animation = NBConYardI_ES.NBConYardI_ES
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Fire04 SmolderingFire
ParticleSysBone = Fire05 SmolderingFire
ParticleSysBone = Fire06 SmolderingFire
ParticleSysBone = Fire07 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End

;NIGHT SNOW *****************************
ConditionState = NIGHT SNOW
Model = NBConYardI_NS
Animation = NBConYardI_NS.NBConYardI_NS
AnimationMode = LOOP
End
ConditionState = DAMAGED NIGHT SNOW
Model = NBConYardI_DNS
Animation = NBConYardI_DNS.NBConYardI_DNS
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End
ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW
Model = NBConYardI_ENS
Animation = NBConYardI_ENS.NBConYardI_ENS
AnimationMode = LOOP
ParticleSysBone = Fire01 SmolderingFire
ParticleSysBone = Fire02 SmolderingFire
ParticleSysBone = Fire03 SmolderingFire
ParticleSysBone = Fire04 SmolderingFire
ParticleSysBone = Fire05 SmolderingFire
ParticleSysBone = Fire06 SmolderingFire
ParticleSysBone = Fire07 SmolderingFire
ParticleSysBone = Smoke01 SmolderingSmoke
ParticleSysBone = Smoke02 SmolderingSmoke
ParticleSysBone = Smoke03 SmolderingSmoke
End


; Officers club flag
Draw = W3DModelDraw ModuleTag_OfficersClub
OkToChangeModelColor = No

ConditionState = NONE
Model = None
End
AliasConditionState = DAMAGED
AliasConditionState = REALLYDAMAGED
AliasConditionState = RUBBLE
AliasConditionState = REALLYDAMAGED RUBBLE
ConditionState = PREORDER
Model = OCFlagCHA
Animation = OCFlagCHA.OCFlagCHA
AnimationMode = LOOP
Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
End
; ConditionState = PREORDER DAMAGED
; Model = OCFlagCHA_D
; Animation = OCFlagCHA_D.OCFlagCHA_D
; AnimationMode = LOOP
; Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
; End
; ConditionState = PREORDER REALLYDAMAGED
; Model = OCFlagCHA_E
; Animation = OCFlagCHA_E.OCFlagCHA_E
; AnimationMode = LOOP
; Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
; End
End

PlacementViewAngle = -135

; ***DESIGN parameters ***
DisplayName = OBJECT:CommandCenter
Side = ChinaInfantryGeneral
EditorSorting = STRUCTURE
BuildCost = 2000
BuildTime = 45.0 ; in seconds
EnergyProduction = 0 ;Command center should be free
CommandSet = CAir_ChinaCommandCenterCommandSet
VisionRange = 300.0 ; Shroud clearing distance
ShroudClearingRange = 300
ArmorSet
Conditions = None
Armor = StructureArmorTough
DamageFX = StructureDamageFXNoShake
End
ExperienceValue = 200 200 200 200 ; Experience point value at each level

; *** AUDIO Parameters ***
VoiceSelect = CommandCenterChinaSelect
SoundOnDamaged = BuildingDamagedStateLight
SoundOnReallyDamaged = BuildingDestroy

UnitSpecificSounds
UnderConstruction = UnderConstructionLoop
End

; *** ENGINEERING Parameters ***
RadarPriority = STRUCTURE
KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE COMMANDCENTER SCORE CAPTURABLE FS_FACTORY AUTO_RALLYPOINT MP_COUNT_FOR_VICTORY

Body = StructureBody ModuleTag_07
MaxHealth = 5000.0
InitialHealth = 5000.0

; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
SubdualDamageCap = 5200
SubdualDamageHealRate = 500
SubdualDamageHealAmount = 100
End

Behavior = PreorderCreate ModuleTag_PreorderCreate
End

Behavior = ProductionUpdate ModuleTag_08
NumDoorAnimations = 1
DoorOpeningTime = 3000 ;in mSeconds
DoorWaitOpenTime = 3000 ;in mSeconds
DoorCloseTime = 3000 ;in mSeconds
ConstructionCompleteDuration = 1500 ;in mSeconds
End
Behavior = DefaultProductionExitUpdate ModuleTag_09
UnitCreatePoint = X:-18.0 Y: 40.0 Z:0.0
NaturalRallyPoint = X: 60.0 Y: 40.0 Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius! -ML
End
Behavior = RadarUpdate ModuleTag_10
RadarExtendTime = 4000 ;in mSeconds
End

Behavior = DestroyDie ModuleTag_11
;nothing
End
Behavior = CreateObjectDie ModuleTag_12
CreationList = OCL_LargeStructureDebris
End
Behavior = FXListDie ModuleTag_13
DeathFX = FX_CommandCenterDeathInfantryGen;FX_StructureMediu mDeath
End

Behavior = RadarUpgrade ModuleTag_14
TriggeredBy = Upgrade_ChinaRadar
End

Behavior = GenerateMinefieldBehavior ModuleTag_15
TriggeredBy = Upgrade_ChinaMines
MineName = ChinaStandardMine
SmartBorder = Yes
AlwaysCircular = Yes

Upgradable = Yes
UpgradedTriggeredBy = Upgrade_ChinaEMPMines
UpgradedMineName = ChinaEMPMine
End

Behavior = OCLSpecialPower ModuleTag_16
SpecialPowerTemplate = SuperweaponNapalmStrike
OCL = SUPERWEAPON_NapalmStrike
End

Behavior = OCLSpecialPower ModuleTag_17
SpecialPowerTemplate = SuperweaponArtilleryBarrage
UpgradeOCL = SCIENCE_ArtilleryBarrage3 SUPERWEAPON_ArtilleryBarrage3
UpgradeOCL = SCIENCE_ArtilleryBarrage2 SUPERWEAPON_ArtilleryBarrage2
OCL = SUPERWEAPON_ArtilleryBarrage1
CreateLocation = CREATE_AT_EDGE_FARTHEST_FROM_TARGET
End

Behavior = OCLSpecialPower ModuleTag_18
SpecialPowerTemplate = SuperweaponClusterMines
OCL = SUPERWEAPON_ClusterMines
CreateLocation = CREATE_AT_EDGE_NEAR_SOURCE
End

Behavior = OCLSpecialPower ModuleTag_19
SpecialPowerTemplate = SuperweaponEMPPulse
OCL = SUPERWEAPON_EMPPulse
CreateLocation = CREATE_AT_EDGE_NEAR_SOURCE
End

Behavior = CashHackSpecialPower ModuleTag_20
SpecialPowerTemplate = SuperweaponCashHack
UpgradeMoneyAmount = SCIENCE_CashHack3 4000
UpgradeMoneyAmount = SCIENCE_CashHack2 2000
MoneyAmount = 1000 ; amount of money to steal
End
Behavior = OCLSpecialPower ModuleTag_21
SpecialPowerTemplate = SuperweaponEmergencyRepair
UpgradeOCL = SCIENCE_EmergencyRepair3 SUPERWEAPON_RepairVehicles3
UpgradeOCL = SCIENCE_EmergencyRepair2 SUPERWEAPON_RepairVehicles2
OCL = SUPERWEAPON_RepairVehicles1
CreateLocation = CREATE_AT_LOCATION
End
Behavior = OCLSpecialPower ModuleTag_22;this has been removed from everywhere but the ChinaAirfield in CHI05
SpecialPowerTemplate = Early_SuperweaponChinaCarpetBomb
OCL = SUPERWEAPON_ChinaCarpetBomb
CreateLocation = CREATE_AT_EDGE_NEAR_SOURCE
End

Behavior = FlammableUpdate ModuleTag_23
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 5 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End

Behavior = TransitionDamageFX ModuleTag_24
;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS-------------------
DamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
;---------------------------------------------------------------------------------------
ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke
ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion
ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave
End

Behavior = CommandSetUpgrade ModuleTag_25
CommandSet = CAir_ChinaCommandCenterCommandSetUpgrade
TriggeredBy = Upgrade_ChinaMines
End
Behavior = ArmorUpgrade ModuleTag_26
TriggeredBy = Upgrade_ChinaEMPMines
End

Behavior = OCLSpecialPower ModuleTag_27
SpecialPowerTemplate = CAir_SuperweaponInfantryParadrop
UpgradeOCL = CAir_SCIENCE_InfantryParadrop3 CAir_SUPERWEAPON_Paradrop3
UpgradeOCL = CAir_SCIENCE_InfantryParadrop2 CAir_SUPERWEAPON_Paradrop2
OCL = CAir_SUPERWEAPON_Paradrop1
CreateLocation = CREATE_AT_EDGE_NEAR_SOURCE
OCLAdjustPositionToPassable = Yes ;Like RA2, shift target to passable cell so we don't land in water and on cliffs.
End

Behavior = GrantUpgradeCreate ModuleTag_28
UpgradeToGrant = Upgrade_Nationalism
ExemptStatus = UNDER_CONSTRUCTION
End

Behavior = OCLSpecialPower ModuleTag_29
SpecialPowerTemplate = Early_SuperweaponFrenzy
UpgradeOCL = Early_SCIENCE_Frenzy3 SUPERWEAPON_Frenzy3
UpgradeOCL = Early_SCIENCE_Frenzy2 SUPERWEAPON_Frenzy2
OCL = SUPERWEAPON_Frenzy1
CreateLocation = CREATE_AT_LOCATION
End

Behavior = OCLSpecialPower ModuleTag_30
SpecialPowerTemplate = SuperweaponNapalmStrike
OCL = SUPERWEAPON_NapalmStrike
End

Geometry = BOX
FactoryExitWidth = 25
GeometryMajorRadius = 60.0
GeometryMinorRadius = 63.0
GeometryHeight = 36.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
BuildCompletion = PLACED_BY_PLAYER

End

CodeCat
01-01-2005, 09:22 AM
Most important trick when fighting bugs/errors: Run ZH's world builder. Where the game just says there IS an error (and occasionally says where it is), WB will almost ALWAYS say where the error is, and even some hints on how to fix it.

AntiSocialKindaGuy
01-01-2005, 09:47 AM
If WB can't find it, its usually commandset or commandbutton.
If the game boots but crashes on a particular unit, its usually that units anims or art.