king
  • king
  • 100% (Exalted)
  • Major Topic Starter
17 years ago
I have a tank called basilisk from the GLA, and I have in my version converted it to the airforce gen. I have some code and I hope someone can help me. I want the basilisk to be built right out of the factory with all the armor addon - Salvage crate and junkarmor upgrade. I want to know how to make the tank originally being built with the armor addon from the start without upgrading it and without using crates, not good for my airforce gen. Please help me.



Thanx

Heres the code:

Object Salv_GLATankT28

  ; *** ART Parameters ***
  SelectPortrait         = SUT28SUPERHEAVY_L
  ButtonImage            = SUT28SUPERHEAVY
  
  UpgradeCameo1 = Upgrade_GLAJunkRepair
  UpgradeCameo2 = Upgrade_GLAJunkArmor
  
  
  Draw = W3DTankDraw ModuleTag_01
    OkToChangeModelColor = Yes
    InitialRecoilSpeed   = 120
    MaxRecoilDistance    = 8
    
    ConditionState        = NONE
      Model               = UVT28
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28_D
    End

    ConditionState        = RUBBLE
      Model               = UVT28_D
    End

    TrackMarks           = EXTnkTrack.tga
    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

  Draw = W3DModelDraw ModuleTag_BARREL01
    OkToChangeModelColor = Yes
    
    ;;Normal
    ConditionState        = NONE
      Model               = UVT28B
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28B_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    
    ;;Salvage 1
    ConditionState        = WEAPONSET_CRATEUPGRADE_ONE
      Model               = UVT28B1
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    ConditionState        = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
      Model               = UVT28B1_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    
    ;;Salvage 2
    ConditionState        = WEAPONSET_CRATEUPGRADE_TWO
      Model               = UVT28B2
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    ConditionState        = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
      Model               = UVT28B2_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
  End
  
  Draw = W3DModelDraw ModuleTag_MG01
    OkToChangeModelColor = Yes
  
    ConditionState        = NONE
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = FIRING_A
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = FIRING_B
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = LOOP
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28G_D
      Animation           = UVT28G_D.UVT28G_D
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = REALLYDAMAGED FIRING_A
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = REALLYDAMAGED FIRING_B
      Model               = UVT28G_D
      Animation           = UVT28G_D.UVT28G_D
      AnimationMode       = LOOP
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
  End
  
  Draw = W3DModelDraw  ModuleTag_JunkArmor01
  
    DefaultConditionState
      Model = None
      HideSubObject = LEVEL01 LEVEL02 LEVEL03
    End
    AliasConditionState   = REALLYDAMAGED
    AliasConditionState   = RUBBLE
    AliasConditionState   = WEAPONSET_CRATEUPGRADE_ONE
    AliasConditionState   = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
    AliasConditionState   = WEAPONSET_CRATEUPGRADE_ONE RUBBLE
    AliasConditionState   = WEAPONSET_CRATEUPGRADE_TWO
    AliasConditionState   = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
    AliasConditionState   = WEAPONSET_CRATEUPGRADE_TWO RUBBLE
    
    
    ConditionState = WEAPONSET_PLAYER_UPGRADE
      Model = UVT28_A
      ShowSubObject = LEVEL01
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
      Model = UVT28_AD
      ShowSubObject = LEVEL01
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE RUBBLE
      Model = UVT28_AD
      ShowSubObject = LEVEL01
    End

; crate upgrade 1
    ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_ONE
      Model = UVT28_A
      ShowSubObject = LEVEL01 LEVEL02
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
      Model = UVT28_AD
      ShowSubObject = LEVEL01 LEVEL02
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_ONE
      Model = UVT28_AD
      ShowSubObject = LEVEL01 LEVEL02
    End

; crate upgrade 2
    ConditionState = WEAPONSET_PLAYER_UPGRADE WEAPONSET_CRATEUPGRADE_TWO
      Model = UVT28_A
      ShowSubObject = LEVEL01 LEVEL02 LEVEL03
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
      Model = UVT28_AD
      ShowSubObject = LEVEL01 LEVEL02 LEVEL03
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE RUBBLE WEAPONSET_CRATEUPGRADE_TWO
      Model = UVT28_AD
      ShowSubObject = LEVEL01 LEVEL02 LEVEL03
    End
    
  End

  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:T28
  Side                = GLASalvageGeneral
  EditorSorting       = VEHICLE
  TransportSlotCount  = 4                 ;how many "slots" we take in a transport (0 == not transportable)
  
  WeaponSet
    Conditions        = None 
    Weapon            = PRIMARY   T28AssaultCannon
    PreferredAgainst  = PRIMARY   VEHICLE
    Weapon            = SECONDARY TechnicalMachineGunWeapon
    PreferredAgainst  = SECONDARY INFANTRY
  End
  WeaponSet
    Conditions        = CRATEUPGRADE_ONE
    Weapon            = PRIMARY   T28AssaultCannonUpgradeOne
    PreferredAgainst  = PRIMARY   VEHICLE
    Weapon            = SECONDARY TechnicalMachineGunWeapon
    PreferredAgainst  = SECONDARY INFANTRY
  End
  WeaponSet
    Conditions        = CRATEUPGRADE_TWO 
    Weapon            = PRIMARY   T28AssaultCannonUpgradeTwo
    PreferredAgainst  = PRIMARY   VEHICLE
    Weapon            = SECONDARY TechnicalMachineGunWeapon
    PreferredAgainst  = SECONDARY INFANTRY
  End

  ArmorSet
    Conditions      = None
    Armor           = TankArmor
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = CRATE_UPGRADE_ONE
    Armor           = TankArmor
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = CRATE_UPGRADE_TWO
    Armor           = TankArmor
    DamageFX        = TankDamageFX
  End
  
  ;;;Junk armor does not just add extra health it maks the armor better with every crate 🙂 (10% increasement every time)
  ArmorSet
    Conditions      = PLAYER_UPGRADE
    Armor           = TankArmor
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = PLAYER_UPGRADE CRATE_UPGRADE_ONE
    Armor           = TankArmor_SalvageOne
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = PLAYER_UPGRADE CRATE_UPGRADE_TWO
    Armor           = TankArmor_SalvageTwo
    DamageFX        = TankDamageFX
  End
  
  BuildCost       = 2000
  BuildTime       = 20.0          ;in seconds    
  VisionRange     = 250
  ShroudClearingRange = 250
  Prerequisites
    Object = Salv_GLAArmsDealer
    Object = Salv_GLAPalace
    Science = SCIENCE_Basilisk
  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           = 3  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  CrushableLevel         = 3  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  CommandSet = GenericGroundAttackCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect           = T28VoiceSelect
  VoiceMove             = T28TankVoiceMove
  VoiceGuard            = T28TankVoiceMove
  VoiceAttack           = T28VoiceAttack
  SoundMoveStart        = T28TankMoveStart
  SoundMoveStartDamaged = T28TankMoveStart

  UnitSpecificSounds
    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    VoiceCreate    = T28TankVoiceCreate
    VoiceCrush     = T28TankVoiceMove
    VoiceEnter     = T28TankVoiceMove
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE SALVAGER WEAPON_SALVAGER HUGE_VEHICLE
  
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 1100.0
    InitialHealth   = 1100.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 = 2200
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50
  End

  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      TurretTurnRate = 0
      TurretPitchRate = 10
      AllowsPitch = Yes
      NaturalTurretPitch = 9
      ControlledWeaponSlots = PRIMARY
    End
    AltTurret
      TurretTurnRate = 100
      ControlledWeaponSlots = SECONDARY
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Locomotor = SET_NORMAL BasiliskLocomotor

  Behavior = PhysicsBehavior ModuleTag_14
    Mass = 50.0
  End

  ; Just explode death
  Behavior = SlowDeathBehavior ModuleTag_16
    ProbabilityModifier = 25
    DestructionDelay = 200
    DestructionDelayVariance = 100
    FX  = INITIAL  FX_GenericTankDeathEffect
    OCL = MIDPOINT OCL_GLABasiliskExplode
    FX  = FINAL    FX_GenericTankDeathExplosion
  End
  
  Behavior = CreateCrateDie ModuleTag_17
    CrateData = SalvageCrateData
  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
  
  Behavior = AutoHealBehavior ModuleTag_062
    HealingAmount = 10
    HealingDelay = 1000 ; msec
    TriggeredBy = Upgrade_GLAJunkRepair
  End

  Behavior        = MaxHealthUpgrade ModuleTag_blabla
    TriggeredBy   = Upgrade_GLAJunkArmor
    AddMaxHealth  = 200.0
    ChangeType    = ADD_CURRENT_HEALTH_TOO
  End
  
  Behavior = ArmorUpgrade ModuleTag_Armor01
    TriggeredBy = Upgrade_GLAJunkArmor
  End
  
  Behavior = WeaponSetUpgrade ModuleTag_ZOMGLOL07
    TriggeredBy = Upgrade_GLAJunkArmor
  End
  
  Geometry = BOX
  GeometryMajorRadius = 26.0
  GeometryMinorRadius = 15.0
  GeometryHeight = 15.0     
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME     
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length

End







Thanx for your reply didnt work. Are there anyone that knows how to make it work. I want the tank to be built with all the armor added without the need of crates & upgrades. When I played it with the GLA, it got the armor when going into crates. and added some nice effects around the barrel and side of the tank, can it be done, to built it without the use of crates for armor addons.

Thanx
Sponsor
Drummin
17 years ago
I've never tried any moding so I may not be much help.. What if you set the conditions for ArmorSet to "None" instead of PLAYER_UPGRADE"?

;;;Junk armor does not just add extra health it maks the armor better with every crate 🙂 (10% increasement every time)
ArmorSet
Conditions = None
Armor = TankArmor
DamageFX = TankDamageFX
End
Annihilationzh
17 years ago
Object Salv_GLATankT28

  ; *** ART Parameters ***
  SelectPortrait         = SUT28SUPERHEAVY_L
  ButtonImage            = SUT28SUPERHEAVY
 
  Draw = W3DTankDraw ModuleTag_01
    OkToChangeModelColor = Yes
    InitialRecoilSpeed   = 120
    MaxRecoilDistance    = 8
   
    ConditionState        = NONE
      Model               = UVT28
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28_D
    End

    ConditionState        = RUBBLE
      Model               = UVT28_D
    End

    TrackMarks           = EXTnkTrack.tga
    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

  Draw = W3DModelDraw ModuleTag_BARREL01
    OkToChangeModelColor = Yes
   
    ;;Normal
    ConditionState        = NONE
      Model               = UVT28B2
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28B2_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
  End
 
  Draw = W3DModelDraw ModuleTag_MG01
    OkToChangeModelColor = Yes
 
    ConditionState        = NONE
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = FIRING_A
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = FIRING_B
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = LOOP
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28G_D
      Animation           = UVT28G_D.UVT28G_D
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = REALLYDAMAGED FIRING_A
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
    ConditionState        = REALLYDAMAGED FIRING_B
      Model               = UVT28G_D
      Animation           = UVT28G_D.UVT28G_D
      AnimationMode       = LOOP
      AltTurret           = TURRET
      WeaponFireFXBone    = SECONDARY MGMUZZLE
      WeaponMuzzleFlash   = SECONDARY MGMUZZLEFX
    End
  End
 
  Draw = W3DModelDraw  ModuleTag_JunkArmor01
 
    DefaultConditionState
      Model = UVT28_A
    End
 
    ConditionState = REALLYDAMAGED
      Model = UVT28_AD
    End

    ConditionState = RUBBLE
      Model = UVT28_AD
    End 
  End

  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:T28
  Side                = GLASalvageGeneral
  EditorSorting       = VEHICLE
  TransportSlotCount  = 4                 ;how many "slots" we take in a transport (0 == not transportable)
 
  WeaponSet
    Conditions        = None
    Weapon            = PRIMARY   T28AssaultCannonUpgradeTwo
    PreferredAgainst  = PRIMARY   VEHICLE
    Weapon            = SECONDARY TechnicalMachineGunWeapon
    PreferredAgainst  = SECONDARY INFANTRY
  End

  ArmorSet
    Conditions      = None
    Armor           = TankArmor_SalvageTwo
    DamageFX        = TankDamageFX
  End
 
  BuildCost       = 2000
  BuildTime       = 20.0          ;in seconds   
  VisionRange     = 250
  ShroudClearingRange = 250
  Prerequisites
  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           = 3  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  CrushableLevel         = 3  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  CommandSet = GenericGroundAttackCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect           = T28VoiceSelect
  VoiceMove             = T28TankVoiceMove
  VoiceGuard            = T28TankVoiceMove
  VoiceAttack           = T28VoiceAttack
  SoundMoveStart        = T28TankMoveStart
  SoundMoveStartDamaged = T28TankMoveStart

  UnitSpecificSounds
    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    VoiceCreate    = T28TankVoiceCreate
    VoiceCrush     = T28TankVoiceMove
    VoiceEnter     = T28TankVoiceMove
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE SALVAGER HUGE_VEHICLE
 
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 1300.0
    InitialHealth   = 1300.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 = 2200
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50
  End

  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      TurretTurnRate = 0
      TurretPitchRate = 10
      AllowsPitch = Yes
      NaturalTurretPitch = 9
      ControlledWeaponSlots = PRIMARY
    End
    AltTurret
      TurretTurnRate = 100
      ControlledWeaponSlots = SECONDARY
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Locomotor = SET_NORMAL BasiliskLocomotor

  Behavior = PhysicsBehavior ModuleTag_14
    Mass = 50.0
  End

  ; Just explode death
  Behavior = SlowDeathBehavior ModuleTag_16
    ProbabilityModifier = 25
    DestructionDelay = 200
    DestructionDelayVariance = 100
    FX  = INITIAL  FX_GenericTankDeathEffect
    OCL = MIDPOINT OCL_GLABasiliskExplode
    FX  = FINAL    FX_GenericTankDeathExplosion
  End
 
  Behavior = CreateCrateDie ModuleTag_17
    CrateData = SalvageCrateData
  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
 
  Behavior = AutoHealBehavior ModuleTag_062
    HealingAmount = 10
    HealingDelay = 1000 ; msec
    StartsActive = Yes
  End

  Geometry = BOX
  GeometryMajorRadius = 26.0
  GeometryMinorRadius = 15.0
  GeometryHeight = 15.0     
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME     
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length

End

After a moderator fixed the first post, I decided to fix mine. I have no idea if this code will work (i make a lot of mistakes), but it should make the tank start fully upgraded with full scrap.
If you need help, post in the forum. You'll get help a lot faster than if you send me a PM.

I reject all buddy requests. I don't think 'buddy' needs to be made official. It's not like you're marrying me.
king
  • king
  • 100% (Exalted)
  • Major Topic Starter
17 years ago
Cool, worked, but I have another issue, a GLA megatank, same problem, but much more difficult to sort out, Please help me to get the tank built with max armor and weaponset from the beginning without the need for upgrades and Crates.

Thanx
Heres the code:

;------------------------------------------------------------------------------
Object Aslt_GLATankDestroyer

  ; *** ART Parameters ***
  SelectPortrait    = SUDst_L
  ButtonImage  = SUDst

  UpgradeCameo1 = Upgrade_GLAToxinShells
  UpgradeCameo2 = Upgrade_GLAJunkRepair
  UpgradeCameo3 = Upgrade_APBullets
  UpgradeCameo4 = Upgrade_GLAAnthraxBeta
  
  Draw = W3DOverlordTankDraw ModuleTag_01
    ParticlesAttachedToAnimatedBones = Yes
    ProjectileBoneFeedbackEnabledSlots = SECONDARY

    DefaultConditionState
      Model   = UVDestroer
      Turret  = MortTurret
      TurretPitch    = MORTTURRETEL
      WeaponFireFXBone  = PRIMARY MORTMUZZLE
      WeaponRecoilBone  = PRIMARY MORTBARREL
      WeaponLaunchBone  = PRIMARY MORTMUZZLE
      WeaponFireFXBone  = SECONDARY WEAPONA
      WeaponLaunchBone  = SECONDARY WEAPONA
      WeaponFireFXBone  = TERTIARY FIRESTINGER
      WeaponLaunchBone  = TERTIARY FIRESTINGER
      HideSubObject = ARMOR01 ARMOR02 ARMOR03
    End

    ConditionState = REALLYDAMAGED
      Model = UVDestroer_D
      HideSubObject = ARMOR01 ARMOR02 ARMOR03
    End
    AliasConditionState = RUBBLE

    ConditionState = ARMORSET_CRATEUPGRADE_ONE
      Model   = UVDestroer
      ShowSubObject = ARMOR01
      HideSubObject = ARMOR02 ARMOR03
    End

    ConditionState = ARMORSET_CRATEUPGRADE_TWO
      Model   = UVDestroer
      ShowSubObject = ARMOR02 ARMOR03
      HideSubObject = ARMOR01
    End

    ConditionState = ARMORSET_CRATEUPGRADE_ONE REALLYDAMAGED
      Model = UVDestroer_D
      ShowSubObject = ARMOR01
      HideSubObject = ARMOR02 ARMOR03
    End
    AliasConditionState = ARMORSET_CRATEUPGRADE_ONE RUBBLE

    ConditionState = ARMORSET_CRATEUPGRADE_TWO REALLYDAMAGED
      Model = UVDestroer_D
      ShowSubObject = ARMOR02 ARMOR03
      HideSubObject = ARMOR01
    End
    AliasConditionState = ARMORSET_CRATEUPGRADE_TWO RUBBLE

    ConditionState = AFLAME
      Model   = UVDestroer
      HideSubObject = ARMOR01 ARMOR02 ARMOR03
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End

    ConditionState = REALLYDAMAGED AFLAME
      Model = UVDestroer_D
      HideSubObject = ARMOR01 ARMOR02 ARMOR03
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End
    AliasConditionState = RUBBLE AFLAME

    ConditionState = ARMORSET_CRATEUPGRADE_ONE AFLAME
      Model   = UVDestroer
      ShowSubObject = ARMOR01
      HideSubObject = ARMOR02 ARMOR03
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End

    ConditionState = ARMORSET_CRATEUPGRADE_TWO AFLAME
      Model   = UVDestroer
      ShowSubObject = ARMOR02 ARMOR03
      HideSubObject = ARMOR01
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End

    ConditionState = ARMORSET_CRATEUPGRADE_ONE REALLYDAMAGED AFLAME
      Model = UVDestroer_D
      ShowSubObject = ARMOR01
      HideSubObject = ARMOR02 ARMOR03
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End
    AliasConditionState = ARMORSET_CRATEUPGRADE_ONE RUBBLE AFLAME

    ConditionState = ARMORSET_CRATEUPGRADE_TWO REALLYDAMAGED AFLAME
      Model = UVDestroer_D
      ShowSubObject = ARMOR02 ARMOR03
      HideSubObject = ARMOR01
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End
    AliasConditionState = ARMORSET_CRATEUPGRADE_TWO RUBBLE AFLAME

    TrackMarks = EXTnkTrack.tga
    OkToChangeModelColor = Yes
    TreadAnimationRate = 2.75
    TreadDriveSpeedFraction = 0.3
    TreadPivotSpeedFraction = 0.6
  End

  ; ***DESIGN parameters ***
  DisplayName    = OBJECT:GLADestroyer
  Side = GLAAssaultGeneral
  EditorSorting  = VEHICLE
  TransportSlotCount  = 0
  BuildCost   = 6000
  BuildTime   = 60.0
  VisionRange = 150
  ShroudClearingRange = 300

  WeaponSet
    Conditions = None 
    Weapon     = PRIMARY DestroyerMortarGun
    Weapon     = SECONDARY GLADestroyerMissileWeapon
    Weapon     = TERTIARY AvengerRocketWeapon
  End

  ArmorSet
    Conditions = None
    Armor = SuperTankArmor
    DamageFX   = TankDamageFX
  End

  ArmorSet
    Conditions = CRATE_UPGRADE_ONE
    Armor = SuperTankArmorPlusOne
    DamageFX   = TruckDamageFX
  End

  ArmorSet
    Conditions = CRATE_UPGRADE_TWO
    Armor = SuperTankArmorPlusTwo
    DamageFX   = TruckDamageFX
  End

  Prerequisites
    Object = Aslt_GLAArmsDealer
    Object = Aslt_GLAPalace
    Science = SCIENCE_ASLT
    Science = SCIENCE_Rank5
  End

  MaxSimultaneousOfType = DeterminedBySuperweaponRestriction ; Normally unlimited, but can be selected by players in multiplayer games

  ExperienceValue    = 237 316 421 562
  ExperienceRequired = 0 712 948 1262
  IsTrainable = Yes
  CrusherLevel = 3  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  CrushableLevel    = 3  ;What am I?:   0 = for infantry, 1 = for trees, 2 = general vehicles
  CommandSet = GenericCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect = CruiserVoiceSelect
  SoundMoveStart = HeavyTankMoveStart
  SoundMoveStartDamaged = HeavyTankMoveStart
  VoiceMove = CruiserVoiceMove
  VoiceGuard = CruiserVoiceMove
  VoiceAttack = CruiserVoiceAttack
  UnitSpecificSounds
    VoiceCreate     = CruiserVoiceCreate
    TurretMoveStart = NoSound
    TurretMoveLoop  = OverlordTankTurretMoveLoop
    VoiceEnter      = CruiserVoiceMove
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS SCORE HUGE_VEHICLE SALVAGER ARMOR_SALVAGER DRONE
  
  Body = ActiveBody ModuleTag_02
    MaxHealth     = 2400.0
    InitialHealth = 2400.0
    SubdualDamageCap = 5000
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50
  End

  Behavior = TransportAIUpdate ModuleTag_03
    Turret
      TurretTurnRate = 120
      TurretPitchRate = 120
      FirePitch = 40
      AllowsPitch = Yes
      ControlledWeaponSlots = PRIMARY TERTIARY
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Locomotor = SET_NORMAL CruiserTankLocomotor

  Behavior = OverlordContain ModuleTag_07 ; 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 = No
    ExperienceSinkForRider = Yes
    PayloadTemplateName     = Aslt_GLADestroyerTurret
  End

  Behavior = PhysicsBehavior ModuleTag_14
    Mass = 100.0
  End

  Behavior = SlowDeathBehavior ModuleTag_16
    DeathTypes = ALL -POISONED -POISONED_BETA -POISONED_GAMMA -EXTRA_6
    DestructionDelay = 200
    DestructionDelayVariance = 100
    OCL = FINAL    OCL_GLATankDestroyerDebris
    FX  = FINAL    FX_OverlordExplosionOneFinal
  End

  Behavior = SlowDeathBehavior ModuleTag_Poisoned
    DeathTypes = NONE +POISONED +POISONED_BETA +POISONED_GAMMA +EXTRA_6
    DestructionDelay = 10
    OCL = FINAL OCL_GLATankDestroyerDeathEffectSimple
  End

  Behavior = CreateCrateDie ModuleTag_17
    CrateData = SalvageCrateData
  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

  Behavior = AutoHealBehavior ModuleTag_05
    HealingAmount = 4
    HealingDelay = 1000
    TriggeredBy = Upgrade_GLAJunkRepair
  End

  Geometry = BOX
  GeometryMajorRadius = 26.0
  GeometryMinorRadius = 13.0
  GeometryHeight = 15.0
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME     
  ShadowSizeX = 45
End

Object Aslt_GLADestroyerTurret

  ; *** ART Parameters ***
  Draw     = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor  = Yes
    AttachToBoneInContainer = FIREPOINT01 ;;STATION01

    DefaultConditionState
      Model     = UVDestroer_A
      Turret    = TURRET01
      TurretPitch = TurretEL
      WeaponLaunchBone  = PRIMARY MUZZLE
      WeaponFireFXBone  = PRIMARY MUZZLE
      WeaponRecoilBone  = PRIMARY BARREL
      WeaponMuzzleFlash = PRIMARY MuzzleFX
      WeaponLaunchBone  = SECONDARY WEAPONB01
      WeaponFireFXBone  = SECONDARY WEAPONB01
      WeaponFireFXBone  = TERTIARY WEAPONA01
      WeaponLaunchBone  = TERTIARY WEAPONA01
      WeaponMuzzleFlash = TERTIARY MUZZLEGT01
    End

    ConditionState   = REALLYDAMAGED 
      Model     = UVDestroer_AD
      ParticleSysBone     = Smoke01 SmokeFactionMedium
    End

    ConditionState   = FIRING_C BETWEEN_FIRING_SHOTS_C
      Model     = UVDestroer_A
      Animation = UVDestroer_A.UVDestroer_A
      AnimationMode  = LOOP
      AnimationSpeedFactorRange = 0.2 0.2
    End

    ConditionState   = FIRING_C BETWEEN_FIRING_SHOTS_C REALLYDAMAGED 
      Model     = UVDestroer_AD
      Animation = UVDestroer_AD.UVDestroer_AD
      AnimationMode  = LOOP
      AnimationSpeedFactorRange = 0.2 0.2
    End
  End

  ; ***DESIGN parameters ***
  Side   = GLAAssaultGeneral
  EditorSorting    = SYSTEM
  TransportSlotCount = 1

  WeaponSet
    Conditions  = None 
    Weapon    = PRIMARY   DestroyerTankGun 
    Weapon    = SECONDARY GLADestroyerToxinGun
    Weapon    = TERTIARY  GLADestroyerGattlingGun
    PreferredAgainst = PRIMARY   VEHICLE
    PreferredAgainst = SECONDARY INFANTRY
    PreferredAgainst = TERTIARY  AIRCRAFT
  End

  WeaponSet
    Conditions  = PLAYER_UPGRADE
    Weapon    = PRIMARY   DestroyerTankGun 
    Weapon    = SECONDARY GLADestroyerToxinGunUpgraded
    Weapon    = TERTIARY  GLADestroyerGattlingGun
    PreferredAgainst = PRIMARY   VEHICLE
    PreferredAgainst = SECONDARY INFANTRY
    PreferredAgainst = TERTIARY  AIRCRAFT
  End

  Behavior = WeaponSetUpgrade ModuleTag_Weapon01
    TriggeredBy = Upgrade_GLAAnthraxBeta
  End

  Behavior = WeaponBonusUpgrade ModuleTag_Weapon02
    TriggeredBy = Upgrade_APBullets
  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
    VoiceRapidFire  = NoSound
  End

  ; *** ENGINEERING Parameters ***
  KindOf = PRELOAD CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS PORTABLE_STRUCTURE CLICK_THROUGH IGNORED_IN_GUI SALVAGER

  Body  = ActiveBody ModuleTag_02
    MaxHealth  = 100.0
    InitialHealth   = 100.0
    SubdualDamageCap = 200
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 100
  End

  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY
      TurretTurnRate  = 120
      TurretPitchRate = 120
      AllowsPitch    = Yes
    End
    AutoAcquireEnemiesWhenIdle = Yes 
  End

  Behavior   = DestroyDie ModuleTag_04
  End

  Geometry  = BOX
  GeometryMajorRadius = 8.0
  GeometryMinorRadius = 8.0
  GeometryHeight = 9.0
  GeometryIsSmall     = No 
  Shadow    = SHADOW_VOLUME
  ShadowSizeX = 45
End
Annihilationzh
17 years ago
You're fortunate that I have contra. You didn't give me enough code, so I had to dig it out of my version (I hope you're using contra 006).

Cool, worked, but I have another issue, a GLA megatank, same problem, but much more difficult to sort out, Please help me to get the tank built with max armor and weaponset from the beginning without the need for upgrades and Crates.


Contra's code is easy to work with. The guy who wrote it clearly knew what he was doing.

;------------------------------------------------------------------------------
Object Aslt_GLATankDestroyer

  ; *** ART Parameters ***
  SelectPortrait    = SUDst_L
  ButtonImage  = SUDst

  Draw = W3DOverlordTankDraw ModuleTag_01
    ParticlesAttachedToAnimatedBones = Yes
    ProjectileBoneFeedbackEnabledSlots = SECONDARY

    DefaultConditionState
      Model   = UVDestroer
      Turret  = MortTurret
      TurretPitch    = MORTTURRETEL
      WeaponFireFXBone  = PRIMARY MORTMUZZLE
      WeaponRecoilBone  = PRIMARY MORTBARREL
      WeaponLaunchBone  = PRIMARY MORTMUZZLE
      WeaponFireFXBone  = SECONDARY WEAPONA
      WeaponLaunchBone  = SECONDARY WEAPONA
      WeaponFireFXBone  = TERTIARY FIRESTINGER
      WeaponLaunchBone  = TERTIARY FIRESTINGER
    End

    ConditionState = REALLYDAMAGED
      Model = UVDestroer_D
    End
    AliasConditionState = RUBBLE

    ConditionState = AFLAME
      Model   = UVDestroer
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End

    ConditionState = REALLYDAMAGED AFLAME
      Model = UVDestroer_D
      ParticleSysBone = SMOKE03 TankFireContinious
      ParticleSysBone = SMOKE04 TankFireContinious
    End
    AliasConditionState = RUBBLE AFLAME

    TrackMarks = EXTnkTrack.tga
    OkToChangeModelColor = Yes
    TreadAnimationRate = 2.75
    TreadDriveSpeedFraction = 0.3
    TreadPivotSpeedFraction = 0.6
  End

  ; ***DESIGN parameters ***
  DisplayName    = OBJECT:GLADestroyer
  Side = GLAAssaultGeneral
  EditorSorting  = VEHICLE
  TransportSlotCount  = 0
  BuildCost   = 6000
  BuildTime   = 60.0
  VisionRange = 150
  ShroudClearingRange = 300

  WeaponSet
    Conditions = None
    Weapon     = PRIMARY DestroyerMortarGun
    Weapon     = SECONDARY GLADestroyerMissileWeapon
    Weapon     = TERTIARY AvengerRocketWeapon
  End

  ArmorSet
    Conditions = None
    Armor = SuperTankArmorPlusTwo
    DamageFX   = TankDamageFX
  End

  Prerequisites
  End

  ExperienceValue    = 237 316 421 562
  ExperienceRequired = 0 712 948 1262
  IsTrainable = Yes
  CrusherLevel = 3  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  CrushableLevel    = 3  ;What am I?:   0 = for infantry, 1 = for trees, 2 = general vehicles
  CommandSet = GenericCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect = CruiserVoiceSelect
  SoundMoveStart = HeavyTankMoveStart
  SoundMoveStartDamaged = HeavyTankMoveStart
  VoiceMove = CruiserVoiceMove
  VoiceGuard = CruiserVoiceMove
  VoiceAttack = CruiserVoiceAttack
  UnitSpecificSounds
    VoiceCreate     = CruiserVoiceCreate
    TurretMoveStart = NoSound
    TurretMoveLoop  = OverlordTankTurretMoveLoop
    VoiceEnter      = CruiserVoiceMove
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS SCORE HUGE_VEHICLE SALVAGER DRONE
 
  Body = ActiveBody ModuleTag_02
    MaxHealth     = 2400.0
    InitialHealth = 2400.0
    SubdualDamageCap = 5000
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50
  End

  Behavior = TransportAIUpdate ModuleTag_03
    Turret
      TurretTurnRate = 120
      TurretPitchRate = 120
      FirePitch = 40
      AllowsPitch = Yes
      ControlledWeaponSlots = PRIMARY TERTIARY
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Locomotor = SET_NORMAL CruiserTankLocomotor

  Behavior = OverlordContain ModuleTag_07 ; 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 = No
    ExperienceSinkForRider = Yes
    PayloadTemplateName     = Aslt_GLADestroyerTurret
  End

  Behavior = PhysicsBehavior ModuleTag_14
    Mass = 100.0
  End

  Behavior = SlowDeathBehavior ModuleTag_16
    DeathTypes = ALL -POISONED -POISONED_BETA -POISONED_GAMMA -EXTRA_6
    DestructionDelay = 200
    DestructionDelayVariance = 100
    OCL = FINAL    OCL_GLATankDestroyerDebris
    FX  = FINAL    FX_OverlordExplosionOneFinal
  End

  Behavior = SlowDeathBehavior ModuleTag_Poisoned
    DeathTypes = NONE +POISONED +POISONED_BETA +POISONED_GAMMA +EXTRA_6
    DestructionDelay = 10
    OCL = FINAL OCL_GLATankDestroyerDeathEffectSimple
  End

  Behavior = CreateCrateDie ModuleTag_17
    CrateData = SalvageCrateData
  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

  Behavior = AutoHealBehavior ModuleTag_05
    HealingAmount = 4
    HealingDelay = 1000
    StartsActive = Yes
  End

  Geometry = BOX
  GeometryMajorRadius = 26.0
  GeometryMinorRadius = 13.0
  GeometryHeight = 15.0
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME     
  ShadowSizeX = 45
End

Object Aslt_GLADestroyerTurret

  ; *** ART Parameters ***
  Draw     = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor  = Yes
    AttachToBoneInContainer = FIREPOINT01 ;;STATION01

    DefaultConditionState
      Model     = UVDestroer_A
      Turret    = TURRET01
      TurretPitch = TurretEL
      WeaponLaunchBone  = PRIMARY MUZZLE
      WeaponFireFXBone  = PRIMARY MUZZLE
      WeaponRecoilBone  = PRIMARY BARREL
      WeaponMuzzleFlash = PRIMARY MuzzleFX
      WeaponLaunchBone  = SECONDARY WEAPONB01
      WeaponFireFXBone  = SECONDARY WEAPONB01
      WeaponFireFXBone  = TERTIARY WEAPONA01
      WeaponLaunchBone  = TERTIARY WEAPONA01
      WeaponMuzzleFlash = TERTIARY MUZZLEGT01
    End

    ConditionState   = REALLYDAMAGED
      Model     = UVDestroer_AD
      ParticleSysBone     = Smoke01 SmokeFactionMedium
    End

    ConditionState   = FIRING_C BETWEEN_FIRING_SHOTS_C
      Model     = UVDestroer_A
      Animation = UVDestroer_A.UVDestroer_A
      AnimationMode  = LOOP
      AnimationSpeedFactorRange = 0.2 0.2
    End

    ConditionState   = FIRING_C BETWEEN_FIRING_SHOTS_C REALLYDAMAGED
      Model     = UVDestroer_AD
      Animation = UVDestroer_AD.UVDestroer_AD
      AnimationMode  = LOOP
      AnimationSpeedFactorRange = 0.2 0.2
    End
  End

  ; ***DESIGN parameters ***
  Side   = GLAAssaultGeneral
  EditorSorting    = SYSTEM
  TransportSlotCount = 1

  WeaponSet
    Conditions  = None
    Weapon    = PRIMARY   DestroyerTankGun
    Weapon    = SECONDARY GLADestroyerToxinGunUpgraded
    Weapon    = TERTIARY  GLADestroyerGattlingGun
    PreferredAgainst = PRIMARY   VEHICLE
    PreferredAgainst = SECONDARY INFANTRY
    PreferredAgainst = TERTIARY  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
    VoiceRapidFire  = NoSound
  End

  ; *** ENGINEERING Parameters ***
  KindOf = PRELOAD CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS PORTABLE_STRUCTURE CLICK_THROUGH IGNORED_IN_GUI SALVAGER

  Body  = ActiveBody ModuleTag_02
    MaxHealth  = 100.0
    InitialHealth   = 100.0
    SubdualDamageCap = 200
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 100
  End

  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY
      TurretTurnRate  = 120
      TurretPitchRate = 120
      AllowsPitch    = Yes
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Behavior   = DestroyDie ModuleTag_04
  End

  Geometry  = BOX
  GeometryMajorRadius = 8.0
  GeometryMinorRadius = 8.0
  GeometryHeight = 9.0
  GeometryIsSmall     = No
  Shadow    = SHADOW_VOLUME
  ShadowSizeX = 45
End

You will also need this in weapon.ini (AP Bullets free):
;------------------------------------------------------------------------------
Weapon GLADestroyerGattlingGun
  PrimaryDamage = 11.25
  PrimaryDamageRadius = 1.0
  AttackRange  = 300.0
  DamageType= SMALL_ARMS
  DeathType = NORMAL
  WeaponSpeed = 800
  ProjectileObject= GenericBulletGAMediumWhite
  ProjectileDetonationFX = FX_BulletHitWhite
  FireFX = WeaponFX_GattlingCannonMachineGunFire
  FireSound = GattlingCannonWeapon
  RadiusDamageAffects= ALLIES ENEMIES NEUTRALS
  DelayBetweenShots = 50
  AntiAirborneVehicle = Yes
  AntiAirborneInfantry  = Yes
  AntiSmallMissile = No
  AntiBallisticMissile = Yes
  AntiGround = No
End

And replace the projectile (toxin shells with anthrax beta free):

;------------------------------------------------------------------------------
Object GLATankShellBig

  ; *** ART Parameters ***
  Draw = W3DModelDraw ModuleTag_01
    ConditionState = NONE
      Model = EXBurst
      ParticleSysBone = NONE BigBulletTrail
    End
  End
  Scale = 1.2

  ; ***DESIGN parameters ***
  DisplayName       = OBJECT:TankShell
  EditorSorting     = SYSTEM
  ArmorSet
    Armor = ProjectileArmor
  End
  VisionRange = 0.0

  ; *** ENGINEERING Parameters ***
  KindOf = PROJECTILE
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

  Behavior = DestroyDie ModuleTag_03
  End

  Behavior = FireWeaponWhenDeadBehavior ModuleTag_06
    DeathWeapon   = ToxinShellWeaponBeta
    StartsActive  = Yes                      ; turned on by upgrade
    ConflictsWith = Chem_Upgrade_GLAAnthraxGamma
  End
  Behavior = FireWeaponWhenDeadBehavior ModuleTag07
    DeathWeapon   = ToxinShellWeaponGamma
    StartsActive  = No
    TriggeredBy   = Chem_Upgrade_GLAAnthraxGamma Upgrade_GLAToxinShells
    RequiresAllTriggers = Yes
  End
  
  Behavior = DumbProjectileBehavior ModuleTag_10
    DetonateCallsKill = Yes
    FirstHeight = 0
    SecondHeight = 0
    FirstPercentIndent = 33%
    SecondPercentIndent = 66%
    FlightPathAdjustDistPerSecond   = 9999
  End

  Behavior = PhysicsBehavior ModuleTag_11
    Mass = 0.01 ; can't be zero, but we want it tiny so that it travels nearly straight
  End

  Geometry = Sphere
  GeometryIsSmall = Yes
  GeometryMajorRadius = 1.0
End

Again note that I often make mistakes, so this code might not work.
If you need help, post in the forum. You'll get help a lot faster than if you send me a PM.

I reject all buddy requests. I don't think 'buddy' needs to be made official. It's not like you're marrying me.