View Single Post
Old 12-25-2003, 04:49 PM   #1 (permalink)
Sy
Senior Member
 
Join Date: Apr 2003
Location: UK
Posts: 186
Send a message via MSN to Sy
Default INI OCL Overlord Style Upgrade Help

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.
Sy is offline   Reply With Quote