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 ?