Jump to content


Using multiples "portable structures"


3 replies to this topic

#1 Tankinator

    Visitor

  • Member
  • 28 posts
  • Projects: C&C General : Zero Hour : C&C3 Tiberian Incursion

Posted 28 October 2011 - 14:22

I am trying to script a structure witch have 7 portable structures (turrets) inside.
It look to work, except that only the first turret appear in game, others turrets attack from the center of the main unit and their models are not displayed.
Please, do you see any mistake in this code ?

Object GDIKodiak
 
  ; *** ART Parameters ***
  ; *** ENGINEERING Parameters ***
  RadarPriority          = UNIT
  KindOf             	= PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT SPAWNS_ARE_THE_WEAPONS
 
  Behavior = OverlordContain ModuleTag_11 ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel)
    Slots             	= 7
    DamagePercentToUnits        = 100%
    AllowInsideKindOf 	= PORTABLE_STRUCTURE
    PassengersAllowedToFire = Yes
    PassengersInTurret = No
    ExperienceSinkForRider = Yes ; I get the Exp for things my turret friend kills
  End
  
  Behavior = ObjectCreationUpgrade ModuleTag_12
    UpgradeObject = OCL_GdiKodiakMlTurret01
    TriggeredBy   = Upgrade_GdiKodiakMlTurret
  End
  Behavior = ProductionUpdate ModuleTag_13
    MaxQueueEntries = 11; So you can't build multiple upgrades in the same frame
  End
  
  Behavior = GrantUpgradeCreate ModuleTag_14
    UpgradeToGrant       	= Upgrade_GdiKodiakMlTurret
  End
 
  Behavior = ObjectCreationUpgrade ModuleTag_15
    UpgradeObject = OCL_GdiKodiakMlTurret02
    TriggeredBy   = Upgrade_GdiKodiakMlTurret
  End
  
  Behavior = ObjectCreationUpgrade ModuleTag_16
    UpgradeObject = OCL_GdiKodiakMlTurret03
    TriggeredBy   = Upgrade_GdiKodiakMlTurret
  End
  
  ;Behavior = ObjectCreationUpgrade ModuleTag_10
  ;  UpgradeObject = OCL_GdiFirehawkKodiak
  ;  TriggeredBy   = Upgrade_GdiFirehawkKodiak
  ;End
 
  ;Behavior = ProductionUpdate ModuleTag_11
  ;  MaxQueueEntries = 4
  ;End
 
End
 
;------------------------------------------------------------------------------
Object GdiKodiakMlTurret01 ; Seperate turret object so it can attack independantly
 
 
  Draw                    = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor  = Yes
AttachToBoneInContainer = Station01
    ExtraPublicBone = TurretFX01
    ExtraPublicBone = TurretFX02
    ExtraPublicBone = TURRET01
    ExtraPublicBone = TURRETEL
    ExtraPublicBone = TURRETEL01
 
 
    DefaultConditionState
      Model     	= AVAVNGER_G
      Turret              = TURRET01
      TurretPitch     	= TURRETEL01
    End
 
    ConditionState = REALLYDAMAGED
      Model     	= AVAVNGER_GD
      Turret              = TURRET01
      TurretPitch     	= TURRETEL01
    End
  End
 
  PlacementViewAngle = -45
 
  ; ***DESIGN parameters ***
  Side         	= GDI
  EditorSorting    = SYSTEM
  TransportSlotCount = 1
  
  WeaponSet
    Conditions = None
    Weapon = PRIMARY AvengerAirLaserOne
    Weapon = SECONDARY AvengerAirLaserTwo
  End
 
  ArmorSet
    Conditions 	= None
    Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Avenger with his damage module
  End
  VisionRange 	= 200
 
  ; *** AUDIO Parameters ***
  UnitSpecificSounds
   TurretMoveStart = NoSound
    TurretMoveLoop  = NoSound ;TurretMoveLoop
  End
 
  ; *** ENGINEERING Parameters ***
  KindOf            = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CLICK_THROUGH IGNORED_IN_GUI SPAWNS_ARE_THE_WEAPONS
    Body            = StructureBody ModuleTag_02
    MaxHealth   	= 100.0
    InitialHealth   = 100.0
  End
 
  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      ControlledWeaponSlots = PRIMARY SECONDARY
      TurretTurnRate      = 180   ;// turn rate, in degrees per sec
      TurretPitchRate 	= 180
      AllowsPitch     	= Yes
      NaturalTurretPitch  = 45
    End
    AutoAcquireEnemiesWhenIdle = Yes
    MoodAttackCheckRate = 500 ; default is 2000
  End
 
  Behavior = SlavedUpdate ModuleTag_04
    ;nothing
  End
  
  Behavior         	= DestroyDie ModuleTag_05
    ;<No Data>
  End
 
  Geometry            = BOX
  GeometryMajorRadius = 6.0
  GeometryMinorRadius = 6.0
  GeometryHeight      = 10.0
  GeometryIsSmall 	= No      
  Shadow              = SHADOW_VOLUME
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 
End
 
;------------------------------------------------------------------------------
Object GdiKodiakMlTurret02 ; Seperate turret object so it can attack independantly
 
  ; *** ART Parameters ***
  SelectPortrait     	= SNPropSpeaker_L
  ButtonImage            = SNPropSpeaker
  
  UpgradeCameo1 = Upgrade_Nationalism
  UpgradeCameo2 = Upgrade_ChinaUraniumShells
  UpgradeCameo3 = Upgrade_ChinaNuclearTanks
  ;UpgradeCameo4 = NONE
  UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower
  
  Draw                    = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor  = Yes
AttachToBoneInContainer = Station02
    ExtraPublicBone = TurretFX01
    ExtraPublicBone = TurretFX02
    ExtraPublicBone = TURRET01
    ExtraPublicBone = TURRETEL
    ExtraPublicBone = TURRETEL01
 
 
    DefaultConditionState
      Model     	= AVAVNGER_G
      Turret              = TURRET01
      TurretPitch     	= TURRETEL01
    End
 
    ConditionState = REALLYDAMAGED
      Model     	= AVAVNGER_GD
      Turret              = TURRET01
      TurretPitch     	= TURRETEL01
    End
  End
 
  PlacementViewAngle = -45
 
  ; ***DESIGN parameters ***
  Side         	= GDI
  EditorSorting    = SYSTEM
  TransportSlotCount = 1
  
  WeaponSet
    Conditions = None
    Weapon = PRIMARY AvengerAirLaserOne
    Weapon = SECONDARY AvengerAirLaserTwo
  End
 
  ArmorSet
    Conditions 	= None
    Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Avenger with his damage module
  End
  VisionRange 	= 200
 
  ; *** AUDIO Parameters ***
  UnitSpecificSounds
   TurretMoveStart = NoSound
    TurretMoveLoop  = NoSound ;TurretMoveLoop
  End
 
  ; *** ENGINEERING Parameters ***
  KindOf            = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CLICK_THROUGH IGNORED_IN_GUI SPAWNS_ARE_THE_WEAPONS
    Body            = StructureBody ModuleTag_02
    MaxHealth   	= 100.0
    InitialHealth   = 100.0
  End
 
  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      ControlledWeaponSlots = PRIMARY SECONDARY
      TurretTurnRate      = 180   ;// turn rate, in degrees per sec
      TurretPitchRate 	= 180
      AllowsPitch     	= Yes
      NaturalTurretPitch  = 45
    End
    AutoAcquireEnemiesWhenIdle = Yes
    MoodAttackCheckRate = 500 ; default is 2000
  End
 
  Behavior = SlavedUpdate ModuleTag_04
    ;nothing
  End
  
  Behavior         	= DestroyDie ModuleTag_05
    ;<No Data>
  End
 
  Geometry            = BOX
  GeometryMajorRadius = 6.0
  GeometryMinorRadius = 6.0
  GeometryHeight      = 10.0
  GeometryIsSmall 	= No      
  Shadow              = SHADOW_VOLUME
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 
End
 
;------------------------------------------------------------------------------
Object GdiKodiakMlTurret03 ; Seperate turret object so it can attack independantly
 
  ; *** ART Parameters ***
  SelectPortrait     	= SNPropSpeaker_L
  ButtonImage            = SNPropSpeaker
  
  UpgradeCameo1 = Upgrade_Nationalism
  UpgradeCameo2 = Upgrade_ChinaUraniumShells
  UpgradeCameo3 = Upgrade_ChinaNuclearTanks
  ;UpgradeCameo4 = NONE
  UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower
  
  Draw                    = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor  = Yes
AttachToBoneInContainer = Station03
    ExtraPublicBone = TurretFX01
    ExtraPublicBone = TurretFX02
    ExtraPublicBone = TURRET01
    ExtraPublicBone = TURRETEL
    ExtraPublicBone = TURRETEL01
 
 
    DefaultConditionState
      Model     	= AVAVNGER_G
      Turret              = TURRET01
      TurretPitch     	= TURRETEL01
    End
 
    ConditionState = REALLYDAMAGED
      Model     	= AVAVNGER_GD
      Turret              = TURRET01
      TurretPitch     	= TURRETEL01
    End
  End
 
  PlacementViewAngle = -45
 
  ; ***DESIGN parameters ***
  Side         	= GDI
  EditorSorting    = SYSTEM
  TransportSlotCount = 1
  
  WeaponSet
    Conditions = None
    Weapon = PRIMARY AvengerAirLaserOne
    Weapon = SECONDARY AvengerAirLaserTwo
  End
 
  ArmorSet
    Conditions 	= None
    Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Avenger with his damage module
  End
  VisionRange 	= 200
 
  ; *** AUDIO Parameters ***
  UnitSpecificSounds
   TurretMoveStart = NoSound
    TurretMoveLoop  = NoSound ;TurretMoveLoop
  End
 
  ; *** ENGINEERING Parameters ***
  KindOf            = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CLICK_THROUGH IGNORED_IN_GUI SPAWNS_ARE_THE_WEAPONS
    Body            = StructureBody ModuleTag_02
    MaxHealth   	= 100.0
    InitialHealth   = 100.0
  End
 
  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      ControlledWeaponSlots = PRIMARY SECONDARY
      TurretTurnRate      = 180   ;// turn rate, in degrees per sec
      TurretPitchRate 	= 180
      AllowsPitch     	= Yes
      NaturalTurretPitch  = 45
    End
    AutoAcquireEnemiesWhenIdle = Yes
    MoodAttackCheckRate = 500 ; default is 2000
  End
 
  Behavior = SlavedUpdate ModuleTag_04
    ;nothing
  End
  
  Behavior         	= DestroyDie ModuleTag_05
    ;<No Data>
  End
 
  Geometry            = BOX
  GeometryMajorRadius = 6.0
  GeometryMinorRadius = 6.0
  GeometryHeight      = 10.0
  GeometryIsSmall 	= No      
  Shadow              = SHADOW_VOLUME
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length
 
End


I have deleated the un-useful par of the "Kodiak" code (main unit).

Or maybe I am using the wrong method to add multiple turrets ?
What is more dangerous than a Titan?
Two Titans.

#2 Sgt. Rho

    Kerbal Rocket Scientist

  • Project Leader
  • 6870 posts
  • Projects: Scaring Jebediah.

Posted 28 October 2011 - 18:50

Use a GarrisonContain for that. It should work that way, however I've not coded for ZH in quite a while.

#3 Zeke

    The X General

  • Project Team
  • 3504 posts
  • Projects: Deep Impact (formerly EC)

Posted 29 October 2011 - 18:02

iirc you can't have more than one portable structure, you have to code them like the stinger soldiers in the stinger site

#4 Tankinator

    Visitor

  • Member
  • 28 posts
  • Projects: C&C General : Zero Hour : C&C3 Tiberian Incursion

Posted 12 November 2011 - 14:54

Ok, I will try with the stinger site's slave code.
Thank you
What is more dangerous than a Titan?
Two Titans.



1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users