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:
Show Spoiler
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.

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

When pointing to the West.

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:
Show Spoiler
;------------------------------------------------------------------------------
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
Show Spoiler
;-----------------------------------------------------------------
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.
Edited by user
11 years ago |
Reason: Not specified