Hi,
I've been working on this unit for the best part of 3 days now...the upgrade is reasonably simple and I've implemented this style of upgrade before without problems...but for the life of me I can't see why this isn't working this time.
I have a chassis that is built and to it you can add either an AA system or a Tank Killer turret. For 2 days both upgrades have been showing "Conflict with upgrade purchased" or words to that effect...during the course of lots of reviews and tweaks I managed to get one of the upgrades working....the AA system....however the other still remains the same. I don't know what I did to get the AA system working.
Here is the code, I'm hoping someone can explain it to me as its got to be something that I just keep missing.
*** UPGRADES.INI ***
Code:
Upgrade Upgrade_UKStormV1
DisplayName = UPGRADE:UKStormerV1
Type = OBJECT
BuildTime = 1.0
BuildCost = 100
ButtonImage = UK_STORMER_AA
End
Upgrade Upgrade_UKStormV2
DisplayName = UPGRADE:UKStormerV2
Type = OBJECT
BuildTime = 1.0
BuildCost = 100
ButtonImage = UK_STORMER_TANK
End
*** COMMANDBUTTON.INI ***
Code:
CommandButton Command_ConstructUKStormerChassis
Command = UNIT_BUILD
Object = UKStormerChassis
TextLabel = CONTROLBAR:ConstructUKStormer
ButtonImage = UK_STORMER
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipUKStormerChassis
End
CommandButton Command_UpgradeUKStormerV1
Command = OBJECT_UPGRADE
Upgrade = Upgrade_UKStormV1
Options = OK_FOR_MULTI_SELECT NOT_QUEUEABLE
TextLabel = CONTROLBAR:UpgradeUKStormerV1
ButtonImage = UK_STORMER_AA
ButtonBorderType = UPGRADE ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:TooltipUpgradeUKStormerV1
End
CommandButton Command_UpgradeUKStormerV2
Command = OBJECT_UPGRADE
Upgrade = Upgrade_UKStormV2
Options = OK_FOR_MULTI_SELECT NOT_QUEUEABLE
TextLabel = CONTROLBAR:UpgradeUKStormerV2
ButtonImage = UK_STORMER_TANK
ButtonBorderType = UPGRADE ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:TooltipUpgradeUKStormerV2
End
*** COMMANDSET.INI ***
Code:
CommandSet UKStormerCommandSet
1 = Command_UpgradeUKStormerV1
3 = Command_UpgradeUKStormerV2
9 = Command_AttackMove
11 = Command_Guard
12 = Command_Stop
End
CommandSet UKStormerV1CommandSet
9 = Command_AttackMove
11 = Command_Guard
12 = Command_Stop
End
CommandSet UKStormerV2CommandSet
9 = Command_AttackMove
11 = Command_Guard
12 = Command_Stop
End
*** OBJECTCREATIONLIST.INI ***
Code:
ObjectCreationList OCL_UKStormV1
CreateObject
ObjectNames = UKStormerV1
Count = 1
ContainInsideSourceObject = Yes
End
End
ObjectCreationList OCL_UKStormV2
CreateObject
ObjectNames = UKStormerV2
Count = 1
ContainInsideSourceObject = Yes
End
End
*** ACTUAL VEHICLE OBJECT CODE ***
Code:
Object UKStormerChassis
; *** ART Parameters ***
SelectPortrait = UK_STORMER
ButtonImage = UK_STORMER
UpgradeCameo1 = Upgrade_UKStormV1
UpgradeCameo2 = Upgrade_UKStormV2
Draw = W3DOverlordTankDraw ModuleTag_01
ConditionState = NONE
Model = ww3vbhvm
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
ParticleSysBone = EXHAUSTFX01 DozerSmokeLight
End
ConditionState = MOVING
Model = ww3vbhvm
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy
End
ConditionState = REALLYDAMAGED
Model = ww3vbhvm_d
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
ParticleSysBone = EXHAUSTFX01 DozerSmokeHeavy
ParticleSysBone = Smoke01 SmokeFactionMedium
ParticleSysBone = Smoke02 SmokeFactionMedium
ParticleSysBone = Smoke03 SmokeFactionMedium
ParticleSysBone = Smoke04 SmokeFactionMedium
ParticleSysBone = Smoke05 SmokeFactionMedium
End
ConditionState = RUBBLE
Model = ww3vbhvm_e
End
TrackMarks = EXTnkTrack.tga
OkToChangeModelColor = Yes
TreadAnimationRate = 2.0; amount of tread texture to move per second
TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving.
TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting.
End
; ***DESIGN parameters ***
DisplayName = OBJECT:UKStormer
Side = UK
EditorSorting = VEHICLE
TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable)
WeaponSet
Conditions = None
Weapon = PRIMARY StormerGun
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = TankArmor
DamageFX = TankDamageFX
End
BuildCost = 100
BuildTime = 1.0 ;in seconds
VisionRange = 120
ShroudClearingRange = 300
Prerequisites
; Object = UKWarFactory
End
ExperienceValue = 200 200 400 600 ;Experience point value at each level
ExperienceRequired = 0 400 600 1200 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = UKStormerCommandSet
; *** AUDIO Parameters ***
VoiceSelect = CrusaderTankVoiceSelect
VoiceMove = CrusaderTankVoiceMove
VoiceGuard = CrusaderTankVoiceMove
VoiceAttack = CrusaderTankVoiceAttack
VoiceAttackAir = HumveeVoiceAttackTOW
SoundMoveStart = CrusaderTankMoveStart
SoundMoveStartDamaged = CrusaderTankMoveStart
UnitSpecificSounds
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
VoiceCreate = CrusaderTankVoiceCreate
VoiceEnter = CrusaderTankVoiceMove
TurretMoveStart = NoSound
TurretMoveLoop = TurretMoveLoop
SoundEject = PilotSoundEject
VoiceEject = PilotVoiceEject
VoiceCrush = CrusaderTankVoiceCrush
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE
Body = ActiveBody ModuleTag_03
MaxHealth = 400.0
InitialHealth = 400.0
End
Behavior = TransportAIUpdate ModuleTag_04
; There is no turret on the chassis
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL UKStormerLocomotor
Behavior = OverlordContain ModuleTag_05 ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel)
Slots = 1
DamagePercentToUnits = 100%
AllowInsideKindOf = PORTABLE_STRUCTURE
PassengersAllowedToFire = Yes
PassengersInTurret = Yes ; My passengers ride in my turret, that's where the Firepoint bones are
End
Behavior = ObjectCreationUpgrade ModuleTag_07
UpgradeObject = OCL_UKStormV1
TriggeredBy = Upgrade_UKStormV1
ConflictsWith = Upgrade_UKStormV2
End
Behavior = ObjectCreationUpgrade ModuleTag_08
UpgradeObject = OCL_UKStormV2
TriggeredBy = Upgrade_UKStormV2
ConflictsWith = Upgrade_UKStormV1
End
Behavior = ProductionUpdate ModuleTag_10
MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame
End
Behavior = CommandSetUpgrade ModuleTag_11
CommandSet = UKStormerV1CommandSet
TriggeredBy = Upgrade_UKStormV1
ConflictsWith = Upgrade_UKStormV2
End
Behavior = CommandSetUpgrade ModuleTag_12
CommandSet = UKStormerV2CommandSet
TriggeredBy = Upgrade_UKStormV2
ConflictsWith = Upgrade_UKStormV1
End
Behavior = PhysicsBehavior ModuleTag_14
Mass = 40.0
End
; Just explode death
Behavior = SlowDeathBehavior ModuleTag_16
ProbabilityModifier = 25
DestructionDelay = 200
DestructionDelayVariance = 100
OCL = FINAL OCL_ChinaTankOverlordDebris
FX = FINAL FX_OverlordExplosionOneFinal
End
Behavior = CreateCrateDie ModuleTag_17
CrateData = SalvageCrateData
;CrateData = EliteTankCrateData
;CrateData = HeroicTankCrateData
End
Behavior = TransitionDamageFX ModuleTag_18
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_OverlordDamageTransition
End
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
Geometry = BOX
GeometryMajorRadius = 18.0
GeometryMinorRadius = 7.0
GeometryHeight = 11.5
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
;--------------------------------------
;--------------------------------------
Object UKStormerV1
; *** ART Parameters ***
SelectPortrait = UK_STROMER_AA
ButtonImage = UK_STROMER_AA
UpgradeCameo5 = Upgrade_UKStormV1
Draw = W3DDependencyModelDraw ModuleTag_01
OkToChangeModelColor = Yes
AttachToBoneInContainer = FIREPOINT01
DefaultConditionState
Model = ww3vbhvm_aa
Animation = ww3vbhvm_aa.ww3vbhvm_aa
AnimationMode = LOOP
Turret = TURRET
TurretPitch = TURRETEL
WeaponLaunchBone = PRIMARY WEAPONA
End
ConditionState = REALLYDAMAGED
Model = ww3vbhvm_aad
Animation = ww3vbhvm_aad.ww3vbhvm_aad
AnimationMode = LOOP
Turret = TURRET
TurretPitch = TURRETEL
WeaponLaunchBone = PRIMARY WEAPONA
ParticleSysBone = Smoke01 SmokeFactionMedium
ParticleSysBone = Smoke02 SmokeFactionMedium
ParticleSysBone = Smoke03 SmokeFactionMedium
ParticleSysBone = Smoke04 SmokeFactionMedium
ParticleSysBone = Smoke05 SmokeFactionMedium
End
End
; ***DESIGN parameters ***
Side = UK
EditorSorting = SYSTEM
TransportSlotCount = 1
WeaponSet
Conditions = None
Weapon = PRIMARY StormerAAMissileWeapon
PreferredAgainst = PRIMARY BALLISTIC_MISSILE AIRCRAFT
End
ArmorSet
Conditions = None
Armor = InvulnerableAllArmor ; We can't be hurt on the field. We share damage from the Overlord with his damage module
End
VisionRange = 200
; *** AUDIO Parameters ***
UnitSpecificSounds
TurretMoveStart = NoSound
TurretMoveLoop = NoSound ;TurretMoveLoop
VoiceRapidFire = NoSound
End
; *** ENGINEERING Parameters ***
KindOf = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK CLICK_THROUGH IGNORED_IN_GUI
Body = StructureBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
Behavior = AIUpdateInterface ModuleTag_03
Turret
ControlledWeaponSlots = PRIMARY
TurretTurnRate = 60 // turn rate, in degrees per sec
TurretPitchRate = 60
AllowsPitch = Yes
End
AutoAcquireEnemiesWhenIdle = Yes
End
Behavior = DestroyDie ModuleTag_04
;nothing
End
Geometry = BOX
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 9.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
;--------------------------------------
;--------------------------------------
Object UKStormerV2
; *** ART Parameters ***
SelectPortrait = UK_STROMER_TANK
ButtonImage = UK_STROMER_TANK
UpgradeCameo5 = Upgrade_UKStormV2
Draw = W3DDependencyModelDraw ModuleTag_01
OkToChangeModelColor = Yes
AttachToBoneInContainer = FIREPOINT02
DefaultConditionState
Model = ww3vbhvm_tk
Turret = TURRET
WeaponFireFXBone = PRIMARY TurretMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponLaunchBone = PRIMARY TurretMS
WeaponLaunchBone = SECONDARY WEAPONA
End
ConditionState = REALLYDAMAGED
Model = ww3vbhvm_tkd
Turret = TURRET
WeaponFireFXBone = PRIMARY TurretMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponLaunchBone = PRIMARY TurretMS
WeaponLaunchBone = SECONDARY WEAPONA
ParticleSysBone = Smoke01 SmokeFactionMedium
ParticleSysBone = Smoke02 SmokeFactionMedium
ParticleSysBone = Smoke03 SmokeFactionMedium
ParticleSysBone = Smoke04 SmokeFactionMedium
ParticleSysBone = Smoke05 SmokeFactionMedium
End
End
; ***DESIGN parameters ***
Side = UK
EditorSorting = SYSTEM
TransportSlotCount = 1
WeaponSet
Conditions = None
Weapon = PRIMARY StormerTankGun
PreferredAgainst = PRIMARY VEHICLE STRUCTURE INFANTRY
Weapon = SECONDARY StormerToWMissileWeapon
PreferredAgainst = SECONDARY VEHICLE STRUCTURE INFANTRY
End
ArmorSet
Conditions = None
Armor = InvulnerableAllArmor ; We can't be hurt on the field. We share damage from the Overlord with his damage module
End
VisionRange = 200
; *** AUDIO Parameters ***
UnitSpecificSounds
TurretMoveStart = NoSound
TurretMoveLoop = NoSound ;TurretMoveLoop
VoiceRapidFire = NoSound
End
; *** ENGINEERING Parameters ***
KindOf = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK CLICK_THROUGH IGNORED_IN_GUI
Body = StructureBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
Behavior = AIUpdateInterface ModuleTag_03
Turret
ControlledWeaponSlots = PRIMARY SECONDARY
TurretTurnRate = 60 // turn rate, in degrees per sec
TurretPitchRate = 60
AllowsPitch = Yes
End
AutoAcquireEnemiesWhenIdle = Yes
End
Behavior = DestroyDie ModuleTag_04
;nothing
End
Geometry = BOX
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 9.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
Thank you.