Hi there this is my 1st post too bad it's to request help. But for the life of me and I know this maybe some sort of oversight on my part but I can't seem to get one faction/general's unit to be created by another faction/general. In this instance I'm using the Project Raptor 5 mod and I want to make the Boss General build a HeavyGunner. what am I missing I've looked all over the place to find out how to do this seemingly simple task. I changed the BossGeneral INI file, the command sets [which work] and added a commandbutton. When I go to my barracks to create the unit, the button is grayed out and it crashes the game. Please someone lemme know what I'm missing here. Thanx in advance.
Code:
Release Crash at Sat Aug 20 12:09:28 2005
; Reason Error parsing INI file 'Data\INI\Object\BossGeneral.ini' (Line: 'Object Boss_ChinaInfantryHeavyGunner ')
Code:
;------------------------------------------------------------------------------
Object Boss_ChinaInfantryHeavyGunner
; *** ART Parameters ***
SelectPortrait = SNHeavySoldier_L
ButtonImage = SNHeavySoldier
UpgradeCameo1 = Upgrade_Fanaticism
; UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
; UpgradeCameo3 = Upgrade_ChinaStunBullets
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DModelDraw ModuleTag_01
OkToChangeModelColor = Yes
; this says "we don't use these condition states at all, so completely
; ignore them for purposes of matchmaking"... this is useful to help
; reduce the number of AliasConditionState clauses you must add in
; order to avoid ambiguity in some cases.
IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A
; ------- Standing-Around Animations
DefaultConditionState
Model = NIFOOTMAN
IdleAnimation = NIFOOTMAN_S.NIFOOTMAN_ST 0 35
IdleAnimation = NIFOOTMAN_S.NIFOOTMAN_I1
IdleAnimation = NIFOOTMAN_S.NIFOOTMAN_I2
AnimationMode = ONCE
WeaponFireFXBone = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX
TransitionKey = TRANS_Stand
End
ConditionState = REALLYDAMAGED
IdleAnimation = NIFOOTMAN_S.NIFOOTMAN_ST
AnimationMode = ONCE
TransitionKey = TRANS_StandDamaged
End
; ------- Machine Gun Animations
ConditionState = USING_WEAPON_A
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = LOOP
TransitionKey = TRANS_Firing
End
ConditionState = USING_WEAPON_A REALLYDAMAGED
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = LOOP
TransitionKey = TRANS_FiringDamaged
End
; ------- Firing-related Transitions
TransitionState = TRANS_Firing TRANS_FiringDamaged
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = ONCE
End
TransitionState = TRANS_Stand TRANS_Firing
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = ONCE
End
TransitionState = TRANS_Firing TRANS_Stand
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = ONCE
End
TransitionState = TRANS_StandDamaged TRANS_FiringDamaged
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = ONCE
End
TransitionState = TRANS_FiringDamaged TRANS_StandDamaged
Animation = NIFOOTMAN_S.NIFOOTMAN_A1
AnimationMode = ONCE
End
; ------------- Damage Transitions --------------------
TransitionState = TRANS_StandDamaged TRANS_RunDamaged
Animation = NIFOOTMAN_S.NIFOOTMAN_ST
AnimationMode = ONCE
AnimationSpeedFactorRange = 2 2
End
TransitionState = TRANS_RunDamaged TRANS_StandDamaged
Animation = NIFOOTMAN_S.NIFOOTMAN_ST
AnimationMode = ONCE_BACKWARDS
AnimationSpeedFactorRange = 2 2
Flags = START_FRAME_LAST
End
TransitionState = TRANS_Stand TRANS_StandDamaged
Animation = NIFOOTMAN_S.NIFOOTMAN_ST
AnimationMode = ONCE_BACKWARDS
AnimationSpeedFactorRange = 4 5
Flags = START_FRAME_LAST
End
; ------- Parachuting Animations
ConditionState = FREEFALL
Animation = PARAJUMPSK.PARAJUMP
AnimationMode = MANUAL
Flags = START_FRAME_FIRST
TransitionKey = TRANS_Falling
End
AliasConditionState = FREEFALL REALLYDAMAGED
AliasConditionState = FREEFALL DYING
ConditionState = PARACHUTING
Animation = PARAFALLSK.PARAFALL
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 = PARAJUMPSK.PARAJUMP
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 = PARALANDSK.PARALAND
AnimationMode = ONCE
End
; ------- Movement Animations
ConditionState = MOVING
Animation = NIFOOTMAN_S.NIFOOTMAN_R1 26
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = None
ParticleSysBone = None InfantryDustTrails
End
AliasConditionState = MOVING ATTACKING
ConditionState = MOVING REALLYDAMAGED
Animation = NIFOOTMAN_S.NIFOOTMAN_W2 28
AnimationMode = LOOP
Flags = RANDOMSTART
TransitionKey = TRANS_RunDamaged
TransitionKey = None
End
AliasConditionState = MOVING ATTACKING REALLYDAMAGED
; ------- Dying Animations
ConditionState = DYING
Animation = NIFOOTMAN_S.NIFOOTMAN_DB1
Animation = NIFOOTMAN_S.NIFOOTMAN_DB3
Animation = NIFOOTMAN_S.NIFOOTMAN_DF1
AnimationMode = ONCE
TransitionKey = TRANS_Dying
End
TransitionState = TRANS_Dying TRANS_Flailing
Animation = NIFOOTMAN_S.NIFOOTMAN_DB2
AnimationMode = ONCE
End
ConditionState = DYING EXPLODED_FLAILING
Animation = NIFOOTMAN_S.NIFOOTMAN_DB2
AnimationMode = LOOP
TransitionKey = TRANS_Flailing
End
ConditionState = DYING EXPLODED_BOUNCING
Animation = NIFOOTMAN_S.NIFOOTMAN_DB2
AnimationMode = ONCE
TransitionKey = None
End
End
; ***DESIGN parameters ***
DisplayName = OBJECT:HeavyGunner
Side = ChinaInfantryGeneral
EditorSorting = INFANTRY
TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable)
WeaponSet
Conditions = None
Weapon = PRIMARY HeavyGunnerMachineGun
End
ArmorSet
Conditions = None
Armor = HumanArmor
DamageFX = InfantryDamageFX
End
VisionRange = 100
ShroudClearingRange = 200
Prerequisites
Object = Boss_ChinaBarracks
End
BuildCost = 350
BuildTime = 10.0 ;in seconds
ExperienceValue = 5 5 10 20 ;Experience point value at each level
ExperienceRequired = 0 20 40 80 ;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 = Boss_ChinaInfantryHeavyGunnerCommandSet
; *** AUDIO Parameters ***
VoiceSelect = RedGuardVoiceSelect
VoiceMove = RedGuardVoiceMove
VoiceGuard = RedGuardVoiceMove
VoiceAttack = RedGuardVoiceAttack
VoiceGroupSelect = BattleCrySound
VoiceFear = RedGuardVoiceFear
VoiceTaskComplete = RedGuardVoiceCaptureComplete
UnitSpecificSounds
VoiceMelee = RedGuardVoiceAttackBayonet
VoiceGarrison = RedGuardVoiceGarrison
VoiceCreate = RedGuardVoiceCreate
VoiceSubdue = RedGuardVoiceSubdue
VoiceEnter = RedGuardVoiceMove
VoiceEnterHostile = RedGuardVoiceMove
VoiceGetHealed = RedGuardVoiceMove
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY SCORE PARACHUTABLE
Body = ActiveBody ModuleTag_02
MaxHealth = 220.0
InitialHealth = 220.0
End
Behavior = VeterancyGainCreate ModuleTag_03
StartingLevel = VETERAN
End
Behavior = AIUpdateInterface ModuleTag_04
AutoAcquireEnemiesWhenIdle = Yes
End
Behavior = CommandButtonHuntUpdate ModuleTag_05 ; allows use of command button hunt script with this unit.
End
Locomotor = SET_NORMAL HeavyGunnerLocomotor
Behavior = HordeUpdate ModuleTag_06
RubOffRadius = 60 ; if I am this close to a real hordesman, I will get to be an honorary hordesman
UpdateRate = 1000 ; how often to recheck horde status (msec)
Radius = 30 ; how close other units must be to us to count towards our horde-ness (~30 feet or so)
KindOf = INFANTRY ; what KindOf's must match to count towards horde-ness
AlliesOnly = Yes ; do we only count allies towards horde status?
ExactMatch = No ; do we only count units of our exact same type towards horde status? (overrides kindof)
Count = 10 ; how many units must be within Radius to grant us horde-ness
Action = HORDE ; when horde-ing, grant us the HORDE bonus
End
Behavior = PhysicsBehavior ModuleTag_07
Mass = 5.0
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 = 6000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RedGuardDie
End
Behavior = SlowDeathBehavior ModuleTag_Death02
DeathTypes = NONE +CRUSHED +SPLATTED
SinkDelay = 6000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_GIDieCrushed
End
Behavior = SlowDeathBehavior ModuleTag_Death03
DeathTypes = NONE +EXPLODED
SinkDelay = 6000
SinkRate = 0.5 ; in Dist/Sec
DestructionDelay = 8000
FX = INITIAL FX_RedGuardDie
FlingForce = 8
FlingForceVariance = 3
FlingPitch = 60
FlingPitchVariance = 10
End
Behavior = SlowDeathBehavior ModuleTag_Death04
DeathTypes = NONE +BURNED
DestructionDelay = 0
FX = INITIAL FX_DieByFireChina
OCL = INITIAL OCL_FlamingInfantry
End
Behavior = SlowDeathBehavior ModuleTag_Death05
DeathTypes = NONE +POISONED
DestructionDelay = 0
FX = INITIAL FX_DieByToxinChina
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_DieByToxinChina
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_DieByToxinChina
OCL = INITIAL OCL_ToxicInfantryGamma
End
; --- end Death modules ---
Behavior = PoisonedBehavior ModuleTag_15
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
Scale = 1.2
Shadow = SHADOW_DECAL
ShadowSizeX = 14;
ShadowSizeY = 14;
ShadowTexture = ShadowI;
BuildCompletion = APPEARS_AT_RALLY_POINT
End
Code:
CommandButton Boss_Command_ConstructChinaInfantryHeavyGunner
Command = UNIT_BUILD
Object = Boss_InfantryHeavyGunner
TextLabel = CONTROLBAR:ConstructChinaInfantryHeavyGunner
ButtonImage = SNHeavySoldier
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipChinaBuildHeavyGunner
End