JoshZemlinsky
11 years ago
As the name suggest, the problem is somewhat strange, basically, i've been adding a few new buildings and it has all been going well.

Until i added this newest one which is basically a variant of the stinger site, but with a machine gun instead.

When the building is finished, the game crashes instantly i have been trying to test and see what causes the crash, but no luck.

I checked the crash file aswell, but it just comes up with this:

Release Crash at Mon May 12 20:58:55 2014
; Reason Uncaught Exception in GameEngine::update

Last error:


Current stack:

Previous experiences has proven that this is mostly caused by incorrectly named CommandSets, but that is not the cause either.
Also the error seems to be unrelated to the machine gun guy, as even without him it still crashed.

Here's the entire code for the Machine Gun site itself:



;------------------------------------------------------------------------------
Object Boss_GLAMachineGunSite

  ; *** ART Parameters ***
  SelectPortrait         = SUMachineGunnerSite_L
  ButtonImage            = SUMachineGunnerSite

  UpgradeCameo1 = Upgrade_GLAFortifiedStructure
  UpgradeCameo3 = Upgrade_GLAAPBullets

  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes
    IgnoreConditionStates = NIGHT
    
    ConditionState = NONE
      Model = UBMGNst
    End
    
    ConditionState = DAMAGED
      Model = UBMGNst_D
    End
    
    ConditionState = REALLYDAMAGED RUBBLE
      Model = UBMGNst_E
    End


    ConditionState = SNOW
      Model = UBMGNst_S
    End
    
    ConditionState = DAMAGED SNOW
      Model = UBMGNst_SD
    End
    
    ConditionState = REALLYDAMAGED SNOW RUBBLE
      Model = UBMGNst_SE
    End
         
    
        ;**************************************************************************************************************************
    ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states
    ;for this draw module
    ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
      Model              = UBMGNst
      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
    End
    ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
      Model              = UBMGNst_D
      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
    End
    ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
      Model              = UBMGNst_E
      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
    End
    ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
      Model              = UBMGNst_S
      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
    End
    ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
      Model              = UBMGNst_SD
      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
    End
    ConditionState       = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
      Model              = UBMGNst_SE
      Flags              = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
    End


    ConditionState       = AWAITING_CONSTRUCTION 
      Model              = NONE
    End
    AliasConditionState  = AWAITING_CONSTRUCTION DAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION REALLYDAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION SNOW
    AliasConditionState  = AWAITING_CONSTRUCTION SNOW DAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
    AliasConditionState  = SOLD 
    AliasConditionState  = SOLD DAMAGED
    AliasConditionState  = SOLD REALLYDAMAGED
    AliasConditionState  = SOLD SNOW
    AliasConditionState  = SOLD SNOW DAMAGED
    AliasConditionState  = SOLD SNOW REALLYDAMAGED
    ;**************************************************************************************************************************

  
  End
  ; ------------ construction-zone fence -----------------
  Draw = W3DModelDraw ModuleTag_02
  AnimationsRequirePower = No
    DefaultConditionState
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = NIGHT
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = SNOW
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = SNOW NIGHT
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
      Model           = UBStingerS_A4
      Animation       = UBStingerS_A4.UBStingerS_A4
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_DAY
    End
    ConditionState    = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
      Model           = UBStingerS_A4N
      Animation       = UBStingerS_A4N.UBStingerS_A4N
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_NIGHT
    End
    ConditionState    = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
      Model           = UBStingerS_A4S
      Animation       = UBStingerS_A4S.UBStingerS_A4S
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_SNOW
    End
    ConditionState    = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
      Model           = UBStingerS_A4SN
      Animation       = UBStingerS_A4SN.UBStingerS_A4SN
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_SNOWNIGHT
    End
    TransitionState   = DOWN_DEFAULT UP_DAY
      Model           = UBStingerS_A4
      Animation       = UBStingerS_A4.UBStingerS_A4
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = DOWN_DEFAULT UP_NIGHT
      Model           = UBStingerS_A4N
      Animation       = UBStingerS_A4N.UBStingerS_A4N
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = DOWN_DEFAULT UP_SNOW
      Model           = UBStingerS_A4S
      Animation       = UBStingerS_A4S.UBStingerS_A4S
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
      Model           = UBStingerS_A4SN
      Animation       = UBStingerS_A4SN.UBStingerS_A4SN
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = UP_DAY DOWN_DEFAULT
      Model           = UBStingerS_A4
      Animation       = UBStingerS_A4.UBStingerS_A4
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
    TransitionState   = UP_NIGHT DOWN_DEFAULT
      Model           = UBStingerS_A4N
      Animation       = UBStingerS_A4N.UBStingerS_A4N
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
    TransitionState   = UP_SNOW DOWN_DEFAULT
      Model           = UBStingerS_A4S
      Animation       = UBStingerS_A4S.UBStingerS_A4S
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
    TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
      Model           = UBStingerS_A4SN
      Animation       = UBStingerS_A4SN.UBStingerS_A4SN
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
  End

  ; ------------ under-construction scaffolding -----------------
  Draw = W3DModelDraw ModuleTag_03
  AnimationsRequirePower = No
    MinLODRequired = MEDIUM
    DefaultConditionState
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = NIGHT
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = SNOW
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = SNOW NIGHT
      Model           = None
      TransitionKey   = DOWN_DEFAULT
    End
    ConditionState    = PARTIALLY_CONSTRUCTED
      Model           = UBStingerS_A6
      Animation       = UBStingerS_A6.UBStingerS_A6
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_DAY
      ParticleSysBone = Smoke01 BuildUpSmoke
      ParticleSysBone = Smoke02 BuildUpSmoke
      ParticleSysBone = Smoke03 BuildUpSmoke
    End
    ConditionState    = NIGHT PARTIALLY_CONSTRUCTED
      Model           = UBStingerS_A6N
      Animation       = UBStingerS_A6N.UBStingerS_A6N
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_NIGHT
      ParticleSysBone = Smoke01 BuildUpSmoke
      ParticleSysBone = Smoke02 BuildUpSmoke
      ParticleSysBone = Smoke03 BuildUpSmoke
    End
    ConditionState    = SNOW PARTIALLY_CONSTRUCTED
      Model           = UBStingerS_A6S
      Animation       = UBStingerS_A6S.UBStingerS_A6S
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_SNOW
      ParticleSysBone = Smoke01 BuildUpSnowSmoke
      ParticleSysBone = Smoke02 BuildUpSnowSmoke
      ParticleSysBone = Smoke03 BuildUpSnowSmoke
    End
    ConditionState    = SNOW NIGHT PARTIALLY_CONSTRUCTED
      Model           = UBStingerS_A6SN
      Animation       = UBStingerS_A6SN.UBStingerS_A6SN
      AnimationMode   = MANUAL
      Flags           = START_FRAME_LAST
      TransitionKey   = UP_SNOWNIGHT
      ParticleSysBone = Smoke01 BuildUpNightSnowSmoke
      ParticleSysBone = Smoke02 BuildUpNightSnowSmoke
      ParticleSysBone = Smoke03 BuildUpNightSnowSmoke
    End
    TransitionState   = DOWN_DEFAULT UP_DAY
     Model            = UBStingerS_A6
      Animation       = UBStingerS_A6.UBStingerS_A6
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = DOWN_DEFAULT UP_NIGHT
     Model            = UBStingerS_A6N
      Animation       = UBStingerS_A6N.UBStingerS_A6N
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = DOWN_DEFAULT UP_SNOW
     Model            = UBStingerS_A6S
      Animation       = UBStingerS_A6S.UBStingerS_A6S
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = DOWN_DEFAULT UP_SNOWNIGHT
     Model            = UBStingerS_A6SN
      Animation       = UBStingerS_A6SN.UBStingerS_A6SN
      AnimationMode   = ONCE
      AnimationSpeedFactorRange = 1.0 1.0
      Flags           = START_FRAME_FIRST
    End
    TransitionState   = UP_DAY DOWN_DEFAULT
      Model           = UBStingerS_A6
      Animation       = UBStingerS_A6.UBStingerS_A6
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
    TransitionState   = UP_NIGHT DOWN_DEFAULT
      Model           = UBStingerS_A6N
      Animation       = UBStingerS_A6N.UBStingerS_A6N
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
    TransitionState   = UP_SNOW DOWN_DEFAULT
      Model           = UBStingerS_A6S
      Animation       = UBStingerS_A6S.UBStingerS_A6S
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
    TransitionState   = UP_SNOWNIGHT DOWN_DEFAULT
      Model           = UBStingerS_A6SN
      Animation       = UBStingerS_A6SN.UBStingerS_A6SN
      AnimationMode   = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 2.0 2.0   ; play teardown animations more quickly
      Flags           = START_FRAME_LAST
    End
  End

   Draw = W3DModelDraw ModuleTag_99
    OkToChangeModelColor = Yes

    DefaultConditionState
      Model              = NONE
    End
    AliasConditionState  = DAMAGED
    AliasConditionState  = REALLYDAMAGED RUBBLE
    AliasConditionState  = SNOW
    AliasConditionState  = SNOW DAMAGED
    AliasConditionState  = SNOW REALLYDAMAGED RUBBLE

    ConditionState      = GARRISONED
      Model             = UBMGNst_F
    End
    ConditionState      = GARRISONED DAMAGED
      Model             = UBMGNst_F
    End
    ConditionState      = GARRISONED REALLYDAMAGED RUBBLE
      Model             = UBMGNst_F
    End
    
    
    ConditionState      = GARRISONED SNOW
      Model             = UBMGNst_F
    End
    ConditionState      = GARRISONED DAMAGED SNOW
      Model             = UBMGNst_F
    End
    ConditionState      = GARRISONED REALLYDAMAGED RUBBLE SNOW
      Model             = UBMGNst_F
    End

    ConditionState       = AWAITING_CONSTRUCTION 
      Model              = NONE
    End
    AliasConditionState  = GARRISONED AWAITING_CONSTRUCTION DAMAGED
    AliasConditionState  = GARRISONED AWAITING_CONSTRUCTION REALLYDAMAGED
    AliasConditionState  = GARRISONED AWAITING_CONSTRUCTION SNOW
    AliasConditionState  = GARRISONED AWAITING_CONSTRUCTION SNOW DAMAGED
    AliasConditionState  = GARRISONED AWAITING_CONSTRUCTION SNOW REALLYDAMAGED
    AliasConditionState  = GARRISONED SOLD 
    AliasConditionState  = GARRISONED SOLD DAMAGED
    AliasConditionState  = GARRISONED SOLD REALLYDAMAGED
    AliasConditionState  = GARRISONED SOLD SNOW
    AliasConditionState  = GARRISONED SOLD SNOW DAMAGED
    AliasConditionState  = GARRISONED SOLD SNOW REALLYDAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED
    AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW
    AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED
    AliasConditionState  = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED
End
  
  PlacementViewAngle = -45

  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:MachineGunSite
  Side                = GLABoss
  EditorSorting       = STRUCTURE
  Prerequisites
    Object            = Boss_GLAFactory
  End
  BuildCost           = 800
  BuildTime           = 16.0           ; in seconds
  EnergyProduction    = 0
  VisionRange         = 600.0           ; Shroud clearing distance
  ShroudClearingRange = 400
  ArmorSet
    Conditions        = None
    Armor             = StingerSiteArmor
    DamageFX          = StructureDamageFXNoShake
  End
  ArmorSet
    Conditions        = PLAYER_UPGRADE
    Armor             = StingerSiteFortifiedArmor
    DamageFX          = StructureDamageFXNoShake
  End
  CommandSet          = GLAStingerSiteCommandSet
  ExperienceValue = 32 43 57 76  ; Experience point value at each level

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

  UnitSpecificSounds
    UnderConstruction     = UnderConstructionLoop
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority        = STRUCTURE
  KindOf               = PRELOAD STRUCTURE SELECTABLE IMMOBILE FS_BASE_DEFENSE IMMUNE_TO_CAPTURE SPAWNS_ARE_THE_WEAPONS SCORE_CREATE

  Body                 = HiveStructureBody ModuleTag_04 ;Requires SpawnBehavior!
    MaxHealth          = 1000.0
    InitialHealth      = 1000.0
    ;**Careful with these damage types -- because area damage types will already
    ;**damage slaves.
    PropagateDamageTypesToSlavesWhenExisting = NONE +SMALL_ARMS +SNIPER +POISON +RADIATION +SURRENDER
    SwallowDamageTypesIfSlavesNotExisting = NONE +SNIPER +POISON +SURRENDER; Take no damage if no one to pass this to

    ; 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 = 2300
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 100
  End

  Behavior = SpawnPointProductionExitUpdate ModuleTag_05
    SpawnPointBoneName = SpawnPoint
  End

  Behavior                = SpawnBehavior ModuleTag_06
    SpawnNumber           = 1
    SpawnReplaceDelay     = 18000 ;msec
    SpawnTemplateName     = Boss_GLAInfantryMachineGunSoldier
    CanReclaimOrphans     = No
    SpawnedRequireSpawner = Yes
    SlavesHaveFreeWill    = No
  End
  
  Behavior        = RebuildHoleExposeDie ModuleTag_08
    HoleName      = GLAHoleStingerSite
    HoleMaxHealth = 500.0
  End

  Behavior        = ModelConditionUpgrade ModuleTag_Armor01Visual
    ConditionFlag = GARRISONED
    TriggeredBy   = Upgrade_GLAFortifiedStructure
  End
  
  Behavior = WeaponBonusUpgrade ModuleTag_08237658
    TriggeredBy = Upgrade_GLAAPBullets
  End

  Behavior = MaxHealthUpgrade ModuleTag_Armor01Data
    TriggeredBy   = Upgrade_GLAFortifiedStructure
    AddMaxHealth  = 500.0
    ChangeType    = ADD_CURRENT_HEALTH_TOO
  End

  Behavior        = DestroyDie ModuleTag_09
    ;<NO DATA>
  End
  Behavior        = CreateObjectDie ModuleTag_10
    CreationList  = OCL_ABStingerSiteDebris
  End
  Behavior        = FXListDie ModuleTag_11
    DeathFX       = FX_StructureSmallDeath
  End
  Behavior        = FireWeaponWhenDeadBehavior ModuleTag_12
    DeathWeapon   = StingerSiteDeathConcussion
    StartsActive  = Yes
  End
  
  
  Behavior = ProductionUpdate ModuleTag_19
  End

  Behavior                = FlammableUpdate ModuleTag_16
    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_17
    ;-------------DESIGNED FOR SMALL SIZED FACTION BUILDING TRANSITIONS-------------------
    DamagedParticleSystem1       = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
    ;---------------------------------------------------------------------------------------
    ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionSmallSmoke
    ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionSmallExplosion
    ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionSmallShockwave
  End

  Behavior = ArmorUpgrade ModuleTag_Armor01
    TriggeredBy   = Upgrade_GLAFortifiedStructure
  End

  Geometry            = CYLINDER
  GeometryMajorRadius = 28.0
  GeometryHeight      = 9.0    
  GeometryIsSmall     = No
  Shadow              = SHADOW_VOLUME
  BuildCompletion     = PLACED_BY_PLAYER

End



And here is the code for the infantry man that goes in it.



;------------------------------------------------------------------------------
Object Boss_GLAInfantryMachineGunSoldier

  ; *** ART Parameters ***
  SelectPortrait         = SUMachineGunnerSite_L
  ButtonImage            = SUMachineGunnerSite

  Draw = W3DModelDraw ModuleTag_01

    OkToChangeModelColor        = Yes
    
    DefaultConditionState
      Model = UBMGNst_SKN
      Turret = Dum-TurManMVR
      TurretArtAngle = 180
      IdleAnimation = UITech_SKL.UITech_STA 0 6
      IdleAnimation = UITech_SKL.UITech_IDA
      IdleAnimation = UITech_SKL.UITech_IDB
      AnimationMode = ONCE
      WeaponMuzzleFlash = PRIMARY MUZZLEFX
    End

    ConditionState = RUBBLE MOVING TURRET_ROTATE
      Animation = None
      HideSubObject = UITech-SKN
    End

    ConditionState = MOVING
      Animation = UITech_SKL.UITech_MVB
      AnimationMode = LOOP
    End

    ConditionState = TURRET_ROTATE
      Animation = UITech_SKL.UITech_TNA
      AnimationMode = LOOP
    End
    AliasConditionState = TURRET_ROTATE MOVING
    AliasConditionState = TURRET_ROTATE FIRING_A
    AliasConditionState = TURRET_ROTATE BETWEEN_FIRING_SHOTS_A
    AliasConditionState = TURRET_ROTATE RELOADING_A
    AliasConditionState = TURRET_ROTATE MOVING FIRING_A
    AliasConditionState = TURRET_ROTATE MOVING BETWEEN_FIRING_SHOTS_A
    AliasConditionState = TURRET_ROTATE MOVING RELOADING_A

    ConditionState = FIRING_A 
      Animation = UITech_SKL.UITech_ATA
      AnimationMode = LOOP
    End
    AliasConditionState = BETWEEN_FIRING_SHOTS_A
    AliasConditionState = RELOADING_A
    AliasConditionState = MOVING FIRING_A
    AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
    AliasConditionState = MOVING RELOADING_A
  End
  
  Draw = W3DModelDraw ModuleTag_Turret01
    
    DefaultConditionState
      Model = UBMGNst_SKN2
      Turret = Dum-TurManMVR
      TurretArtAngle = 180
      WeaponFireFXBone = PRIMARY MUZZLEMG
    End
    
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:StingerSoldier
  Side = GLAStealthGeneral
  EditorSorting = INFANTRY
  TransportSlotCount = 1                 ;how many "slots" we take in a transport (0 == not transportable)

  WeaponSet
    Conditions          = None 
    Weapon              = PRIMARY   MGNestGun
  End

  ArmorSet
    Conditions      = None
    Armor           = StingerSoldierArmor ;Extra protection due to being enclosed by the stinger site.
    DamageFX        = None
  End
  VisionRange = 400.0
  ShroudClearingRange = 400

  Prerequisites
    Object = Boss_GLAFactory
  End
  BuildCost = 100
  BuildTime = 1.0          ;in seconds    
  CrushableLevel         = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles

;  CommandSet      = Slth_GLAInfantryRebelCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect = StingerSoldierVoiceSelect
  VoiceMove = StingerSoldierVoiceMove
  VoiceAttack = StingerSoldierVoiceAttack

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER CLICK_THROUGH SPAWNS_ARE_THE_WEAPONS

  Body = ActiveBody ModuleTag_02
    MaxHealth       = 500.0
    InitialHealth   = 500.0
  End

  Behavior = StealthDetectorUpdate ModuleTag_16
    DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
    DetectionRange = 200 ;Dustin, enable this for independant balancing!
    CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
    CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
  End

  Behavior = AIUpdateInterface ModuleTag_03
  
    Turret
      TurretTurnRate = 240       ; turn rate, in degrees per sec
      NaturalTurretAngle = 0
      MinIdleScanAngle = 30      ; in degrees off the natural turret angle
      MaxIdleScanAngle = 60      ; in degrees off the natural turret angle
      MinIdleScanInterval = 5000 ; in milliseconds
      MaxIdleScanInterval = 10000 ; in milliseconds
      ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY
      NaturalTurretAngle = 180
    End
    
    AutoAcquireEnemiesWhenIdle = Yes Stealthed ATTACK_BUILDINGS
    MoodAttackCheckRate        = 250
  End
  Locomotor = SET_NORMAL BasicHumanLocomotor
  Behavior = PhysicsBehavior ModuleTag_04
    Mass = 5.0
  End
  Behavior = SlavedUpdate ModuleTag_06
    ;nothing
  End

  Behavior = SquishCollide ModuleTag_08
    ;nothing
  End



; --- begin Death modules ---
  Behavior = SlowDeathBehavior ModuleTag_Death01
    DeathTypes          = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA
    SinkDelay           = 3000
    SinkRate            = 0.5     ; in Dist/Sec
    DestructionDelay    = 8000
    FX                  = INITIAL FX_StingerSoldierDie
  End
  Behavior = SlowDeathBehavior ModuleTag_Death02
    DeathTypes          = NONE +CRUSHED +SPLATTED
    SinkDelay           = 3000
    SinkRate            = 0.5     ; in Dist/Sec
    DestructionDelay    = 8000
    FX                  = INITIAL FX_GIDieCrushed
  End
  Behavior = SlowDeathBehavior ModuleTag_Death03
    DeathTypes          = NONE +EXPLODED
    SinkDelay           = 3000
    SinkRate            = 0.5     ; in Dist/Sec
    DestructionDelay    = 8000
    FX                  = INITIAL FX_StingerSoldierDie
    FlingForce          = 8
    FlingForceVariance  = 3
    FlingPitch          = 60
    FlingPitchVariance  = 10
  End
  Behavior = SlowDeathBehavior ModuleTag_Death04
    DeathTypes          = NONE +BURNED
    DestructionDelay    = 0
    FX                  = INITIAL FX_DieByFireGLA
    OCL                 = INITIAL OCL_FlamingInfantry
  End
  Behavior = SlowDeathBehavior ModuleTag_Death05
    DeathTypes          = NONE +POISONED
    DestructionDelay    = 0
    FX                  = INITIAL FX_DieByToxinGLA
    OCL                 = INITIAL OCL_ToxicInfantry
  End
  Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag
    DeathTypes          = NONE +POISONED_BETA
    DestructionDelay    = 0
    FX                  = INITIAL FX_DieByToxinGLA
    OCL                 = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones
  End
  Behavior = SlowDeathBehavior ModuleTag_Death07
    DeathTypes          = NONE +POISONED_GAMMA
    DestructionDelay    = 0
    FX                  = INITIAL FX_DieByToxinGLA
    OCL                 = INITIAL OCL_ToxicInfantryGamma
  End
; --- end Death modules ---

  Behavior = PoisonedBehavior ModuleTag_14
    PoisonDamageInterval = 100  ; Every this many msec I will retake the poison damage dealt me...
    PoisonDuration = 3000       ; ... for this long after last hit by poison damage
  End

  Geometry = CYLINDER
  GeometryMajorRadius = 10.0
  GeometryMinorRadius = 10.0
  GeometryHeight = 12.0
  GeometryIsSmall = Yes
  BuildCompletion = APPEARS_AT_RALLY_POINT

End
Sponsor
JoshZemlinsky
11 years ago
Ok, so i found out what was wrong.

Turns out the upgrade the Machine Gun site had for "AP Bullets" did not exist in my upgrades list.

It works like it should now.

EDIT:
Given i had another question regarding upgrades, well here goes.
I've added one or two new upgrades to the game, however when i launch world builder i get an error like this:

ASSERTION FAILURE: Can't have more then 128 types of upgrades and have a Bitfield function.

It hasn't caused anything beyond that error message, so i am curious, what is it, and will it cause problems later on?
Gameanater
11 years ago
I dunno... I don't mod... lol


Can you upload a couple pictures of what I'm gunna call the Bullet Site up here? I really wanna see it.
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
Rrtaya_tsamsiyu
11 years ago
i'm supposing this error means you have more than 128 upgrades in your upgrade ini, which the game doesn't allow.
one soul at a time
JoshZemlinsky
11 years ago

i'm supposing this error means you have more than 128 upgrades in your upgrade ini, which the game doesn't allow.

Originally Posted by: Rrtaya_tsamsiyu 



Ah, well that is kinda odd that you'd have a limit to the amount of upgrades allowed.
JoshZemlinsky
11 years ago

I dunno... I don't mod... lol


Can you upload a couple pictures of what I'm gunna call the Bullet Site up here? I really wanna see it.

Originally Posted by: Gameanater 



Sure, it's from a mod called Shockwave:
Picture 

Now before anyone goes "Nooo u cant stael ur modals" the intention of what i am doing currently is for private use only.
Mainly to get more familiar with modding, and hopefully be able to make something of my own someday 😛

Also the building could be replicated with a stinger site and a technical gunner.
Gameanater
11 years ago
That's purty cool, Josh!

Hey, could you maybe modify it a little and put up the Bullet Site's code here, but with the Stinger Site's model and with 3 Technical Gunners? I might want to use it in a map.ini. Don't worry, I'll credit you if I do!
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
JoshZemlinsky
11 years ago

That's purty cool, Josh!

Hey, could you maybe modify it a little and put up the Bullet Site's code here, but with the Stinger Site's model and with 3 Technical Gunners? I might want to use it in a map.ini. Don't worry, I'll credit you if I do!

Originally Posted by: Gameanater 



Given that i just setup a Stinger Site with standard Tunnel Defenders lastnight, sure. It would take me like 5 minutes xD

Altho you will have to wait as i am at 'college' right now. (not the party kind)
Gameanater
11 years ago
Awesome! Can't wait! But I will.

Here's a lil' tip that'll help in English. 😛 "Altho" is typed/written as "although".

Sorry, I'm kind of a grammer freak and all. 😉
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
acidbrain
11 years ago



Here's a lil' tip that'll help in English. 😛 "Altho" is typed/written as "although".

Sorry, I'm kind of a grammer freak and all. 😉

Originally Posted by: Gameanater 



Than here is something to trip on

I cant w8 2 b there altho idk if it's gonna b 2 l8 4 me, ffs I'm not lmao and really not rotffl.

His grammar is less annoying than your signature, I've seen Morpheus rape that car for a 1000 times now and still it's not damaged, I think he has to call Neo to pull of the job.

Panem et kirkinses
Gameanater
11 years ago



Here's a lil' tip that'll help in English. 😛 "Altho" is typed/written as "although".

Sorry, I'm kind of a grammer freak and all. 😉

Originally Posted by: acidbrain 



Than here is something to trip on

I cant w8 2 b there altho idk if it's gonna b 2 l8 4 me, ffs I'm not lmao and really not rotffl.

His grammar is less annoying than your signature, I've seen Morpheus ---- that car for a 1000 times now and still it's not damaged, I think he has to call Neo to pull OFF the job.

Originally Posted by: Gameanater 



The Twins have a nearly indestructible car. 😄
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
JoshZemlinsky
11 years ago
Well sorry, english never was my first language.

And i use "altho" because i am too lazy to write although lol(and it makes me gangsta)

Anyways, for the Stinger Site, it appears the Technical gunner is not a separate 'object' as i thought. This will make it all a bit more complicated, but when i do have the time i will work on it.

Gameanater
11 years ago
Hmm... You could trying using one of the Angry Mob guys or a Mini Gunner... Granted, the Mini Gunner isn't a GLA Unit but I'd settle for that. XD

You could also use a Rebel too if you can get it to have better range and attack aircraft.
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
JoshZemlinsky
11 years ago
Once i get around to it, i will see what i can do.
I'm kinda busy these days, yesterday i realized how horrible it can be to 'move' a super weapon.
The jumping back and forth between files is making me dizzy 💀
Gameanater
11 years ago
Sounds bad... Eeee.... o-0

I'm sure someone else here could help with your problem.
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
JoshZemlinsky
11 years ago
Nah, i got it working, it just took forever.
Gameanater
11 years ago
XD

When's the Bullet Site gunna come up? lol
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.
JoshZemlinsky
11 years ago

XD

When's the Bullet Site gunna come up? lol

Originally Posted by: Gameanater 



Well i've been abit busy lately. But, as you requested. I've just finish your Techincal-Bullet-Gunner-site thingy.

I've attached it to this post.

3 INI files are included, CommandSet.Ini CommandButton.ini and GunnerSite.ini
You only need the GunnerSite.ini in order to make it work. The two other files enables the defense to be build by standard GLA.

In case you've got a CommandSet or CommandButton ini of your own, here are the entries i used:

Command Button:

CommandButton Command_ConstructGLAGunnerSite
  Command       = DOZER_CONSTRUCT
  Object        = GLAGunnerSite
  TextLabel     = CONTROLBAR:ConstructGLAStingerSite
  ButtonImage   = SUStinger
  ButtonBorderType        = BUILD ; Identifier for the User as to what kind of button this is
  DescriptLabel           = CONTROLBAR:ToolTipGLABuildStingerSite
End

Command Set for worker (note the Gunnersite entry):

CommandSet GLAWorkerCommandSet
  1  = Command_ConstructGLASupplyStash
  2  = Command_ConstructGLADemoTrap
  3  = Command_ConstructGLABarracks 
  4  = Command_ConstructGLAPalace
  5  = Command_ConstructGLAStingerSite
  6  = Command_ConstructGLABlackMarket
  7  = Command_ConstructGLATunnelNetwork
  8  = Command_ConstructGLAScudStorm
  9  = Command_ConstructGLAArmsDealer
 10  = Command_ConstructGLACommandCenter
 11  = [color=green]Command_ConstructGLAGunnerSite[/color]
 13  = Command_UpgradeGLAWorkerFakeCommandSet
 14  = Command_DisarmMinesAtPosition
End

Incase you don't have these, you may extract those .ini's
To install it all, you just gotta drop the "Ini" folder into your Zero Hour's Data folder (it is found in the root directory.)
If you just wanna have the GunnerSite, well don't extract CommandSet and Commandbutton. That easy!

Enjoy 😁   GLAGunnerSite.zip (48kb) downloaded 4 time(s).
Gameanater
11 years ago
I will try it soon.... 😁


I might attempt to make a few edits to get it to work in a map.ini if I know how (I think I do)... Like, make it so it changes a standard GLA Stinger Site or something.... But who knows? Thank you! 😁 😁
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.