Posted by: Adjiesman - Friday, February 12, 2021 2:23:53 PM
I have completed my Flame Comanche model which has a flamethrower, the problem is this flamethrower can't hit the targets below it. How do you get the flamethrower to hit the target below?
Posted by: Annihilationzh - Friday, February 12, 2021 10:24:18 PM
This is a tough one because flamethrowers are finnicky.
What's actually happening? Is it just refusing to fire or is missing the target? Does it aim ok otherwise?
Posted by: Adjiesman - Saturday, February 13, 2021 6:01:10 AM
[quote=Annihilationzh;150240]This is a tough one because flamethrowers are finnicky.
What's actually happening? Is it just refusing to fire or is missing the target? Does it aim ok otherwise?[/quote]
No, it can shoot it, but it can't aim it down, I've set the pitch code but it still can't. I don't know where it went wrong. This is my flame comanche code:
[code=plain];----------------------------- Weapon Only ------------------------------------
;------------------------------------------------------------------------------
Weapon ComancheFlameWeapon
PrimaryDamage = 10.0
PrimaryDamageRadius = 5.0
SecondaryDamage = 1.0
SecondaryDamageRadius = 10.0
ScatterRadiusVsInfantry = 0.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 200.0
DamageType = FLAME
DeathType = BURNED
WeaponSpeed = 600 ; dist/sec
WeaponRecoil = 0 ; angle to deflect the model when firing
ProjectileObject = ComancheFlameProjectile
FireFX = WeaponFX_DragonTankFlameWeapon
ProjectileDetonationFX = WeaponFX_DragonTankMissileDetonation2
FireSound = DragonTankWeaponLoop
FireSoundLoopTime = 80 ; loop the firing sound until there's this much delay between shots
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 40 ; time between shots, msec
ClipSize = 30 ; how many shots in a Clip (0 == infinite)
ClipReloadTime = 40 ; how long to reload a Clip, msec
ProjectileStreamName = FlamethrowerProjectileStream ; Drawing helper for this weapon. Tracks all projectiles in air
ProjectileCollidesWith = ENEMIES STRUCTURES WALLS SHRUBBERY
AllowAttackGarrisonedBldgs = Yes
End
;----------------------------- Weapon Object Only -----------------------------
;------------------------------------------------------------------------------
Object ComancheFlameProjectile
; Explanation - Particles can't do damage, so this is a fast shooting low
; damage invisible missile launcher with a flame trail for exhaust
; *** ART Parameters ***
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
ConditionState = NONE
Model = NULL
End
End
; Must have a draw module to be allowed to draw detonation FX
; ***DESIGN parameters ***
EditorSorting = SYSTEM
VisionRange = 0.0
ArmorSet
Conditions = None
Armor = ProjectileArmor
DamageFX = None
End
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE
Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End
Behavior = DestroyDie ModuleTag_03
;nothing
End
Behavior = PhysicsBehavior ModuleTag_04
Mass = 1
AllowCollideForce = No ; flames collide, but never apply forces when they do so
End
Behavior = MissileAIUpdate ModuleTag_05
TryToFollowTarget = No
FuelLifetime = 1000
DetonateOnNoFuel = Yes
InitialVelocity = 120 ; in dist/sec
IgnitionDelay = 0
DistanceToTravelBeforeTurning = 2
GarrisonHitKillRequiredKindOf = INFANTRY
GarrisonHitKillForbiddenKindOf = NONE
GarrisonHitKillCount = 2
GarrisonHitKillFX = FX_DragonFlameGarrisonBuildingHit
DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target.
End
Locomotor = SET_NORMAL DragonTankFlameLocomotor
Behavior = BoneFXUpdate ModuleTag_06
PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail01 ; Covers gap at beginning of line
PristineParticleSystem2 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail02
PristineParticleSystem3 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail03
PristineParticleSystem4 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail04
PristineParticleSystem5 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail06
PristineParticleSystem6 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerSmoke01
End
Behavior = BoneFXDamage ModuleTag_07
;nothing
End
Geometry = Sphere
GeometryIsSmall = Yes
GeometryMajorRadius = 2.0
End
;------------------------------------------------------------------------------
Object Flme_EquestriaVehicleComanche
; *** ART Parameters ***
SelectPortrait = SACCommanche_L
ButtonImage = SACCommanche
;UpgradeCameo1 = Upgrade_ComancheRocketPods
UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
UpgradeCameo3 = Upgrade_AmericaCountermeasures
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DModelDraw ModuleTag_01
DefaultConditionState
Model = FireCmche
Turret = Turret
TurretPitch = Turretel01
Animation = FireCmche.FireCmche
AnimationMode = LOOP
WeaponFireFXBone = PRIMARY WeaponA
WeaponLaunchBone = PRIMARY WeaponA
WeaponFireFXBone = SECONDARY WeaponB
WeaponLaunchBone = SECONDARY WeaponB
End
;ConditionState = REALLYDAMAGED
; Model = AVComanche_d
; Animation = AVComanche_d.AVComanche_d
; AnimationMode = LOOP
;End
;ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
; Model = AVComanche_d
; ShowSubObject = MissileUpgrade
; Animation = AVComanche_d.AVComanche_d
; AnimationMode = LOOP
; WeaponFireFXBone = TERTIARY WeaponB
; WeaponLaunchBone = TERTIARY WeaponB
;End
;
;ConditionState = RUBBLE
; Model = AVComanche_d
; Animation = AVComanche_d.AVComanche_d
; AnimationMode = LOOP
;End
;
;ConditionState = RUBBLE SPECIAL_DAMAGED
; Model = AVComanche_d
; HideSubObject = AVComanche_Prop
;End
OkToChangeModelColor = Yes
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Comanche
EditorSorting = VEHICLE
Side = EquestriaFlameGeneral
TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable)
VisionRange = 200.0
ShroudClearingRange = 600
Prerequisites
Object = Flme_EquestriaAirfield
End
WeaponSet
Conditions = None
Weapon = PRIMARY ComancheFlameWeapon
Weapon = SECONDARY UEAComancheAntiTankMissileWeapon
AutoChooseSources = SECONDARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = ComancheArmor
DamageFX = None
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = CountermeasuresComancheArmor
DamageFX = None
End
BuildCost = 1500
BuildTime = 1 ; in seconds
ExperienceValue = 50 50 100 200 ; Experience point value at each level
ExperienceRequired = 0 100 200 400 ; Experience points needed to gain each level
IsTrainable = Yes ; Can gain experience
CommandSet = Flme_EquestriaVehicleComancheCommandSet
; *** AUDIO Parameters ***
VoiceSelect = ComancheVoiceSelect
VoiceMove = ComancheVoiceMove
VoiceGuard = ComancheVoiceMove
VoiceAttack = ComancheVoiceAttack
SoundAmbient = ComancheAmbientLoop
SoundAmbientRubble = NoSound
UnitSpecificSounds
; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
VoiceCreate = ComancheVoiceCreate
SoundEject = PilotSoundEject
VoiceEject = PilotVoiceEject
Afterburner = RaptorAfterburner
VoiceGarrison = ComancheVoiceMove
TurretMoveStart = NoSound
TurretMoveLoop = NoSound
VoiceFireRocketPods = ComancheVoiceAttackRocket
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT PRODUCED_AT_HELIPAD
;Behavior = WeaponSetUpgrade ModuleTag_02
; TriggeredBy = Upgrade_ComancheRocketPods
;End
Behavior = ExperienceScalarUpgrade ModuleTag_03
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End
Body = ActiveBody ModuleTag_04
MaxHealth = 220.0
InitialHealth = 220.0
End
Behavior = FXListDie ModuleTag_05
DeathFX = FX_ComancheStartDeath
End
Behavior = JetAIUpdate ModuleTag_06
MinHeight = 5
NeedsRunway = No
KeepsParkingSpaceWhenAirborne = No
Turret
TurretTurnRate = 120
TurretPitchRate = 120
FirePitch = -60
AllowsPitch = Yes
ControlledWeaponSlots = PRIMARY
End
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL ComancheLocomotor
Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor
Behavior = PhysicsBehavior ModuleTag_07
Mass = 50.0
End
Behavior = HelicopterSlowDeathBehavior ModuleTag_08
DestructionDelay = 99999999 ; the destruction delay
SpiralOrbitTurnRate = 140.0 ; in degrees per second, bigger # = tighter spiral
SpiralOrbitForwardSpeed = 350.0 ; bigger # = larger spiral
SpiralOrbitForwardSpeedDamping = .9999 ; smaller #'s = slow down faster
MaxBraking = 190 ; max braking we can use during death spiral (lower num = wilder spiral)
SoundDeathLoop = ComancheDamagedLoop
MinSelfSpin = 100 ; in degrees per second
MaxSelfSpin = 300 ; in degrees per second
SelfSpinUpdateDelay = 100 ; in milliseconds
SelfSpinUpdateAmount = 10 ; in degrees
FallHowFast = 12.0% ; fraction of gravity, lower = take longer to fall
MinBladeFlyOffDelay = 1500 ; in milliseconds
MaxBladeFlyOffDelay = 1500 ; in milliseconds
AttachParticle = SootySmokeTrail
AttachParticleBone = Propeller02
BladeObjectName = ComancheBlades
BladeBoneName = Propeller01
; Most things that eject pilots do so immediately upon death,
; via use of EjectPilotDie, but Helicopters are a special case...
; they need to do so after their blades are ejected.
OCLEjectPilot = OCL_EjectPilotViaParachute
FXBlade = FX_HelicopterBladeExplosion
OCLBlade = OCL_HelicopterBladeExplosion
FXHitGround = FX_HelicopterHitGround
OCLHitGround = OCL_HelicopterHitGround
FXFinalBlowUp = FX_GroundedHelicopterBlowUp
OCLFinalBlowUp = OCL_GroundedHelicopterBlowUp
DelayFromGroundToFinalDeath = 1500
FinalRubbleObject = ComancheRubbleHull
End
Behavior = TransitionDamageFX ModuleTag_09
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition
End
Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaCountermeasures
End
Behavior = CountermeasuresBehavior ModuleTag_10
TriggeredBy = Upgrade_AmericaCountermeasures
FlareTemplateName = CountermeasureFlare
FlareBoneBaseName = Flare ; Name of the base flare bone (Flare01, Flare02, Flare03)
VolleySize = 2 ; Number of flares launched per volley (requires bones)
VolleyArcAngle = 60.0 ; Max angle of flare relative to forward direction (with VolleySize of 1, flare will always goes straight back).
VolleyVelocityFactor = 2.0 ; Shoots out flares at a stronger velocity with a higher value.
DelayBetweenVolleys = 1000 ; Time between flare volleys
NumberOfVolleys = 3 ; Number of times the volleys will fire before reloading
ReloadTime = 4000 ; After all volleys launched, then reloading must occur. If 0, then reloading occurs at airstrip only.
EvasionRate = 30% ; With active flares, the specified percentage will be diverted.
ReactionLaunchLatency = 0 ; Reaction between getting shot at and the firing of the first volley of countermeasures.
MissileDecoyDelay = 200 ; A reported missile that has been determined to hit a decoy will wait this long before acquiring countermeasures.
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
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 3.0
GeometryHeight = 25.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME
ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length
End
[/code]
Posted by: Annihilationzh - Saturday, February 13, 2021 7:21:39 PM
You may just have to set a minimum range. Aside from that, you can mess around with the pitch settings and hope something works. You have a decent number of settings to play around with:
[code=plain] TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer, default 0 = horizontal]
NaturalTurretPitch = [integer, default 0 = horizontal]
FirePitch = [integer, default 0 = horizontal]
MinPhysicalPitch = [integer, default 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No][/code]
Posted by: Adjiesman - Sunday, February 14, 2021 4:35:25 AM
[quote=Annihilationzh;150242]You may just have to set a minimum range. Aside from that, you can mess around with the pitch settings and hope something works. You have a decent number of settings to play around with:
[code=plain] TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer, default 0 = horizontal]
NaturalTurretPitch = [integer, default 0 = horizontal]
FirePitch = [integer, default 0 = horizontal]
MinPhysicalPitch = [integer, default 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No][/code][/quote]
Ok, thanks for helps. I'll try