Posted by: E_Wofle - Sunday, August 5, 2007 2:19:31 PM
I've been making a squad unit for china, based off the angry mob and red guard code, however whenever these additions are being used, they cause the "serious error" message when attempting to start ZH. The crash says: ; Reason Error parsing INI file 'Data\INI\Object\ChinaInfantry.ini' (Line: 'Object ChinaInfantryFireTeamNexus ') I've looked through several guides and tutorials, and the code seems to be fine. Any ideas what might be causing it?

Posted by: CG Apollos - Sunday, August 5, 2007 7:40:45 PM
Regardless, can you post the code from all created/modified INIs for us to look over? There has to be something wrong with it.

Posted by: E_Wofle - Monday, August 6, 2007 3:22:46 AM
That's all the code that's been done anything with. **Start of code** -*From Locomotor.ini*- Locomotor ChinaFireTeamNexusLocomotor Surfaces = GROUND RUBBLE CLIFF Speed = 13 ; in dist/sec SpeedDamaged = 9 ;10 ;30 ; in dist/sec TurnRate = 360 ; in degrees/sec TurnRateDamaged = 350 ; in degrees/sec Acceleration = 100 ; in dist/(sec^2) AccelerationDamaged = 50 ; in dist/(sec^2) Braking = 100 ; in dist/(sec^2) MinTurnSpeed = 0 ; in dist/sec ZAxisBehavior = NO_Z_MOTIVE_FORCE Appearance = TWO_LEGS StickToGround = Yes ; walking guys aren't allowed to catch huge (or even small) air. End ;------------------------------------------------------------------------------ Locomotor ChinaFireTeamNormalLocomotor Surfaces = GROUND RUBBLE CLIFF Speed = 15 ;30 ; in dist/sec SpeedDamaged = 10 ;30 ; in dist/sec TurnRate = 500 ; in degrees/sec TurnRateDamaged = 500 ; in degrees/sec Acceleration = 100 ; in dist/(sec^2) AccelerationDamaged = 50 ; in dist/(sec^2) Braking = 100 ; in dist/(sec^2) MinTurnSpeed = 0 ; in dist/sec ZAxisBehavior = NO_Z_MOTIVE_FORCE Appearance = TWO_LEGS StickToGround = Yes ; walking guys aren't allowed to catch huge (or even small) air. GroupMovementPriority = MOVES_FRONT; Moves in the front of a group, behind small arms, ahead of artillery End -*From CommandSet.ini*- CommandSet ChinaInfantryFireTeamCommandSet 11 = Command_AttackMove 13 = Command_Guard 14 = Command_Stop End CommandSet ChinaTroopCrawlerCommandSet 1 = Command_TransportExit 2 = Command_TransportExit 3 = Command_TransportExit 4 = Command_TransportExit 5 = Command_TransportExit 6 = Command_TransportExit 7 = Command_TransportExit 8 = Command_TransportExit 9 = Command_TransportExit 10 = Command_TransportExit 11 = Command_EmptyCrawler 12 = Command_AttackMove 14 = Command_Stop End CommandSet ChinaBarracksCommandSet 1 = Command_ConstructChinaInfantryRedguard 2 = Command_ConstructChinaInfantryTankHunter 3 = Command_ConstructChinaInfantryHacker 4 = Command_ConstructChinaInfantryBlackLotus 5 = Command_ConstructChinaInfantryFireTeam 7 = Command_UpgradeChinaRedguardCaptureBuilding 12 = Command_UpgradeChinaMines 13 = Command_SetRallyPoint 14 = Command_Sell End -*From CommandButton.ini*- CommandButton Command_ConstructChinaInfantryFireTeam Command = UNIT_BUILD Object = ChinaInfantryFireTeamNexus TextLabel = CONTROLBAR:ConstructChinaInfantryFireTeam ButtonImage = SNRedGuard ButtonBorderType = BUILD DescriptLabel = CONTROLBAR:ToolTipChinaBuildFireteam End -*From ChinaInfantry.ini*- Object ChinaInfantryFireTeamNexus ;**** ART Parameters ************************** SelectPortrait = SURedguard_L ButtonImage = SURedguard UpgradeCameo1 = Upgrade_ChinaNationalism ;UpgradeCameo2 = Upgrade_ChinaFireTeamTankhunter ;UpgradeCameo3 = Upgrade_ChinaFireTeamFlamethrower ;UpgradeCameo4 = Upgrade_ChinaApExpRounds UpgradeCameo5 = Upgrade_CaptureBuilding Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes DefaultConditionState Model = None ; Model = AVBomber_B End End ;****DESIGN parameters ************************** DisplayName = OBJECT:FireTeamNexus Side = China RadarPriority = NOT_ON_RADAR EditorSorting = INFANTRY TransportSlotCount = 5 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY ChinaInfantryFireTeamHarmlessWeapon Weapon = SECONDARY ChinaInfantryFireTeamHarmlessWeapon Weapon = TERTIARY ChinaInfantryFireTeamHarmlessWeapon End ArmorSet Conditions = None Armor = InvulnerableAllArmor DamageFX = None End BuildCost = 500 BuildTime = 5.0 ;in seconds VisionRange = 150 ; it can scout for the spawn ShroudClearingRange = 0 Prerequisites Object = ChinaBarracks End ExperienceValue = 5 5 5 5 ;Experience point value at each level IsTrainable = No CommandSet = ChinaInfantryFireTeamCommandSet; ;**** AUDIO Parameters ***************************** VoiceSelect = RedGuardVoiceSelect VoiceMove = RedGuardVoiceMove VoiceGuard = RedGuardVoiceMove VoiceAttack = RedGuardVoiceAttack SoundMoveStart = NoSound SoundAmbient = RedGuardAmbientLoop SoundAmbientRubble = NoSound UnitSpecificSounds VoiceMelee = RedGuardVoiceAttackBayonet VoiceGarrison = RedGuardVoiceGarrison VoiceCreate = RedGuardVoiceCreate VoiceSubdue = RedGuardVoiceSubdue VoiceEnter = RedGuardVoiceMove VoiceEnterHostile = RedGuardVoiceMove VoiceGetHealed = RedGuardVoiceMove End ;**** ENGINEERING Parameters ****************************** RadarPriority = UNIT KindOf = PRELOAD CAN_ATTACK INFANTRY MOB_NEXUS ATTACK_NEEDS_LINE_OF_SIGHT NO_COLLIDE SELECTABLE SCORE Body = ImmortalBody ModuleTag_02 MaxHealth = 99999.0 InitialHealth = 99999.0 End Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL ChinaFireTeamNormalLocomotor ;Important! don't make the Nexus any faster! Locomotor = SET_WANDER ChinaFireteamWanderLocomotor ; Locomotor = SET_NORMAL WanderHumanLocomotor ;Important! don't make the Nexus any faster! ; Locomotor = SET_WANDER WanderHumanLocomotor ;Important! don't make the Nexus any faster! ; Locomotor = SET_PANIC WanderHumanLocomotor ;Important! don't make the Nexus any faster! Behavior = PhysicsBehavior ModuleTag_04 Mass = 50.0 End Behavior = SpawnBehavior ModuleTag_05 SpawnNumber = 5 ; SpawnReplaceDelay = 30000 ; 30 seconds SpawnTemplateName = ChinaInfantryFireTeamRedguard ExitByBudding = Yes;! InitialBurst = 5 ; the first set of 5 will not delay OneShot = yes AggregateHealth = no SlavesHaveFreeWill = No End Behavior = QueueProductionExitUpdate ModuleTag_06 UnitCreatePoint = X: 0.0 Y: 0.0 Z:0.0 NaturalRallyPoint = X: 0.0 Y: 0.0 Z:0.0 ExitDelay = 5000 ; 5 sec InitialBurst = 5 ; the first set of 5 will not delay End Behavior = DestroyDie ModuleTag_07 DeathTypes = ALL End Geometry = CYLINDER GeometryMajorRadius = 1.0 GeometryMinorRadius = 1.0 GeometryHeight = 1.0 GeometryIsSmall = Yes Shadow = SHADOW_VOLUME End ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ Object ChinaInfantryFireTeamRedguard ; *** ART Parameters *** SelectPortrait = SNRedGuard_L ButtonImage = SNRedGuard_L ;UpgradeCameo1 = Upgrade_Nationalism ;UpgradeCameo2 = Upgrade_InfantryCaptureBuilding ;UpgradeCameo3 = NONE ;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 = NICNSC_SKN IdleAnimation = NICNSC_SKL.NICNSC_STA 0 35 IdleAnimation = NICNSC_SKL.NICNSC_IDA IdleAnimation = NICNSC_SKL.NICNSC_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = NICNSC_SKL.NICNSC_STB AnimationMode = ONCE TransitionKey = TRANS_StandDamaged End ; ------- Machine Gun Animations ConditionState = USING_WEAPON_A Animation = NICNSC_SKL.NICNSC_ATA AnimationMode = LOOP TransitionKey = TRANS_Firing End ConditionState = USING_WEAPON_A REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_ATC AnimationMode = LOOP TransitionKey = TRANS_FiringDamaged End ; ------- Firing-related Transitions TransitionState = TRANS_Firing TRANS_FiringDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_Firing Animation = NICNSC_SKL.NICNSC_SA2AA AnimationMode = ONCE End TransitionState = TRANS_Firing TRANS_Stand Animation = NICNSC_SKL.NICNSC_AA2SA AnimationMode = ONCE End TransitionState = TRANS_StandDamaged TRANS_FiringDamaged Animation = NICNSC_SKL.NICNSC_ATCST AnimationMode = ONCE End TransitionState = TRANS_FiringDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_ATCED AnimationMode = ONCE End ; ------------- Damage Transitions -------------------- TransitionState = TRANS_StandDamaged TRANS_RunDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE AnimationSpeedFactorRange = 2 2 End TransitionState = TRANS_RunDamaged TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_AA2AC AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2 2 Flags = START_FRAME_LAST End TransitionState = TRANS_Stand TRANS_StandDamaged Animation = NICNSC_SKL.NICNSC_AA2SA AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 5 Flags = START_FRAME_LAST End ; ------- Bayonet Animations ConditionState = PREATTACK_C Animation = NICNSC_SKL.NICNSC_ATB1 AnimationMode = ONCE TransitionKey = TRANS_Stab End AliasConditionState = PREATTACK_C MOVING AliasConditionState = PREATTACK_C FIRING_C AliasConditionState = PREATTACK_C BETWEEN_FIRING_SHOTS_C ConditionState = FIRING_C Animation = NICNSC_SKL.NICNSC_ATB2 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_Stab End AliasConditionState = BETWEEN_FIRING_SHOTS_C AliasConditionState = RELOADING_C ; ------- Parachuting Animations ConditionState = FREEFALL Animation = NICNSC_SKL.NICNSC_POP AnimationMode = MANUAL Flags = START_FRAME_FIRST TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = NICNSC_SKL.NICNSC_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 = NICNSC_SKL.NICNSC_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 = NICNSC_SKL.NICNSC_PTD AnimationMode = ONCE End ; ------- Movement Animations ConditionState = MOVING Animation = NICNSC_SKL.NICNSC_RNA 26 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = None ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING ConditionState = MOVING REALLYDAMAGED Animation = NICNSC_SKL.NICNSC_RNB 28 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_RunDamaged TransitionKey = None End AliasConditionState = MOVING ATTACKING REALLYDAMAGED ; ------- Bldg-capture ConditionState = UNPACKING Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP1 AnimationMode = ONCE End AliasConditionState = UNPACKING REALLYDAMAGED ConditionState = RAISING_FLAG Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP2 AnimationMode = ONCE TransitionKey = TRANS_Raising End AliasConditionState = RAISING_FLAG REALLYDAMAGED ConditionState = PACKING Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST TransitionKey = TRANS_Packing End AliasConditionState = PACKING REALLYDAMAGED TransitionState = TRANS_Raising TRANS_Packing Model = NICNSC_F_SKN Animation = NICNSC_F_SKL.NICNSC_F_FDP2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ; ------- Dying Animations ConditionState = DYING Animation = NICNSC_SKL.NICNSC_DTA Animation = NICNSC_SKL.NICNSC_DTB AnimationMode = ONCE TransitionKey = TRANS_Dying End TransitionState = TRANS_Dying TRANS_Flailing Animation = NICNSC_SKL.NICNSC_ATDE1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = NICNSC_SKL.NICNSC_ATDE2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = NICNSC_SKL.NICNSC_ATDE3 AnimationMode = ONCE TransitionKey = None End ; ------- Misc Animations ConditionState = SPECIAL_CHEERING Animation = NICNSC_SKL.NICNSC_CHA AnimationMode = LOOP End End ; ***DESIGN parameters *** DisplayName = OBJECT:Redguard Side = China EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY RedguardMachineGun End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End VisionRange = 100 ShroudClearingRange = 200 Prerequisites Object = ChinaBarracks End BuildCost = 300 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 = ChinaInfantryRedguardCommandSet ; *** 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 IGNORED_IN_GUI Body = ActiveBody ModuleTag_02 MaxHealth = 120.0 InitialHealth = 120.0 End Behavior = VeterancyGainCreate ModuleTag_03 StartingLevel = VETERAN ScienceRequired = SCIENCE_RedGuardTraining End Behavior = AIUpdateInterface ModuleTag_04 AutoAcquireEnemiesWhenIdle = Yes End Behavior = MobMemberSlavedUpdate ModuleTag_04 MustCatchUpRadius = 40 NoNeedToCatchUpRadius = 15 Squirrelliness = 0.05 CatchUpCrisisBailTime = 30; this is in calls to this update, not in frames End Behavior = CommandButtonHuntUpdate ModuleTag_05 ; allows use of command button hunt script with this unit. End Locomotor = SET_NORMAL ChinaFireTeamNormalLocomotor ;Important! don't make the Nexus any faster! Locomotor = SET_WANDER ChinaFireteamWanderLocomotor 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 = 5 ; 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 = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_RedGuardDie 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_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 Behavior = SpecialAbility ModuleTag_16 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding UpdateModuleStartsAttack = Yes StartsPaused = Yes InitiateSound = RedGuardVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_17 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding StartAbilityRange = 5.0 UnpackTime = 3000 ; (changing this will scale anim speed) PreparationTime = 20000 ; time to complete hack once prepared (changing this will scale anim speed) PackTime = 2000 ; (changing this will scale anim speed) DoCaptureFX = Yes AwardXPForTriggering = 4 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_18 SpecialPowerTemplate = SpecialAbilityRedGuardCaptureBuilding TriggeredBy = Upgrade_InfantryCaptureBuilding 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 **End of code**

Posted by: CommieDog - Monday, August 6, 2007 7:07:11 PM
It looks like you don't have a ChinaFireteamWanderLocomotor defined in your code.

Posted by: E_Wofle - Monday, August 6, 2007 8:33:52 PM
You're right, thanks for pointing that out. That doesn't solve the crashing issue, though, so must be something else.

Posted by: fleetatks - Tuesday, August 7, 2007 4:59:30 AM
I didn't see any where in the code that tells it to spawn red guards in the squad. I saw that it says to spawn 5 but it doesn't say to spawn them in the form of the red guard's model.

Posted by: E_Wofle - Tuesday, August 7, 2007 7:52:05 AM
I thought the SpawnTemplateName = ChinaInfantryFireTeamRedguard line did that.

Posted by: fleetatks - Tuesday, August 7, 2007 1:23:17 PM
Since you most likely don't have a model named "ChinaInfantryFireTeamRedguard" made, replace it with the name of the red guard and it should work, if not you'll have to look in the code and see if there's anything special about the angry mob objects that allow them to be in a squad and edit the red guard code and rename it (but remember that it needs the model to be that of the red guard's.)

Posted by: E_Wofle - Tuesday, August 7, 2007 3:06:56 PM
Well, the ChinaInfantryFireTeamRedguard is just a copy of the red guard code, so it should point to the red guard models. I've looked at the angry mob code as well, and can't find anything that indicates that my code shouldn't work.

Posted by: fleetatks - Wednesday, August 8, 2007 4:26:03 AM
In that case I don't know what's wrong with it, but I do know that (i think) the shockwave mod has infantry squads for infantry general, you can download it and look at the codes they have for it. It's either the shockwave mod or the boss generals mod.

Posted by: randomperson - Wednesday, August 8, 2007 5:35:18 AM
epic generals is a squad based mod, you could try looking at that

Posted by: E_Wofle - Wednesday, August 8, 2007 6:30:27 AM
I figured it out, and the solution was embarrasingly simple. The actual crash was caused by a few uppercase/lowercase errors, but the fact that I had the code appearing twice in ChinaInfantry.ini meant that I fixed half of the errors in each. That's what I get for modding at 4 am. Thanks for the help anyway, it's most appreciated.