When you get technical difficulties, are you looking at the ReleaseCrashInfo in the Generals Data folder each time?
It will tell to you what caused the error.
Go slow, take your time and double check everthing twice. It can be done.
Here is the code for my Goliath Warbot:
;----- Units.ini
;------------------------------------------------------------------------------
Object FederationGoliath
; *** ART Parameters ***
SelectPortrait = GOLIATH_L
ButtonImage = GOLIATH
;UpgradeCameo1 = NONE
;UpgradeCameo2 = NONE
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DTruckDraw ModuleTag_01
OkToChangeModelColor = Yes
DefaultConditionState
Model = GOLIATH
Turret = Turret
WeaponFireFXBone = PRIMARY TurretMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponLaunchBone = PRIMARY TurretMS
Animation = GOLIATH.GOLIATH
AnimationMode = ONCE
End
ConditionState = MOVING
Model = GOLIATH
Turret = Turret
WeaponFireFXBone = PRIMARY TurretMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponLaunchBone = PRIMARY TurretMS
Animation = GOLIATH.GOLIATH_WK
AnimationMode = LOOP
End
ConditionState = REALLYDAMAGED RUBBLE
Model = GOLIATH
Turret = Turret
WeaponFireFXBone = PRIMARY TurretMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponLaunchBone = PRIMARY TurretMS
Animation = GOLIATH.GOLIATH
AnimationMode = ONCE
End
ConditionState = MOVING REALLYDAMAGED RUBBLE
Model = GOLIATH
Turret = Turret
WeaponFireFXBone = PRIMARY TurretMS
WeaponRecoilBone = PRIMARY Barrel
WeaponMuzzleFlash = PRIMARY TurretFX
WeaponLaunchBone = PRIMARY TurretMS
Animation = GOLIATH.GOLIATH_WK
AnimationMode = LOOP
End
;Dust = RocketBuggyDust
;DirtSpray = RocketBuggyDirtSpray
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Goliath
Side = Federation
EditorSorting = VEHICLE
TransportSlotCount = 5 ;how many "slots" we take in a transport (0 == not transportable)
BuildCost = 1000
BuildTime = 5.0 ; in seconds
VisionRange = 200
ShroudClearingRange = 200
WeaponSet
Conditions = None
Weapon = PRIMARY GoliathTankGun
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = TankArmor
DamageFX = TankDamageFX
End
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 = FederationGoliathCommandSet
; *** AUDIO Parameters ***
VoiceSelect = DozerUSAVoiceSelect
VoiceMove = DozerUSAVoiceMove
VoiceGuard = DozerUSAVoiceMove
VoiceTaskComplete = DozerUSAVoiceBuildComplete
SoundMoveStart = DozerUSAMoveStart
SoundMoveStartDamaged = DozerUSAMoveStart
UnitSpecificSounds
VoiceCreate = DozerUSAVoiceCreate
VoiceNoBuild = DozerUSAVoiceBuildNot
VoiceCrush = DozerUSAVoiceCrush
VoiceRepair = DozerUSAVoiceRepair
VoiceDisarm = DozerUSAVoiceClearMine
TruckLandingSound = NoSound
TruckPowerslideSound = NoSound
VoiceEnter = DozerUSAVoiceMove
VoiceBuildResponse = DozerUSAVoiceBuild
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE
Body = ActiveBody ModuleTag_02
MaxHealth = 500.0
InitialHealth = 500.0
End
Behavior = AIUpdateInterface ModuleTag_03
Turret
TurretTurnRate = 120 ; turn rate, in degrees per sec
ControlledWeaponSlots = PRIMARY
End
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL BasicWarbotLocomotor
Behavior = PhysicsBehavior ModuleTag_04
Mass = 75.0
End
Behavior = StealthDetectorUpdate ModuleTag_05
DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec)
;DetectionRange = ??? ;Dustin, enable this for independant balancing!
CanDetectWhileGarrisoned = No ;Garrisoned means being in a structure that you units can shoot out of.
CanDetectWhileContained = No ;Contained means being in a transport or tunnel network.
ExtraRequiredKindOf = MINE ; we can only detect MINES, not other stealthed things
End
Behavior = TransitionDamageFX ModuleTag_06
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
End
; Catch fire, and explode death
Behavior = SlowDeathBehavior ModuleTag_07
DeathTypes = ALL -CRUSHED -SPLATTED
ProbabilityModifier = 100
DestructionDelay = 1500
DestructionDelayVariance = 600
FX = INITIAL FX_CrusaderCatchFire
OCL = FINAL OCL_AmericaDozerExplode
FX = FINAL FX_BattleMasterExplosionOneFinal
End
Behavior = CreateCrateDie ModuleTag_CratesChange
CrateData = SalvageCrateData
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
ClientUpdate = AnimatedParticleSysBoneClientUpdate ModuleTag_22
End
Behavior = FXListDie ModuleTag_23
DeathTypes = NONE +CRUSHED +SPLATTED
DeathFX = FX_CarCrush
End
Behavior = DestroyDie ModuleTag_24
DeathTypes = NONE +CRUSHED +SPLATTED
End
Geometry = BOX
GeometryMajorRadius = 15.0
GeometryMinorRadius = 10.0
GeometryHeight = 15.0
GeometryIsSmall = Yes
Shadow = SHADOW_VOLUME
ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length
End
;---- Locomotor
;--------------------------------------------------------------------------
Locomotor BasicWarbotLocomotor
Surfaces = GROUND RUBBLE
Speed = 30 ; in dist/sec
SpeedDamaged = 25 ; in dist/sec
TurnRate = 90 ; in degrees/sec
TurnRateDamaged = 60 ; in degrees/sec
Acceleration = 30 ; in dist/(sec^2)
AccelerationDamaged = 8 ; in dist/(sec^2)
Braking = 50 ; in dist/(sec^2)
MinTurnSpeed = 0 ; in dist/sec
ZAxisBehavior = NO_Z_MOTIVE_FORCE
Appearance = TWO_LEGS
StickToGround = Yes
GroupMovementPriority = MOVES_MIDDLE; Moves in the middle of a group, behind small arms, ahead of artillery
End
;--- Weapon
;------------------------------------------------------------------------------
Weapon GoliathTankGun
PrimaryDamage = 100.0
PrimaryDamageRadius = 5.0
ScatterRadiusVsInfantry = 10.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
SecondaryDamage = 50.0
SecondaryDamageRadius = 20.0
AttackRange = 250.0
MinTargetPitch = -15 ; we may not target anything outside of this pitch range
MaxTargetPitch = 15 ; ditto
DamageType = ARMOR_PIERCING
DeathType = NORMAL
WeaponSpeed = 300 ; dist/sec
WeaponRecoil = 5 ; angle to deflect the model when firing
ProjectileObject = GenericTankShell
FireFX = WeaponFX_GenericTankGunNoTracer
VeterancyFireFX = HEROIC WeaponFX_HeroicGenericTankGunNoTracer
;ProjectileDetonationFX = WeaponFX_GenericTankShellDetonation
FireSound = OverlordTankWeapon
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 300 ; time between shots, msec
ShotsPerBarrel = 1 ; By default, shoot one shot per barrel
ClipSize = 4 ; how many shots in a Clip (0 == infinite)
ClipReloadTime = 1000 ; how long to reload a Clip, msec
ProjectileCollidesWith = STRUCTURES WALLS
End
;--- Commandset
CommandSet FederationGoliathCommandSet
9 = Command_AttackMove
11 = Command_Guard
12 = Command_Stop
End
|