

some help with .ini files
#1
Posted 19 September 2008 - 18:38
#2
Posted 20 September 2008 - 05:56
Also you could just extract the INIs into your ZH directory in the Data/INI folder then use notepad to edit them. It's much easier.
Though doing this interferes with with online play and any mod you have installed.
#3
Posted 23 September 2008 - 20:38
I copied all my zero hour files c:program files/ ea games so i won't fuck up my original game. And after that i extracted the .ini file for airforce general and changed the attack of a comanche. So when i start general from this directory i get a technical difficulties error now. What went wrong?
#4
Posted 24 September 2008 - 00:45
#5
Posted 25 September 2008 - 02:35
i have some problem with .INI files too when i try to add a new item..
this is my .INI code:
CommandButton.INI
CommandButton Spec_Command_ConstructGLAInfantryJarmenKell
Command = UNIT_BUILD
Object = Spec_GLAInfantryJarmenKell
TextLabel = CONTROLBAR:ConstructGLAInfantryJarmenKell
ButtonImage = SUJarmenKell1 ;NOTE: Asset spelling mistake
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipGLABuildJarmenKell
CommandSet.INI
CommandSet Spec_ChinaBarracksCommandSet
1 = Spec_Command_ConstructChinaInfantryRedguard
2 = Spec_Command_ConstructChinaInfantryTankHunter
3 = Spec_Command_ConstructChinaInfantryFlameThrower
4 = Spec_Command_ConstructChinaInfantryHacker
5 = Spec_Command_ConstructChinaInfantryBlackLotus
6 = Spec_command_ConstructAmericaInfantryPathfinder
7 = Spec_command_constructGLAInfantryJarmenKell
11 = Command_GLAUpgradeKVSKRifle
12 = Command_UpgradeChinaRedguardCaptureBuilding
13 = Command_UpgradeChinaMines
14 = Command_Sell
End
SpecialWeaponGeneral.INI
;----------------------------------------------------------------------------
Object Spec_GLAInfantryJarmenKell
Behavior = AutoHealBehavior ModuleTag_workaroundbecausestupidautohealdoesntwork
HealingAmount = 4
HealingDelay = 600 ; msec
HealingDelay = 1000
TriggeredBy = Upgrade_Veterancy_ELITE
End
; *** ART Parameters ***
SelectPortrait = SUDemoJarmenKell_L
ButtonImage = SUDemoJarmenKell
UpgradeCameo1 = Upgrade_GLAAPBullets
UpgradeCameo2 = Upgrade_GLAKellBetterRifle
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
; --- idle
DefaultConditionState
Model = UIHERO_SKN
IdleAnimation = UIHERO_SKL.UIHERO_STA 0 21
IdleAnimation = UIHERO_SKL.UIHERO_IDA
IdleAnimation = UIHERO_SKL.UIHERO_IDB
AnimationMode = ONCE
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
WeaponFireFXBone = SECONDARY Muzzle
WeaponMuzzleFlash = SECONDARY MuzzleFX
TransitionKey = TRANS_Stand
End
ConditionState = REALLYDAMAGED
IdleAnimation = UIHERO_SKL.UIHERO_ISTA 0 30
IdleAnimation = UIHERO_SKL.UIHERO_IIDA
IdleAnimation = UIHERO_SKL.UIHERO_IIDB
AnimationMode = ONCE
TransitionKey = TRANS_StandInjured
End
TransitionState = TRANS_Stand TRANS_StandInjured
Animation = UIHERO_SKL.UIHERO_ISTAHIT
AnimationMode = ONCE
End
; --- attack
ConditionState = FIRING_A
Animation = UIHERO_SKL.UIHERO_ATA
AnimationMode = ONCE
TransitionKey = TRANS_FiringA
AnimationSpeedFactorRange = 1.5 1.5
End
ConditionState = BETWEEN_FIRING_SHOTS_A
Animation = UIHERO_SKL.UIHERO_ATA
AnimationMode = MANUAL
Flags = START_FRAME_LAST
WaitForStateToFinishIfPossible = TRANS_FiringA
End
AliasConditionState = RELOADING_A
ConditionState = FIRING_A REALLYDAMAGED
Animation = UIHERO_SKL.UIHERO_IATA2
AnimationMode = ONCE
TransitionKey = TRANS_FiringAInjured
AnimationSpeedFactorRange = 1.5 1.5
End
ConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
Animation = UIHERO_SKL.UIHERO_IATA2
AnimationMode = MANUAL
Flags = START_FRAME_LAST
WaitForStateToFinishIfPossible = TRANS_FiringAInjured
End
AliasConditionState = RELOADING_A REALLYDAMAGED
TransitionState = TRANS_FiringA TRANS_FiringAInjured
Animation = UIHERO_SKL.UIHERO_IATAHIT
AnimationMode = ONCE
End
; --- attack with sniper vehicle kill weapon
ConditionState = FIRING_B
Animation = UIHERO_SKL.UIHERO_ATA
AnimationMode = ONCE
TransitionKey = TRANS_FiringB
AnimationSpeedFactorRange = 1.5 1.5
End
AliasConditionState = FIRING_C
ConditionState = BETWEEN_FIRING_SHOTS_B
Animation = UIHERO_SKL.UIHERO_ATA
AnimationMode = MANUAL
Flags = START_FRAME_LAST
WaitForStateToFinishIfPossible = TRANS_FiringB
End
AliasConditionState = RELOADING_B
AliasConditionState = BETWEEN_FIRING_SHOTS_C
AliasConditionState = RELOADING_C
ConditionState = FIRING_B REALLYDAMAGED
Animation = UIHERO_SKL.UIHERO_IATA2
AnimationMode = ONCE
TransitionKey = TRANS_FiringAInjuredB
AnimationSpeedFactorRange = 1.5 1.5
End
AliasConditionState = FIRING_C REALLYDAMAGED
ConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED
Animation = UIHERO_SKL.UIHERO_IATA2
AnimationMode = MANUAL
Flags = START_FRAME_LAST
WaitForStateToFinishIfPossible = TRANS_FiringAInjuredB
End
AliasConditionState = RELOADING_B REALLYDAMAGED
AliasConditionState = BETWEEN_FIRING_SHOTS_C REALLYDAMAGED
AliasConditionState = RELOADING_C REALLYDAMAGED
TransitionState = TRANS_FiringB TRANS_FiringAInjuredB
Animation = UIHERO_SKL.UIHERO_IATAHIT
AnimationMode = ONCE
End
; --- moving
ConditionState = MOVING
Animation = UIHERO_SKL.UIHERO_RNA2 30
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = None
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING FIRING_A
AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A
AliasConditionState = MOVING RELOADING_A
ConditionState = MOVING REALLYDAMAGED
Animation = UIHERO_SKL.UIHERO_IRNA 30
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = None
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING FIRING_A REALLYDAMAGED
AliasConditionState = MOVING BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
AliasConditionState = MOVING RELOADING_A REALLYDAMAGED
; --- cheering
ConditionState = SPECIAL_CHEERING
Animation = UIHERO_SKL.UIHERO_CHA
AnimationMode = LOOP
End
ConditionState = SPECIAL_CHEERING REALLYDAMAGED
Animation = UIHERO_SKL.UIHERO_ICHA
AnimationMode = LOOP
End
; --- dying
ConditionState = DYING
Animation = UIHERO_SKL.UIHERO_DTA
Animation = UIHERO_SKL.UIHERO_DTB
Animation = UIHERO_SKL.UIHERO_IDTA
Animation = UIHERO_SKL.UIHERO_IDTB
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End
TransitionState = TRANS_Dying TRANS_Flailing
Animation = UIHERO_SKL.UIHERO_ADTG21
AnimationMode = ONCE
End
ConditionState = DYING EXPLODED_FLAILING
Animation = UIHERO_SKL.UIHERO_ADTG22
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End
ConditionState = DYING EXPLODED_BOUNCING
Animation = UIHERO_SKL.UIHERO_ADTG23
AnimationMode = ONCE
TransitionKey = None
End
; --- falling
ConditionState = FREEFALL
Animation = UIHERO_SKL.UIHERO_PFL
AnimationMode = LOOP
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL REALLYDAMAGED
AliasConditionState = FREEFALL DYING
ConditionState = PARACHUTING
Animation = UIHERO_SKL.UIHERO_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 = UIHERO_SKL.UIHERO_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 = UIHERO_SKL.UIHERO_PTD
AnimationMode = ONCE
End
TransitionState = TRANS_Chute TRANS_StandInjured
Animation = UIHERO_SKL.UIHERO_PTD
AnimationMode = ONCE
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:JarmenKell
Side = ChinaSpecialWeaponsGeneral
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)
MaxSimultaneousOfType = 1
MaxSimultaneousLinkKey = Jarmen
WeaponSet
Conditions = None
Weapon = PRIMARY GLAJarmenKellRifle
Weapon = SECONDARY GLAJarmenKellVehiclePilotSniperRifle
Weapon = TERTIARY GLAJarmenKellHelicopterPilotSniperRifle
AutoChooseSources = SECONDARY NONE
AutoChooseSources = TERTIARY NONE
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY GLAJarmenKellRifle
Weapon = SECONDARY GLAJarmenKellKVSKVehiclePilotSniperRifle
Weapon = TERTIARY GLAJarmenKellHelicopterPilotSniperRifle
AutoChooseSources = SECONDARY NONE
AutoChooseSources = TERTIARY NONE
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
VisionRange = 400
ShroudClearingRange = 400
Prerequisites
Object = Spec_ChinaBarracks
End
BuildCost = 1500
BuildTime = 10.0 ;in seconds
ExperienceValue = 50 50 100 150 ;Experience point value at each level
ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = Spec_GLAInfantryJarmenKellCommandSet
; *** AUDIO Parameters ***
VoiceSelect = DemoKellVoiceSelect
VoiceMove = JarmenKellVoiceMove
VoiceGuard = JarmenKellVoiceMove
VoiceAttack = JarmenKellVoiceAttack
VoiceFear = JarmenKellVoiceFear
SoundStealthOn = StealthOn
SoundStealthOff = StealthOff
UnitSpecificSounds
VoiceCreate = DemoKellVoiceCreate
VoiceSnipePilot = JarmenKellVoiceSnipe
VoiceGarrison = JarmenKellVoiceGarrison
VoiceEnter = JarmenKellVoiceMove
VoiceEnterHostile = JarmenKellVoiceMove
VoiceGetHealed = JarmenKellVoiceMove
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SALVAGER STEALTH_GARRISON SCORE HERO CANNOT_RETALIATE
Body = ActiveBody ModuleTag_02
MaxHealth = 200.0
InitialHealth = 200.0
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End
Locomotor = SET_NORMAL JarmenKellLocomotor
Behavior = PhysicsBehavior ModuleTag_04
Mass = 5.0
End
Behavior = SpecialAbility ModuleTag_Power01
SpecialPowerTemplate = SpecialAbilityKellDisableBuilding
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
End
Behavior = SpecialAbilityUpdate ModuleTag_Power02
SpecialPowerTemplate = SpecialAbilityKellDisableBuilding
StartAbilityRange = 225.0
UnpackTime = 1000
PackTime = 0
PreparationTime = 1
PersistentPrepTime = 1
EffectDuration = 20000
UnpackSound = JarmenKellVoiceSnipe
PrepSoundLoop = JarmenKellKVSKWeaponSnipe
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_Power03
SpecialPowerTemplate = SpecialAbilityKellDisableBuilding
TriggeredBy = Upgrade_GLAKellBetterRifle
End
Behavior = StealthUpdate ModuleTag_06
StealthDelay = 2000 ; msec
StealthForbiddenConditions = ATTACKING
InnateStealth = Yes
OrderIdleEnemiesToAttackMeUponReveal = Yes
EnemyDetectionEvaEvent = EnemyJarmenKellDetected
OwnDetectionEvaEvent = OwnJarmenKellDetected
End
Behavior = CommandButtonHuntUpdate ModuleTag_07 ; allows use of command button hunt script with this unit.
End
Behavior = WeaponBonusUpgrade ModuleTag_08
TriggeredBy = Upgrade_GLAAPBullets
End
;Hero units can't be squished!
;Behavior = SquishCollide ModuleTag_09
; ;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_JarmenKellDie
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_JarmenKellDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireGLA
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_14
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
Behavior = SpecialAbility ModuleTag_18
SpecialPowerTemplate = Demo_SpecialAbilityKellRemoteCharges
UpdateModuleStartsAttack = Yes
InitiateSound = DemoKellVoiceAttackDemo
End
Behavior = SpecialAbilityUpdate ModuleTag_19
SpecialPowerTemplate = Demo_SpecialAbilityKellRemoteCharges
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_20
SpecialPowerTemplate = Demo_SpecialAbilityDemoKellTimedCharges
UpdateModuleStartsAttack = Yes
InitiateSound = DemoKellVoiceAttackDemo
End
Behavior = SpecialAbilityUpdate ModuleTag_11
SpecialPowerTemplate = Demo_SpecialAbilityDemoKellTimedCharges
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 = DemoKellVoiceAttackDemo
LoseStealthOnTrigger = Yes
PreTriggerUnstealthTime = 5000 ; in milliseconds
End
Behavior = WeaponSetUpgrade ModuleTag_agaffel
TriggeredBy = Upgrade_GLAKellBetterRifle
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
End
and this error report:
Release Crash at Thu Sep 25 09:13:50 2008
; Reason Error parsing INI file 'Data\INI\CommandButton.ini' (Line: 'CommandButton Spec_Command_ConstructGLAInfantryJarmenKell')
Last error:
Current stack:
is somebody can help me pliz..
Edited by jend_maggot, 25 September 2008 - 02:36.
#7
Posted 25 September 2008 - 02:54
btw thank's for your help :crazydance:
but my barrack error now...
Release Crash at Thu Sep 25 09:51:48 2008
; Reason Error parsing INI file 'Data\INI\CommandSet.ini' (Line: 'CommandSet Spec_ChinaBarracksCommandSet ')
Last error:
Current stack:
Edited by jend_maggot, 25 September 2008 - 03:01.
#8
Posted 25 September 2008 - 11:43
IE this - 7 = Spec_command_constructGLAInfantryJarmenKell
Should be - 7 = Spec_Command_ConstructGLAInfantryJarmenKell
:Command buttons MUST be identical to the entry in the commandset.
Edited by Insomniac!, 25 September 2008 - 11:45.
#9
Posted 26 September 2008 - 08:52
#10
Posted 26 September 2008 - 09:06
the map .ini is only for editing the map and map conditions, not the whole game
Edited by Zeke, 26 September 2008 - 09:07.
#11
Posted 02 October 2008 - 17:34
#12
Posted 02 October 2008 - 17:48
;------------------------------------------------------------------------------
Weapon GattlingTankGun
PrimaryDamage = 50.0 ; damage, duh
PrimaryDamageRadius = 5.0 ; 0 primary radius means "hits only intended victim"
AttackRange = 150.0 ; range
DamageType = JET_MISSILE; damage type
DeathType = EXPLODED ; death type, how they die
WeaponSpeed = 300 ; speed of projectile, missiles don't really need this because they have locomoters
ProjectileObject = ComancheAntiTankMissile ; the missile used
FireFX = WeaponFX_GattlingTankMachineGunFire ; fire FX
VeterancyFireFX = HEROIC WeaponFX_GattlingTankMachineGunFireWithRedTracers ; HEROIC Fire FX
FireSound = ComancheMissileWeapon ; fire sound
RadiusDamageAffects = ALLIES ENEMIES NEUTRALS ; what the weapon can hit
DelayBetweenShots = 400 ; time between shots in a clip, msec
ClipSize = 0 ; how many shots in a Clip (0 = infinite)
ClipReloadTime = 0 ; how long to reload a Clip, msec
ContinuousFireOne = 2; How many shots before getting "CONTINUOUS_FIRE_MEAN RATE_OF_FIRE" bonus
ContinuousFireTwo = 6; How many shots before getting "CONTINUOUS_FIRE_FAST RATE_OF_FIRE" bonus
ContinuousFireCoast = 1000; msec we can coast without firing before we lose Continuous Fire
WeaponBonus = CONTINUOUS_FIRE_MEAN RATE_OF_FIRE 200%; rate of fire increased by what "%"
WeaponBonus = CONTINUOUS_FIRE_FAST RATE_OF_FIRE 300%; ditto
WeaponBonus = PLAYER_UPGRADE DAMAGE 125%; ChainGun upgrade
AntiAirborneVehicle = No; ground weapon can't hit air
AntiAirborneInfantry = No; nor flying infantry
AntiGround = Yes; self explanatory
End
codes plus some explanation
Edited by Zeke, 02 October 2008 - 17:50.
#13
Posted 05 October 2008 - 11:06
#14
Posted 05 October 2008 - 14:12
2. Open INIZH.big and extract the contents into your main ZH directory.
3. In your main ZH directory there now should be a data/INI folder where all the INIs are located
4. Open weapon.INI with a text editor like notepad (but I recommend notepad++)
5. Replace the original gattling tank weapon with the one I posted (they should have the same name).
6. save your work then exit
7. open ZH and play
#15
Posted 07 October 2008 - 15:34
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users