JoshZemlinsky
11 years ago
I've got this little problem with a seperate turret object.

The original unit had the small turret ontop (seperate model)
I had to seperate it because i wanted to give the base unit two fire modes. And due to technical limitations in generals, it had to be split.

I thought making it a seperate object would be simple, given how well it fits on the vehicle before.
But it was all but easy.

Well i can't really explain it, so i will show it:


All depending on whether the gun's target is to the West, East, South or North. It will turn in a completely different direction and start shooting it.

When pointing to the East the turret acts normally. This is also the default angle of the vehicle.
UserPostedImage

When pointing to the North however, the turret turns to the West and starts shooting.
UserPostedImage

When pointing to the West.
UserPostedImage


So you can sorta see a pattern coming here, whenever the tank not at it's default angle the turret will point in the direction of the target, had the tank been at it's default angle.

The turret will also turn towards these positions if the vehicle moves.

This is really weird, and i don't have any idea what causes it. By now i have probably tried everything i could think of.

A few screenshots wont help much, so here's the code for the tank and turret:



;------------------------------------------------------------------------------
Object Boss_GLASuperUnitFalak

  ; *** ART Parameters ***
  SelectPortrait         = GLAFalak_L
  ButtonImage            = GLAFalak
  
  UpgradeCameo1 = Upgrade_GLAJunkRepair
  UpgradeCameo2 = Upgrade_AmericaCompositeArmor ;Junk armor?
  UpgradeCameo3 = Upgrade_GLAScavangedSalvage
  
  Draw = W3DOverlordTankDraw 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           = EXDualTnkTrds.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               = UVT28B1
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28B1_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    
    ;;Salvage 1
    ConditionState        = WEAPONSET_CRATEUPGRADE_ONE
      Model               = UVT28B2
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = PRIMARY Muzzle
      WeaponRecoilBone    = PRIMARY Barrel
      WeaponMuzzleFlash   = PRIMARY MuzzleFX
      WeaponLaunchBone    = PRIMARY Muzzle
    End
    ConditionState        = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
      Model               = UVT28B2_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
    
    ;;Normal B
    ConditionState        = USING_WEAPON_B
      Model               = UVT28B1
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = SECONDARY Muzzle
      WeaponRecoilBone    = SECONDARY Barrel
      WeaponMuzzleFlash   = SECONDARY MuzzleFX
      WeaponLaunchBone    = SECONDARY Muzzle
    End
    ConditionState        = USING_WEAPON_B REALLYDAMAGED
      Model               = UVT28B1_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = SECONDARY Muzzle
      WeaponRecoilBone    = SECONDARY Barrel
      WeaponMuzzleFlash   = SECONDARY MuzzleFX
      WeaponLaunchBone    = SECONDARY Muzzle
    End
    
    ;;Salvage 1 B
    ConditionState        = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_ONE
      Model               = UVT28B2
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = SECONDARY Muzzle
      WeaponRecoilBone    = SECONDARY Barrel
      WeaponMuzzleFlash   = SECONDARY MuzzleFX
      WeaponLaunchBone    = SECONDARY Muzzle
    End
    ConditionState        = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
      Model               = UVT28B2_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = SECONDARY Muzzle
      WeaponRecoilBone    = SECONDARY Barrel
      WeaponMuzzleFlash   = SECONDARY MuzzleFX
      WeaponLaunchBone    = SECONDARY Muzzle
    End
    
    ;;Salvage 2 B
    ConditionState        = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_TWO
      Model               = UVT28B2
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = SECONDARY Muzzle
      WeaponRecoilBone    = SECONDARY Barrel
      WeaponMuzzleFlash   = SECONDARY MuzzleFX
      WeaponLaunchBone    = SECONDARY Muzzle
    End
    ConditionState        = USING_WEAPON_B WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
      Model               = UVT28B2_D
      TurretPitch         = TURRETEL
      WeaponFireFXBone    = SECONDARY Muzzle
      WeaponRecoilBone    = SECONDARY Barrel
      WeaponMuzzleFlash   = SECONDARY MuzzleFX
      WeaponLaunchBone    = SECONDARY Muzzle
    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:Falak
  Side                = GLABoss
  EditorSorting       = VEHICLE
  TransportSlotCount  = 15                 ;how many "slots" we take in a transport (0 == not transportable)
  
  WeaponSet
    Conditions        = None 
    Weapon            = PRIMARY   FalakWeaponArmorPiercing
    Weapon            = SECONDARY   FalakWeaponHighExplosive
    AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
    AutoChooseSources = SECONDARY NONE 
    PreferredAgainst = PRIMARY VEHICLE   
    ShareWeaponReloadTime = Yes
  End
  WeaponSet
    Conditions        = CRATEUPGRADE_ONE
    Weapon            = PRIMARY   FalakWeaponArmorPiercingUpgraded
    Weapon            = SECONDARY  FalakWeaponHighExplosiveUpgraded
    AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
    AutoChooseSources = SECONDARY NONE  
    PreferredAgainst = PRIMARY VEHICLE
    ShareWeaponReloadTime = Yes
  End
  WeaponSet
    Conditions        = CRATEUPGRADE_TWO
    Weapon            = PRIMARY   FalakWeaponArmorPiercingUpgradedTwo
    Weapon            = SECONDARY  FalakWeaponHighExplosiveUpgradedTwo
    AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
    AutoChooseSources = SECONDARY NONE    
    PreferredAgainst = PRIMARY VEHICLE
    ShareWeaponReloadTime = Yes
  End

  ArmorSet
    Conditions      = None
    Armor           = FalakTankArmor
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = CRATE_UPGRADE_ONE
    Armor           = FalakTankArmor
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = CRATE_UPGRADE_TWO
    Armor           = FalakTankArmor
    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           = FalakTankArmor
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = PLAYER_UPGRADE CRATE_UPGRADE_ONE
    Armor           = FalakTankArmorMineProofOne
    DamageFX        = TankDamageFX
  End
  ArmorSet
    Conditions      = PLAYER_UPGRADE CRATE_UPGRADE_TWO
    Armor           = FalakTankArmorMineProofTwo
    DamageFX        = TankDamageFX
  End
  
  BuildCost       = 7000
  BuildTime       = 65.0   
  VisionRange     = 350
  ShroudClearingRange = 320
  Prerequisites
    Object = Boss_GLAHeavyWarFactory
    Object = Boss_GLAPalace
    Object = Boss_GLAScrapyard
    Science = SCIENCE_Rank5
  End
  
  MaxSimultaneousOfType = DeterminedBySuperweaponRestriction ; Normally unlimited, but can be selected by players in multiplayer games

  ExperienceValue    = 281 375 499 666
  ExperienceRequired = 0 844 1124 1496
  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 = FalakCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect           = FalakVoiceSelect
  VoiceMove             = FalakTankVoiceMove
  VoiceGuard            = FalakTankVoiceMove
  VoiceAttack           = FalakVoiceAttack
  SoundMoveLoop         = FalakMoveLoop
  SoundMoveLoopDamaged  = FalakMoveLoop

  UnitSpecificSounds
    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    VoiceCreate    = FalakTankVoiceCreate
    VoiceCrush     = FalakTankVoiceMove
    VoiceEnter     = FalakTankVoiceMove
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE DRONE SALVAGER WEAPON_SALVAGER HUGE_VEHICLE HERO
  
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 3100.0
    InitialHealth   = 3100.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 = 5500
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 224
  End

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

  Locomotor = SET_NORMAL FalakLocomotor
 
  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     = Boss_GLATurretFalakGunner
  End
 
  Behavior = PhysicsBehavior ModuleTag_14
    Mass = 600.0
    ShockMaxRoll = 0.01
    ShockMaxPitch = 0.01
    ShockMaxYaw = 0.01
    ShockResistance = 1
  End
  
  Behavior = FireWeaponWhenDeadBehavior ModuleTag_08
    DeathTypes = ALL -POISONED -POISONED_BETA -POISONED_GAMMA -EXTRA_6
    DeathWeapon   = FalakDeathWeapon
    StartsActive  = Yes
  End
  
  ; Just explode death
  Behavior = InstantDeathBehavior ModuleTag_Destroyed
    DeathTypes = ALL -POISONED -POISONED_BETA -POISONED_GAMMA -EXTRA_6
    FX  =  FX_FalakExplosion
    OCL =  OCL_GLAFalakExplode
    FX  =  FX_GenericTankDeathEffect
  End

  Behavior = InstantDeathBehavior ModuleTag_Poisoned
    DeathTypes = NONE +POISONED +POISONED_BETA +POISONED_GAMMA +EXTRA_6
    OCL = OCL_GLAFalakDebrisSimple
    FX  =  FX_GenericTankDeathEffect
  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 = 8000
    AflameDamageAmount = 1
    AflameDamageDelay = 500
  End
  
  Behavior = AutoHealBehavior ModuleTag_062
    HealingAmount = 4
    HealingDelay = 1000
    TriggeredBy = Upgrade_GLAJunkRepair
  End

  Behavior        = MaxHealthUpgrade ModuleTag_blabla
    TriggeredBy   = Upgrade_AmericaCompositeArmor
    AddMaxHealth  = 400.0
    ChangeType    = ADD_CURRENT_HEALTH_TOO
  End
  
  Behavior = ArmorUpgrade ModuleTag_Armor01
    TriggeredBy = Upgrade_AmericaCompositeArmor
  End
  
  Behavior = WeaponSetUpgrade ModuleTag_ZOMGLOL07
    TriggeredBy = Upgrade_AmericaCompositeArmor
  End
  
  Behavior = ProductionUpdate ModuleTag_SalvageUpgrade02
  End
  
  Behavior = LockWeaponCreate ModuleTag_Lock21
    SlotToLock = PRIMARY
  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


And the turret



;-----------------------------------------------------------------
Object Boss_GLATurretFalakGunner

  ; *** ART Parameters ***
  Draw     = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor = Yes
    AttachToBoneInContainer = CHASSIS
    ;REPGRD_SKN
    ;InitialRecoilSpeed   = 120
    ;MaxRecoilDistance    = 8
    
  
    ConditionState        = NONE
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = TERTIARY  MGMUZZLE
      WeaponMuzzleFlash   = TERTIARY  MGMUZZLEFX
      WeaponLaunchBone    = TERTIARY  MGMUZZLE
    End
    ConditionState        = FIRING_A
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = TERTIARY  MGMUZZLE
      WeaponMuzzleFlash   = TERTIARY  MGMUZZLEFX
      WeaponLaunchBone    = TERTIARY  MGMUZZLE
    End
    ConditionState        = FIRING_B
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = LOOP
      AltTurret           = TURRET
      WeaponFireFXBone    = TERTIARY  MGMUZZLE
      WeaponMuzzleFlash   = TERTIARY  MGMUZZLEFX
      WeaponLaunchBone    = TERTIARY  MGMUZZLE
    End
    ConditionState        = REALLYDAMAGED
      Model               = UVT28G_D
      Animation           = UVT28G_D.UVT28G_D
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = TERTIARY  MGMUZZLE
      WeaponMuzzleFlash   = TERTIARY  MGMUZZLEFX
      WeaponLaunchBone    = TERTIARY  MGMUZZLE
    End
    ConditionState        = REALLYDAMAGED FIRING_A
      Model               = UVT28G
      Animation           = UVT28G.UVT28G
      AnimationMode       = MANUAL
      AltTurret           = TURRET
      WeaponFireFXBone    = TERTIARY  MGMUZZLE
      WeaponMuzzleFlash   = TERTIARY  MGMUZZLEFX
      WeaponLaunchBone    = TERTIARY  MGMUZZLE
    End
    ConditionState        = REALLYDAMAGED FIRING_B
      Model               = UVT28G_D
      Animation           = UVT28G_D.UVT28G_D
      AnimationMode       = LOOP
      AltTurret           = TURRET
      WeaponFireFXBone    = TERTIARY  MGMUZZLE
      WeaponMuzzleFlash   = TERTIARY  MGMUZZLEFX
      WeaponLaunchBone    = TERTIARY  MGMUZZLE
    End
  End

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

  WeaponSet
    Conditions  = None 
    Weapon    = TERTIARY   FalakMachineGunWeapon 
    AutoChooseSources = TERTIARY  FROM_PLAYER FROM_SCRIPT FROM_AI
    PreferredAgainst = TERTIARY  INFANTRY
  End

  ArmorSet
    Conditions  = None
    Armor       = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Overlord with his damage module
  End
  VisionRange   = 200

  ; *** AUDIO Parameters ***
  UnitSpecificSounds
    TurretMoveStart = NoSound
    TurretMoveLoop  = NoSound
    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
    AltTurret
      TurretTurnRate = 100
      ControlledWeaponSlots = TERTIARY 
      MinIdleScanAngle      = 10
      MaxIdleScanAngle      = 40
      MinIdleScanInterval   = 5000
      MaxIdleScanInterval   = 10000
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Behavior   = DestroyDie ModuleTag_04
  End

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


Personally i am done with this for now, i hope one of you may be able to help me out here.
I've looked high and low, nothing seems to be wrong in the models either.

Thanks in advance.
Sponsor
Gameanater
11 years ago
Ok, I've never done anything with turrets yet in modding... So I seriously doubt I can be of much help here...

But, my guess would be to look at, say, the Avenger's turret or the Technical's gunner and see if EA did anything differently. Compare it to your code and maybe you'll find the 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

Ok, I've never done anything with turrets yet in modding... So I seriously doubt I can be of much help here...

But, my guess would be to look at, say, the Avenger's turret or the Technical's gunner and see if EA did anything differently. Compare it to your code and maybe you'll find the problem?

Originally Posted by: Gameanater 



I took the code i used for the turret elsewhere, and that one worked. I also just checked the Avenger code. But nothing in it really looked like it would make a difference.

Also, it seems to be related to the main model. Since i added a particle exhaust effect, and it also turns depending on how the tank is angled.
Gameanater
11 years ago
Well, I tried to be helpful... 😛
Any old friends still on here can add me on discord @jcdenton2187. I'm far more likely to respond there.