Lord of the Dead
16 years ago
Hey there! I need some help with Extracting, Editing and Encoding sound files. I do have Final big. but i don't know where to go from there. I want to customize the what the units say when you click on them and tell them what to do. How do i do that? and after doing so, How do i put them back into the game so that they sound like what you edited?

Thanks

Lord of the Dead
The time for flying is now past. Our battlefield is now beneath the earth...The gate to tomorrow is not the light of heaven, but the darkness of the depths of the earth......
A Quote from Final Fantasy 7
Character - Vincent
Sponsor
bel3ve
16 years ago
If your adding a new sound its just a simple but long process.
This is for zero hour.
The sound file should be a wav with a project hertz of 44100 or 22050. (Don't ask me why)
The wav file should go in Command & Conquer(tm) Generals Zero Hour / Data / Audio / Sounds
- If any of the folders data audio or sounds are not there, just make them.
- You might have a different name for the default c&c generals zh folder.
- Remember the name of the wav EXACTLY
- All the sounds can be found in the Sound related BIG files. (speechenglish.big)
From there extract INIZH.big using FinalBig.
Take your SoundEffects.ini and these others.
- For Weapons - weapon.ini
- For things like my unit just died (explosion) - FX list
- For a person talking - the ini file under ini / object <- from there its pretty easy to find what file your units in (americainfantry😄 )
- There are some more but that's most of them .
In SoundEffects.ini open it up and use this code
- Voice
AudioEvent (NameYourSound)
  Sounds = (WAVFileNameEXCACTLY)
  Control = random
  Volume  = 60
  Type = ui voice player
End
- Sound(like a weapon shooting)
AudioEvent (NameYourSound)
  Sounds      =(WAVFileNameEXCACTLY)
  Volume      = 95
  Limit       = 3 ;or any other number limit...
  PitchShift  = -10  10
 VolumeShift  = -20
  Control     = interrupt random
  Priority    = normal
  Type        = world shrouded everyone
End
- The WAV file name should be the name of your audio sound
- The Name your sound is any name you want your sound to be called (easier to just name it the audio files name)
- There are more sound types and different controls, priorities etc. Just hunt for a sound with them to find them.
After That the sounds go here


- FX list
FXList YetAnotherNameForTheSound
Sound
Name = TheSoundNameUsedIn(YourSoundName)
End
End

- From there FX's can be used in different places. Death of a Unit Rocket Shooting, and others. Its only there for complicated sounds with particles or just particles...




- Weapon
Weapon MarauderTankGun
PrimaryDamage = 60.0
PrimaryDamageRadius = 5.0
ScatterRadiusVsInfantry = 10.0 ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
AttackRange = 170.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 = 10
ProjectileObject = MarauderTankShell
FireFX = WeaponFX_GenericTankGunNoTracer
; <- A place for an FX list!
VeterancyFireFX = HEROIC WeaponFX_HeroicGenericTankGunNoTracer ; look up
ProjectileDetonationFX = WeaponFX_GenericTankShellDetonation
FireSound = MarauderTankWeapon

RadiusDamageAffects = ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 2000 ; time between shots, msec
ClipSize = 0 ; how many shots in a Clip (0 == infinite)
ClipReloadTime = 0 ; how long to reload a Clip, msec

; note, these only apply to units that aren't the explicit target
; (ie, units that just happen to "get in the way"... projectiles
; always collide with the Designated Target, regardless of these flags
ProjectileCollidesWith = STRUCTURES WALLS

End


- Voice


;------------------------------------------------------------------------------
Object AmericaInfantryMissileDefender

; *** ART Parameters ***
SelectPortrait = SAMissleDefender_L
ButtonImage = SAMissleDefender

UpgradeCameo1 = Upgrade_AmericaAdvancedTraining
UpgradeCameo2 = Upgrade_AmericaChemicalSuits
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE

Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes

;***NOTE***
;A little history -- the MissileDefender now uses the assets of the TankHunter.
;The TH uses assets of the GLA tunnel defender, and the TD uses assets of the NEW
;MD. It was a design/art/code decision because the new missile defender animations
;don't suit that of a mobile/offensive unit with packing and unpacking.

DefaultConditionState
Model = NITHNT_SKN
IdleAnimation = NITHNT_SKL.NITHNT_STA 0 30
IdleAnimation = NITHNT_SKL.NITHNT_IDA
IdleAnimation = NITHNT_SKL.NITHNT_IDB
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.8 1.2
TransitionKey = TRANS_Stand
WeaponMuzzleFlash = PRIMARY MuzzleFX
WeaponFireFXBone = PRIMARY Muzzle
WeaponLaunchBone = PRIMARY Muzzle
WeaponLaunchBone = SECONDARY Muzzle

End
AliasConditionState = REALLYDAMAGED

ConditionState = FIRING_A
Animation = NITHNT_SKL.NITHNT_ATA
AnimationMode = ONCE
TransitionKey = TRANS_START_FIRING
End
AliasConditionState = FIRING_A REALLYDAMAGED

ConditionState = BETWEEN_FIRING_SHOTS_A
Animation = NITHNT_SKL.NITHNT_STA
AnimationMode = ONCE
; this is basically a trick: this guy has a nontrivial animation for firing,
; and a long recycle time between shots. we want him to finish his fire animation
; (unless he's ordered to do something else), so this is just a handy trick that
; says, "if the previous state had this transition key, allow it to finish before
; switching to us, if possible".
WaitForStateToFinishIfPossible = TRANS_START_FIRING
End
AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED

ConditionState = MOVING
Animation = NITHNT_SKL.NITHNT_RNA 20
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = None
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING REALLYDAMAGED

ConditionState = RELOADING_A
Animation = NITHNT_SKL.NITHNT_ATA 10
AnimationMode = ONCE
;WeaponLaunchBone = PRIMARY WeaponA
End
AliasConditionState = MOVING RELOADING_A
AliasConditionState = MOVING RELOADING_A REALLYDAMAGED

ConditionState = DYING
Animation = NITHNT_SKL.NITHNT_DTA
Animation = NITHNT_SKL.NITHNT_DTB
AnimationSpeedFactorRange = 0.9 1.25
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End

TransitionState = TRANS_Dying TRANS_Flailing
Animation = NITHNT_SKL.NITHNT_ADTA1
AnimationMode = ONCE
End

ConditionState = DYING EXPLODED_FLAILING
Animation = NITHNT_SKL.NITHNT_ADTA2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End

ConditionState = DYING EXPLODED_BOUNCING
Animation = NITHNT_SKL.NITHNT_ADTA3
AnimationMode = ONCE
TransitionKey = None
End

;PARACHUTING ANIMATIONS
ConditionState = FREEFALL
Animation = NITHNT_SKL.NITHNT_PFL
AnimationMode = LOOP
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL REALLYDAMAGED
AliasConditionState = FREEFALL DYING

ConditionState = PARACHUTING
Animation = NITHNT_SKL.NITHNT_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 = NITHNT_SKL.NITHNT_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 = NITHNT_SKL.NITHNT_PTD
AnimationMode = ONCE
End

End

; ***DESIGN parameters ***
DisplayName = OBJECT:MissileTeam
Side = America
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)

WeaponSet
Conditions = None
Weapon = PRIMARY MissileDefenderMissileWeapon
Weapon = SECONDARY MissileDefenderLaserGuidedMissileWeapon ;Controlled by special ability
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
AutoChooseSources = SECONDARY NONE
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = ChemSuitHumanArmor
DamageFX = InfantryDamageFX
End

VisionRange = 150
ShroudClearingRange = 400
Prerequisites
Object = AmericaBarracks

End

BuildCost = 300
BuildTime = 5.0 ;in seconds

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
CommandSet = AmericaInfantryMissileDefenderCommandSet

; *** AUDIO Parameters ***
VoiceSelect = MissileDefenderVoiceSelect
VoiceMove = MissileDefenderVoiceMove
VoiceGuard = MissileDefenderVoiceMove
VoiceAttack = MissileDefenderVoiceAttack
VoiceAttackAir = MissileDefenderVoiceAttack
VoiceFear = MissileDefenderVoiceFear

UnitSpecificSounds
VoiceGarrison = MissileDefenderVoiceGarrison
VoiceCreate = MissileDefenderVoiceCreate
VoiceEnter = MissileDefenderVoiceMove
VoiceGetHealed = MissileDefenderVoiceMove
End

; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE


Body = ActiveBody ModuleTag_02
MaxHealth = 100.0
InitialHealth = 100.0
End

Behavior = ArmorUpgrade ModuleTag_Armor01
TriggeredBy = Upgrade_AmericaChemicalSuits
End

Behavior = ExperienceScalarUpgrade ModuleTag_03
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End

Behavior = AIUpdateInterface ModuleTag_04
AutoAcquireEnemiesWhenIdle = Yes
End

Behavior = AutoFindHealingUpdate ModuleTag_05 ; 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 MissileDefenderLocomotor

Behavior = PhysicsBehavior ModuleTag_06
Mass = 5.0
End

Behavior = SpecialAbility ModuleTag_08
SpecialPowerTemplate = SpecialAbilityMissileDefenderLaserGuidedMissiles
UpdateModuleStartsAttack = Yes
InitiateSound = MissileDefenderVoiceAttackLaser
End
Behavior = SpecialAbilityUpdate ModuleTag_09
SpecialPowerTemplate = SpecialAbilityMissileDefenderLaserGuidedMissiles
StartAbilityRange = 200.0
AbilityAbortRange = 250.0 ;If the target moves outside this range, abort.
PreparationTime = 1000
PersistentPrepTime = 500
SpecialObject = LaserBeam
SpecialObjectAttachToBone = Muzzle01
End
;Added by JMC on 7/12/03 so that the skirmish AI can tell the missile defenders to hunt using
;the laser guided missiles.
Behavior = CommandButtonHuntUpdate ModuleTag_CBHunt ; allows use of command button hunt script with this unit.
End

Behavior = SquishCollide ModuleTag_10
;nothing
End


; --- 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_MissileDefenderDie
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_MissileDefenderDie
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_DieByToxinUSA
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_DieByToxinUSA
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_DieByToxinUSA
OCL = INITIAL OCL_ToxicInfantryGamma
End
; --- end Death modules ---

Behavior = PoisonedBehavior ModuleTag_13
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 = 7.0
GeometryMinorRadius = 7.0
GeometryHeight = 12.0
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 14;
ShadowSizeY = 14;
ShadowTexture = ShadowI;
BuildCompletion = APPEARS_AT_RALLY_POINT

End

When your done with that here is where those files are saved.
Weapon.ini goes to C&C GeneralsZh / Data / INI
- Sound Effects.ini See Above
- FX list See Above
- Weapon.ini See Above
- Any file with units in them C&C GeneralsZh / Data / INI / Object




Notes
Sorry if this is a bit confusing, its just a lot of steps. I will be glad to clear up a part I explained badly.
Sorry also for the late reply. I had to go somewhere and left my computer on for the night.
Wow I typed a lot.

PS - I'm not gone yet!😮
UserPostedImage
Lord of the Dead
16 years ago
To be exact..It's really C&C First Decade: Generals Zero Hour...Not just Generals Zero Hour
The time for flying is now past. Our battlefield is now beneath the earth...The gate to tomorrow is not the light of heaven, but the darkness of the depths of the earth......
A Quote from Final Fantasy 7
Character - Vincent
MicScoTho
16 years ago

To be exact..It's really C&C First Decade: Generals Zero Hour...Not just Generals Zero Hour

Lord of the Dead wrote:


They're almost exactly the same, really except for their default installation location .
UserPostedImage 
Lord of the Dead
16 years ago
No..apparently the are not the same.
There is no "Generals Zero Hour / Data / Audio / Sounds" folder i can't seem to find it.
Here are the folders that are in the "Data" folder:

Cursors
english
INI
Movies
Scripts
Waterplane

That's all there is in the "Data" folder.

by the way i am running Windows Vista...does that make any difference?

Hope this helps
The time for flying is now past. Our battlefield is now beneath the earth...The gate to tomorrow is not the light of heaven, but the darkness of the depths of the earth......
A Quote from Final Fantasy 7
Character - Vincent
MicScoTho
16 years ago
Those folders don't exist by default in Zero Hour without TFD either. Just create them.


The wav file should go in Command & Conquer(tm) Generals Zero Hour / Data / Audio / Sounds
- If any of the folders data audio or sounds are not there, just make them.

Bel3ve wrote:


UserPostedImage 
Lord of the Dead
16 years ago
Ok...i have the Unit voice sound files...now what do i do? How do i compile them? and where do i put the sound files? Oh! I forgot to tell you that i am adding on to an old mod, and need some help with it...can anyone help me out?

Thanks

Lord of the Dead
The time for flying is now past. Our battlefield is now beneath the earth...The gate to tomorrow is not the light of heaven, but the darkness of the depths of the earth......
A Quote from Final Fantasy 7
Character - Vincent
bel3ve
16 years ago
it should all be listed in the first 10 lines
UserPostedImage
Sky Demon
16 years ago
I'm intrigued. How would the steps you gave "Bel3ve" be different if you were to want to add in you own background game music.

What I mean by "background game music" is the music that plays in the background when playing a Skirmish match with each faction.
Lord of the Dead
16 years ago
Ok...i still don't understand how you compile the ".WAV" file and after you do that where do put it. Can you please write a more "in-depth" tutorial on how to put the ".WAV" file into the ".big" file? Like what series of sequences do i do? and what ".INI? file do i put the unit voices in?

Thanks

Lord of the Dead
The time for flying is now past. Our battlefield is now beneath the earth...The gate to tomorrow is not the light of heaven, but the darkness of the depths of the earth......
A Quote from Final Fantasy 7
Character - Vincent