I'm trying to add a US Navy SEAL unit to Zero Hour, but it's just not working. On the bright side, I don't get any "Serious Error" messages, it just wont let me build him!
Here are the corresponding INI entries for FactionUnit, Commandset and CommandButton.
Object AmericaInfantrySeal SelectPortrait = SASEAL ButtonImage = SASEAL
; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes
;NORMAL STANDING DefaultConditionState Model = CIUNSL_SKN IdleAnimation = CIUNSL_SKL.CIUNSL_STA 0 21 ;Regular spice animations IdleAnimation = CIUNSL_SKL.CIUNSL_IDA IdleAnimation = CIUNSL_SKL.CIUNSL_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_STAND End
ConditionState = MOVING Animation = CIUNSL_SKL.CIUNSL_RNA AnimationMode = LOOP ParticleSysBone = None InfantryDustTrails End
; NORMAL ATTACK ;-------------------------------------------------------- ; Drawing gun ConditionState = PREATTACK_A Animation = CIUNSL_SKL.CIUNSL_ATA1_ST AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End AliasConditionState = PREATTACK_A MOVING AliasConditionState = PREATTACK_A FIRING_A AliasConditionState = PREATTACK_A BETWEEN_FIRING_SHOTS_A
; Firing gun ConditionState = FIRING_A Animation = CIUNSL_SKL.CIUNSL_ATA1_LP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End ConditionState = BETWEEN_FIRING_SHOTS_A Animation = CIUNSL_SKL.CIUNSL_ATA1_LP AnimationMode = LOOP TransitionKey = TRANS_FIRING_A End AliasConditionState = RELOADING_A AliasConditionState = MOVING FIRING_A AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A AliasConditionState = MOVING RELOADING_A
; This transition allows him to put his gun away when he's finished attacking. TransitionState = TRANS_FIRING_A TRANS_STAND Animation = CIUNSL_SKL.CIUNSL_ATA1_ED AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End ;--------------------------------------------------------
ConditionState = DYING Animation = CIUNSL_SKL.CIUNSL_DTA Animation = CIUNSL_SKL.CIUNSL_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End
TransitionState = TRANS_Dying TRANS_Flailing Animation = CIUNSL_SKL.CIUNSL_ADTA1 AnimationMode = ONCE End
ConditionState = DYING EXPLODED_FLAILING Animation = CIUNSL_SKL.CIUNSL_ADTA2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End
ConditionState = DYING EXPLODED_BOUNCING Animation = CIUNSL_SKL.CIUNSL_ADTA3 AnimationMode = ONCE TransitionKey = None End
ConditionState = SPECIAL_CHEERING Animation = CIUNSL_SKL.CIUNSL_SKL AnimationMode = LOOP End
;@TODO - MISSING ANIMATION FILE ;ConditionState = FREEFALL ; Animation = CIUNSL_SKL.CIUNSL_PFL ; AnimationMode = LOOP ; TransitionKey = TRANS_Falling ;End ;AliasConditionState = FREEFALL REALLYDAMAGED ;AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = CIUNSL_SKL.CIUNSL_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute
End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = CIUNSL_SKL.CIUNSL_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = CIUNSL_SKL.CIUNSL_PTD AnimationMode = ONCE End
End ; ***DESIGN parameters *** DisplayName = OBJECT:SEAL Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY SEALCombatRifle Weapon = SECONDARY NONE AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI AutoChooseSources = SECONDARY NONE End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 150 ShroudClearingRange = 150 Prerequisites Object = AmericaBarracks
BuildCost = 500 BuildTime = 10.0 ;in seconds CommandSet = AmericaInfantryCIAAgentCommandSet
ExperienceValue = 20 20 40 60 ;Experience point value at each level ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
; *** AUDIO Parameters *** VoiceSelect = RangerVoiceSelect VoiceMove = RangerVoiceMove VoiceAttack = RangerVoiceAttack
; *** ENGINEERING Parameters ***
RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY CAN_RAPPEL SCORE
Body = ActiveBody ModuleTag_02 MaxHealth = 220.0 InitialHealth = 220.0 End
Behavior = CommandButtonHuntUpdate ModuleTag_02 End
Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Behavior = AutoFindHealingUpdate ModuleTag_04 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End
Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_05 Mass = 5.0 End Behavior = SquishCollide ModuleTag_07 ;nothing End
Behavior = SpecialAbility ModuleTag_Plant01 SpecialPowerTemplate = SpecialAbilityColonelBurtonRemoteCharges UpdateModuleStartsAttack = Yes InitiateSound = CIAAgentVoicePlantRemoteCharge End Behavior = SpecialAbilityUpdate ModuleTag_Plant02 SpecialPowerTemplate = SpecialAbilityColonelBurtonRemoteCharges StartAbilityRange = 0.0 PreparationTime = 0 SpecialObject = RemoteC4Charge MaxSpecialObjects = 8 SpecialObjectsPersistWhenOwnerDies = No ;Charges are removed instantly when owner dies (nobody can detonate). AlwaysValidateSpecialObjects = Yes ;Coupled with the above setting, this one is necessary for code optimization. SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them. UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object. UnpackTime = 5500 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge PackTime = 0 SkipPackingWithNoTarget = Yes ;When yes, the packing/unpacking will be ignored when detonating charges. FlipOwnerAfterUnpacking = Yes FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability UnpackSound = ColonelBurtonPlantCharge LoseStealthOnTrigger = Yes PreTriggerUnstealthTime = 5000 ; in milliseconds End
Behavior = SpecialAbility ModuleTag_Plant03 SpecialPowerTemplate = SpecialAbilityColonelBurtonTimedCharges UpdateModuleStartsAttack = Yes InitiateSound = CIAAgentVoicePlantTimedCharge End Behavior = SpecialAbilityUpdate ModuleTag_Plant04 SpecialPowerTemplate = SpecialAbilityColonelBurtonTimedCharges StartAbilityRange = 0.0 PreparationTime = 0 SpecialObject = TimedC4Charge MaxSpecialObjects = 10 SpecialObjectsPersistWhenOwnerDies = Yes SpecialObjectsPersistent = Yes ;Charges are persistent till lifetime expires or owner detonates them. UniqueSpecialObjectTargets = Yes ;This prevents multiple charges placed on the same object. UnpackTime = 5500 ;NOTE: Modifying this value will require modifying the delay for ColonelBurtonPlantCharge FlipOwnerAfterUnpacking = Yes FleeRangeAfterCompletion = 100.0 ;Runs away after finishing ability UnpackSound = ColonelBurtonPlantCharge LoseStealthOnTrigger = Yes PreTriggerUnstealthTime = 5000 ; in milliseconds
; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_RangerDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_RangerDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_DieByFireUSA OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_DieByToxinGLA OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_DieByToxinGLA OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End Behavior = SlowDeathBehavior ModuleTag_Death07 DeathTypes = NONE +POISONED_GAMMA DestructionDelay = 0 FX = INITIAL FX_DieByToxinGLA OCL = INITIAL OCL_ToxicInfantryGamma End ; --- end Death modules ---
Behavior = PoisonedBehavior ModuleTag_10 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Geometry = CYLINDER GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 12.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT
CommandSet AmericaBarracksCommandSet 1 = Command_ConstructAmericaInfantryRanger 2 = Command_ConstructAmericaInfantryMissileDefender 3 = Command_ConstructAmericaInfantryColonelBurton 4 = Command_ConstructAmericaInfantryPathfinder 5 = Command_ConstructAmericaInfantryMarine 6 = Command_ConstructAmericaInfantryBiohazardTech 7 = Command_UpgradeAmericaRangerFlashBangGrenade 8 = Command_UpgradeAmericaRangerCaptureBuilding 9 = Command_ConstructAmericaInfantryPilot 10 = Command_ConstructAmericaMortarInfantry 11 = Command_ConstructAmericaInfantrySEAL <--------------------- Here it is. 12 = Command_ConstructAmericaInfantryBattlefieldOfficer 13 = Command_SetRallyPoint 14 = Command_Sell End
CommandButton Command_ConstructAmericaInfantrySEAL Command = UNIT_BUILD Object = AmericaInfantrySEAL TextLabel = CONTROLBAR:ConstructAmericaInfantrySEAL ButtonImage = SASeal ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is DescriptLabel = CONTROLBAR:ToolTipUSABuildSEAL End
is ANYONE out there willing and able to help me out???
Thanks in advance, -Fallen Crusader. PCNC.
question is it just that the button is greyed out? if so thats the problem i have been having and peeps kept on telling me the same solution which i tried and it didnt fix it. so i have no frigging clue.
ummmmm.........I'm not sure why you can't build him Jimmy, the only two things I would suggest are;
1) Change the object title so that SEAL is in uppercase, the same as on your command buttons, it shouldn't make a difference though.
2) I've had an enormous amount of difficulty in ZH with units sharing commandsets, in most cases the game would crash or even freeze. Try also giving the SEAL his own commandset, not the CIA officers one. This also shouldn't really make too much difference. Perhaps Kerian, you could try this also.
Hope this helps.
CommandSet = AmericaInfantryCIAAgentCommandSet That's the problem, you gotta have a completely new commandset for the seal. I think that's it.
i believe i tried giving my unit a new comandset. but i shall mess around with it again in a bit.
I found that it has to be exact, like CAPS in the right place. Maybe this is your problem?
I also need little help. Whenever I play a map in the unofficial maps, I get the Techniacl Dificulties message and it quita out? any ideas, and it's not the .INI's
Vietnam Reborn Mod - Leader
20th September 2003
wrong forum wes4. and jimmy w, maby its the prob i had when i msged u on MSN that one day. i fixed it by fixing all thecsf entries and the stuff for the unit in the commandset.ini. gl!