Hi there, I need help with my Marauders!
Recently, while playing the NProject mod for ZH, I noticed that the Marauder tank's turret is rotating, unlike in the original game, where the tank rotates its entire body to fire at a target if it is not right in front of it. I tried to do the same thing to the Marauders in my mod and I can tell you that the turret is rotating but the downside of this is that the Marauder is not moving at all while coming out of the Arms Dealer, even after selling it off! The tank won't move! It's just frozen and can only fire!
Here is the code from the Nproject mod:
Object Demo_GLATankMarauder
; *** ART Parameters ***
SelectPortrait = SUMarauder_L
ButtonImage = SUMarauder
UpgradeCameo1 = Upgrade_GLAJunkRepair
UpgradeCameo2 = Demo_Upgrade_SuicideBomb
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DTankDraw ModuleTag_01
OkToChangeModelColor = Yes
; no crate upgrade
DefaultConditionState
Model = UVMarauder
Turret = Turret
ShowSubObject = Turret
HideSubObject = TurretUp01 TurretUp02
WeaponFireFXBone = PRIMARY BarrelMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY BarrelFX
WeaponLaunchBone = PRIMARY BarrelMS
End
ConditionState = REALLYDAMAGED
Model = UVMarauder_D
End
AliasConditionState = RUBBLE
; crate upgrade 1
ConditionState = WEAPONSET_CRATEUPGRADE_ONE
Model = UVMarauder
Turret = TurretUp01
ShowSubObject = TurretUp01
HideSubObject = Turret TurretUp02
WeaponFireFXBone = PRIMARY BarrelUp01MS
WeaponRecoilBone = PRIMARY BarrelUp01
WeaponMuzzleFlash = PRIMARY BarrelUp01FX
WeaponLaunchBone = PRIMARY BarrelUp01MS
End
ConditionState = WEAPONSET_CRATEUPGRADE_ONE REALLYDAMAGED
Model = UVMarauder_D
Turret = TurretUp01
ShowSubObject = TurretUp01
HideSubObject = Turret TurretUp02
WeaponFireFXBone = PRIMARY BarrelUp01MS
WeaponRecoilBone = PRIMARY BarrelUp01
WeaponMuzzleFlash = PRIMARY BarrelUp01FX
WeaponLaunchBone = PRIMARY BarrelUp01MS
End
AliasConditionState = WEAPONSET_CRATEUPGRADE_ONE RUBBLE
; crate upgrade 2
ConditionState = WEAPONSET_CRATEUPGRADE_TWO
Model = UVMarauder
Turret = TurretUp02
ShowSubObject = TurretUp02
HideSubObject = Turret TurretUp01
WeaponFireFXBone = PRIMARY BarrelUp02MS
WeaponRecoilBone = PRIMARY BarrelUp02
WeaponMuzzleFlash = PRIMARY BarrelUp02FX
WeaponLaunchBone = PRIMARY BarrelUp02MS
End
ConditionState = WEAPONSET_CRATEUPGRADE_TWO REALLYDAMAGED
Model = UVMarauder_D
Turret = TurretUp02
ShowSubObject = TurretUp02
HideSubObject = Turret TurretUp01
WeaponFireFXBone = PRIMARY BarrelUp02MS
WeaponRecoilBone = PRIMARY BarrelUp02
WeaponMuzzleFlash = PRIMARY BarrelUp02FX
WeaponLaunchBone = PRIMARY BarrelUp02MS
End
AliasConditionState = WEAPONSET_CRATEUPGRADE_TWO RUBBLE
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.
TrackMarks = EXTnkTrack.tga
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Marauder
Side = GLADemolitionGeneral
EditorSorting = VEHICLE
Prerequisites
Object = Demo_GLAArmsDealer
Science = SCIENCE_MarauderTank
End
BuildCost = 900
BuildTime = 10.0
TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable)
VisionRange = 125
ShroudClearingRange = 300
WeaponSet
Conditions = None
Weapon = PRIMARY REDMarauderTankGun
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = TERTIARY NONE
End
WeaponSet
Conditions = CRATEUPGRADE_ONE
Weapon = PRIMARY REDMarauderTankGunUpgradeOne
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = TERTIARY NONE
End
WeaponSet
Conditions = CRATEUPGRADE_TWO
Weapon = PRIMARY REDMarauderTankGunUpgradeTwo
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = TERTIARY NONE
End
ArmorSet
Conditions = None
Armor = TankArmor
DamageFX = TankDamageFX
End
ExperienceValue = 100 100 200 300 ;Experience point value at each level
ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = Demo_GLATankMarauderCommandSet
; *** AUDIO Parameters ***
VoiceSelect = MarauderTankVoiceSelect
VoiceMove = MarauderTankVoiceMove
VoiceGuard = MarauderTankVoiceMove
VoiceAttack = MarauderTankVoiceAttack
SoundMoveStart = MarauderTankMoveStart
SoundMoveStartDamaged = MarauderTankMoveStart
UnitSpecificSounds
VoiceCreate = MarauderTankVoiceCreate
VoiceCrush = MarauderTankVoiceCrush
VoiceEnter = MarauderTankVoiceMove
VoiceGarrison = MarauderTankVoiceMove
VoiceSalvage = MarauderTankVoiceSalvage
TurretMoveStart = NoSound
TurretMoveLoop = TurretMoveLoop
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE
Body = ActiveBody ModuleTag_02
MaxHealth = 500.0
InitialHealth = 500.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 = 860
SubdualDamageHealRate = 500
SubdualDamageHealAmount = 50
End
; ===== AI Modules =====
Behavior = AIUpdateInterface ModuleTag_03
Turret
ControlledWeaponSlots = PRIMARY
TurretTurnRate = 80
RecenterTime = 5000 ; how long to wait during idle before recentering
End
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL MarauderLocomotor
Behavior = PhysicsBehavior ModuleTag_04
Mass = 50.0
End
; ===== Factory and Upgrades =====
; --- Junk Repair
Behavior = AutoHealBehavior ModuleTag_05
HealingAmount = 2
HealingDelay = 1000 ; msec
TriggeredBy = Upgrade_GLAJunkRepair
End
; --- Suicide Upgrade (DemoGeneral)
Behavior = CommandSetUpgrade ModuleTag_24
CommandSet = Demo_GLATankMarauderCommandSetUpgrade
TriggeredBy = Demo_Upgrade_SuicideBomb
End
Behavior = FireWeaponWhenDeadBehavior ModuleTag998
DeathTypes = NONE +SUICIDED +CRUSHED +SPLATTED
DeathWeapon = Demo_SuicideDynamitePackPlusFire
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
End
Behavior = FireWeaponWhenDeadBehavior ModuleTag999
DeathTypes = ALL -SUICIDED -CRUSHED -SPLATTED
DeathWeapon = Demo_DestroyedWeapon
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
End
; ===== Damage and Death FX =====
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
Behavior = TransitionDamageFX ModuleTag_08
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
End
Behavior = SlowDeathBehavior ModuleTag_06
DeathTypes = ALL -CRUSHED -SPLATTED
DestructionDelay = 1000
DestructionDelayVariance = 300
FX = INITIAL FX_CrusaderCatchFire
OCL = FINAL OCL_MarauderTankDeathEffect
FX = FINAL FX_BattleMasterExplosionOneFinal
End
Behavior = InstantDeathBehavior ModuleTag_09
DeathTypes = NONE +CRUSHED +SPLATTED
OCL = OCL_MarauderTank_CrushEffect
FX = FX_CarCrush
End
Behavior = CreateCrateDie ModuleTag_07
CrateData = SalvageCrateData
End
Behavior = EjectPilotDie ModuleTag_HijackerFix01
DeathTypes = ALL -CRUSHED -SPLATTED
RequiredStatus = HIJACKED
VeterancyLevels = ALL
End
Behavior = FXListDie ModuleTag_HijackerFix02
RequiredStatus = HIJACKED
DeathTypes = ALL -CRUSHED -SPLATTED
DeathFX = FX_HijackerEject
End
Geometry = BOX
GeometryMajorRadius = 18.0
GeometryMinorRadius = 11.0
GeometryHeight = 12.0
GeometryIsSmall = Yes
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
Here is the code from my mod:
Object Demo_GLATankMarauder
; *** ART Parameters ***
SelectPortrait = SUMarauder_L
ButtonImage = SUMarauder
UpgradeCameo1 = Upgrade_GLAJunkRepair
UpgradeCameo2 = Demo_Upgrade_SuicideBomb
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DTankDraw ModuleTag_01
OkToChangeModelColor = Yes
; no crate upgrade
ConditionState = NONE
Model = UVMarauder
Turret = Turret
ShowSubObject = Turret
HideSubObject = TurretUp01 TurretUp02 BarrelFX01 ; Since we are showing one of three turrets, we need to then hide the subobject muzzleflash
WeaponFireFXBone = PRIMARY BarrelMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY BarrelFX
WeaponLaunchBone = PRIMARY BarrelMS
End
ConditionState = REALLYDAMAGED
Model = UVMarauder_d
Turret = Turret
ShowSubObject = Turret
HideSubObject = TurretUp01 TurretUp02 BarrelFX01
WeaponFireFXBone = PRIMARY BarrelMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY BarrelFX
WeaponLaunchBone = PRIMARY BarrelMS
End
ConditionState = RUBBLE
Model = UVMarauder_d
Turret = Turret
ShowSubObject = Turret
HideSubObject = TurretUp01 TurretUp02 BarrelFX01
WeaponFireFXBone = PRIMARY BarrelMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY BarrelFX
WeaponLaunchBone = PRIMARY BarrelMS
End
; crate upgrade 1
ConditionState = WEAPONSET_CRATEUPGRADE_ONE
Model = UVMarauder
Turret = TurretUp01
ShowSubObject = TurretUp01
HideSubObject = Turret TurretUp02 BarrelUp01FX01
WeaponFireFXBone = PRIMARY BarrelUp01MS
WeaponRecoilBone = PRIMARY BarrelUp01
WeaponMuzzleFlash = PRIMARY BarrelUp01FX
WeaponLaunchBone = PRIMARY BarrelUp01MS
End
ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_ONE
Model = UVMarauder_d
Turret = TurretUp01
ShowSubObject = TurretUp01
HideSubObject = Turret TurretUp02 BarrelUp01FX01
WeaponFireFXBone = PRIMARY BarrelUp01MS
WeaponRecoilBone = PRIMARY BarrelUp01
WeaponMuzzleFlash = PRIMARY BarrelUp01FX
WeaponLaunchBone = PRIMARY BarrelUp01MS
End
ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_ONE
Model = UVMarauder_d
Turret = TurretUp01
ShowSubObject = TurretUp01
HideSubObject = Turret TurretUp02 BarrelUp01FX01
WeaponFireFXBone = PRIMARY BarrelUp01MS
WeaponRecoilBone = PRIMARY BarrelUp01
WeaponMuzzleFlash = PRIMARY BarrelUp01FX
WeaponLaunchBone = PRIMARY BarrelUp01MS
End
; crate upgrade 2
ConditionState = WEAPONSET_CRATEUPGRADE_TWO
Model = UVMarauder
Turret = TurretUp02
ShowSubObject = TurretUp02
HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
WeaponFireFXBone = PRIMARY BarrelUp02MS
WeaponRecoilBone = PRIMARY BarrelUp02
WeaponMuzzleFlash = PRIMARY BarrelUp02FX
WeaponLaunchBone = PRIMARY BarrelUp02MS
End
ConditionState = REALLYDAMAGED WEAPONSET_CRATEUPGRADE_TWO
Model = UVMarauder_d
Turret = TurretUp02
ShowSubObject = TurretUp02
HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
WeaponFireFXBone = PRIMARY BarrelUp02MS
WeaponRecoilBone = PRIMARY BarrelUp02
WeaponMuzzleFlash = PRIMARY BarrelUp02FX
WeaponLaunchBone = PRIMARY BarrelUp02MS
End
ConditionState = RUBBLE WEAPONSET_CRATEUPGRADE_TWO
Model = UVMarauder_d
Turret = TurretUp02
ShowSubObject = TurretUp02
HideSubObject = Turret TurretUp01 BarrelUp02FX01 BarrelUp02FX02
WeaponFireFXBone = PRIMARY BarrelUp02MS
WeaponRecoilBone = PRIMARY BarrelUp02
WeaponMuzzleFlash = PRIMARY BarrelUp02FX
WeaponLaunchBone = PRIMARY BarrelUp02MS
End
TrackMarks = EXTnkTrack.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
; ***DESIGN parameters ***
DisplayName = OBJECT:Marauder
Side = GLADemolitionGeneral
EditorSorting = VEHICLE
TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable)
WeaponSet
Conditions = None
Weapon = PRIMARY REDMarauderTankGun
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = TERTIARY None
End
WeaponSet
Conditions = CRATEUPGRADE_ONE
Weapon = PRIMARY REDMarauderTankGunUpgradeOne
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = TERTIARY None
End
WeaponSet
Conditions = CRATEUPGRADE_TWO
Weapon = PRIMARY REDMarauderTankGunUpgradeTwo
Weapon = TERTIARY TerroristSuicideNotARealWeapon
AutoChooseSources = TERTIARY None
End
ArmorSet
Conditions = None
Armor = TankArmor
DamageFX = TankDamageFX
End
BuildCost = 900
BuildTime = 10.0 ;in seconds
VisionRange = 125
ShroudClearingRange = 300
Prerequisites
Object = Demo_GLAArmsDealer
Science = SCIENCE_MarauderTank
End
ExperienceValue = 100 100 200 300 ;Experience point value at each level
ExperienceRequired = 0 200 300 600 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = Demo_GLATankMarauderCommandSet
; *** AUDIO Parameters ***
VoiceSelect = MarauderTankVoiceSelect
VoiceMove = MarauderTankVoiceMove
VoiceGuard = MarauderTankVoiceMove
VoiceAttack = MarauderTankVoiceAttack
SoundMoveStart = MarauderTankMoveStart
SoundMoveStartDamaged = MarauderTankMoveStart
UnitSpecificSounds
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
VoiceCreate = MarauderTankVoiceCreate
TurretMoveStart = NoSound
TurretMoveLoop = TurretMoveLoop
VoiceSalvage = MarauderTankVoiceSalvage
VoiceCrush = MarauderTankVoiceCrush
VoiceEnter = MarauderTankVoiceMove
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS SALVAGER WEAPON_SALVAGER VEHICLE SCORE
Body = ActiveBody ModuleTag_02
MaxHealth = 500.0
InitialHealth = 500.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 = 860
SubdualDamageHealRate = 500
SubdualDamageHealAmount = 50
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL MarauderLocomotor
Behavior = PhysicsBehavior ModuleTag_04
Mass = 50.0
End
Behavior = AutoHealBehavior ModuleTag_05
HealingAmount = 2
HealingDelay = 1000 ; msec
TriggeredBy = Upgrade_GLAJunkRepair
End
; Catch fire, and explode death
Behavior = SlowDeathBehavior ModuleTag_06
DeathTypes = ALL -CRUSHED -SPLATTED
ProbabilityModifier = 50
DestructionDelay = 1000
DestructionDelayVariance = 300
FX = INITIAL FX_CrusaderCatchFire
OCL = FINAL OCL_MarauderTankDeathEffect
FX = FINAL FX_BattleMasterExplosionOneFinal
End
Behavior = AIUpdateInterface ModuleTag_25
Turret
ControlledWeaponSlots = PRIMARY
TurretTurnRate = 80
RecenterTime = 5000 ; how long to wait during idle before recentering
End
AutoAcquireEnemiesWhenIdle = Yes
End
Behavior = CreateCrateDie ModuleTag_07
CrateData = SalvageCrateData
;CrateData = EliteTankCrateData
;CrateData = HeroicTankCrateData
End
Behavior = TransitionDamageFX ModuleTag_08
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
End
; A crushing defeat
Behavior = FXListDie ModuleTag_09
DeathTypes = NONE +CRUSHED +SPLATTED
DeathFX = FX_CarCrush
End
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
Behavior = SlowDeathBehavior ModuleTag_Death_22
DeathTypes = NONE +SUICIDED +EXPLODED
SinkDelay = 3000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_TerroristExplode
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = FireWeaponWhenDeadBehavior ModuleTag998
DeathWeapon = Demo_SuicideDynamitePackPlusFire
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
DeathTypes = NONE +SUICIDED
End;
Behavior = FireWeaponWhenDeadBehavior ModuleTag999
DeathWeapon = Demo_DestroyedWeapon
StartsActive = No
TriggeredBy = Demo_Upgrade_SuicideBomb
DeathTypes = ALL -SUICIDED
End
Behavior = CommandSetUpgrade ModuleTag_24
CommandSet = Demo_GLATankMarauderCommandSetUpgrade
TriggeredBy = Demo_Upgrade_SuicideBomb
End
Geometry = BOX
GeometryMajorRadius = 17.0
GeometryMinorRadius = 10.0
GeometryHeight = 9.5
GeometryIsSmall = Yes
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
I hope someone can figure out what's wrong and DM me
Thanks
Edited by user Tuesday, June 18, 2019 7:07:41 AM(UTC)
| Reason: Not specified