Jump to content


Photo

Someone plz help a new modder!


  • Please log in to reply
6 replies to this topic

#1 MatthewH86

MatthewH86
  • New Members
  • 9 posts

Posted 29 December 2004 - 12:48 AM

Hey, can someone plz help me with some annoying problems?

Here goes:

1)
I've modded the Boss general to produce Superhackers and Minigunner infantry; all fine.
They come out of the barracks fine w/o chem suit upgrade.
They upgrade fine when it is researched.
But it only crashes when more are trained with the chem suit upgrade researched

???

I'll be happy to post both unit's codes if needed

2)
I added the SpyDrone and SpySatellite to the Boss; in shortcut, general upgrades, and command center in the CommandSets.ini. And added
Behavior = OCLSpecialPower ModuleTag_23
SpecialPowerTemplate = SpecialPowerSpySatellite
OCL = SUPERWEAPON_SpySatellite
CreateLocation = CREATE_AT_LOCATION
End
to the command center in BossGeneral.ini

only the spysatellite works

the other one has the red no entry cursor


Thanks in advance

#2 AdmiralGT

AdmiralGT

    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 29 December 2004 - 10:21 AM

1) Try opening World Builder and see if it produces an error. Other than that I can only suggest posting the code.

2) You'll also need a behavior tag for the Spy Drone. Something along these lines

 Behavior           = OCLSpecialPower ModuleTag_Drone
    SpecialPowerTemplate = SpecialPowerSpyDrone
    OCL                  = SUPERWEAPON_SpyDrone
    CreateLocation       = CREATE_ABOVE_LOCATION
  End

GT

#3 MatthewH86

MatthewH86
  • New Members
  • 9 posts

Posted 30 December 2004 - 05:38 PM

Hacker Code:

search for "Commented out b/c it crashes" without quotes
Object Boss_InfantryHacker

 ; *** ART Parameters ***
  SelectPortrait         = SNHacker2_L
  ButtonImage            = SNHacker2
  
 ;UpgradeCameo1 = NONE
 ;UpgradeCameo2 = NONE
 ;UpgradeCameo3 = NONE
  UpgradeCameo4 = Upgrade_AmericaChemicalSuits
 ;UpgradeCameo5 = NONE

  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes

   ;NORMAL STANDING
    DefaultConditionState
      Model = NIHCKR_SKN
      IdleAnimation = NIHCKR_SKL.NIHCKR_STA 0 25
     ;Regular spice animations
      IdleAnimation = NIHCKR_SKL.NIHCKR_IDA
      IdleAnimation = NIHCKR_SKL.NIHCKR_IDB
      AnimationMode = ONCE
      WeaponFireFXBone = PRIMARY Bone_SatCom
      TransitionKey = TRANS_Stand
    End
    AliasConditionState = REALLYDAMAGED

    ConditionState = MOVING
      Animation = NIHCKR_SKL.NIHCKR_RNA 14
      AnimationMode = LOOP
      Flags = RANDOMSTART
      TransitionKey = None
      ParticleSysBone   = None InfantryDustTrails
    End
    AliasConditionState = MOVING UNPACKING
    AliasConditionState = MOVING UNPACKING REALLYDAMAGED

    ConditionState = UNPACKING
      Animation = NIHCKR_SKL.NIHCKR_ATB1
      AnimationMode = ONCE
    End
    AliasConditionState = UNPACKING FIRING_A
    AliasConditionState = UNPACKING REALLYDAMAGED
    AliasConditionState = UNPACKING FIRING_A REALLYDAMAGED

   ;HACKING ATTACK
    ConditionState = FIRING_A
      Animation = NIHCKR_SKL.NIHCKR_ATB2
      AnimationMode = LOOP
      TransitionKey = TRANS_FiringA
    End
    AliasConditionState = FIRING_A REALLYDAMAGED

    ConditionState = PACKING
      Animation = NIHCKR_SKL.NIHCKR_ATB3
      AnimationMode = ONCE
    End
    AliasConditionState = PACKING FIRING_A
    AliasConditionState = PACKING REALLYDAMAGED
    AliasConditionState = PACKING FIRING_A REALLYDAMAGED



    TransitionState = TRANS_FiringA TRANS_Stand; I was stopped by a stop command, so I get no proper PACKING state
      Animation = NIHCKR_SKL.NIHCKR_ATB3
      AnimationMode = ONCE
    End


    ConditionState = FREEFALL
      Animation = NIHCKR_SKL.NIHCKR_PFL
      AnimationMode = LOOP
      TransitionKey = TRANS_Falling
    End
    AliasConditionState = FREEFALL REALLYDAMAGED
    AliasConditionState = FREEFALL DYING

    ConditionState = PARACHUTING
      Animation = NIHCKR_SKL.NIHCKR_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


    ConditionState = DYING
      Animation = NIHCKR_SKL.NIHCKR_DTA
      Animation = NIHCKR_SKL.NIHCKR_DTB
      AnimationMode = ONCE
      TransitionKey = TRANS_Dying
    End

    TransitionState = TRANS_Dying TRANS_Flailing
      Animation = NIHCKR_SKL.NIHCKR_ADTG1
      AnimationMode = ONCE
    End

    ConditionState = DYING EXPLODED_FLAILING
      Animation = NIHCKR_SKL.NIHCKR_ADTG2
      AnimationMode = LOOP
      TransitionKey = TRANS_Flailing
    End

    ConditionState = DYING EXPLODED_BOUNCING
      Animation = NIHCKR_SKL.NIHCKR_ADTG3
      AnimationMode = ONCE
      TransitionKey = None
    End

    ConditionState = SPECIAL_CHEERING
      Animation = NIHCKR_SKL.NIHCKR_CHA
      AnimationMode = LOOP
    End

    TransitionState = TRANS_Falling TRANS_Chute
      Animation = NIHCKR_SKL.NIHCKR_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 = NIHCKR_SKL.NIHCKR_PTD
      AnimationMode = ONCE
    End

  End

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

  ArmorSet
    Conditions      = None
    Armor           = InfGen_HumanArmor
    DamageFX        = InfantryDamageFX
  End
  ArmorSet
    Conditions      = PLAYER_UPGRADE
    Armor           = ChemSuitHumanArmor
    DamageFX        = None
  End
  VisionRange = 150
  ShroudClearingRange = 300
  Prerequisites
    Object = Boss_Barracks
  End
  BuildCost = 625
  BuildTime = 20.0         ;in seconds    
  ExperienceValue = 50 100 150 400   ;Experience point value at each level
  ExperienceRequired = 0 100 300 500 ;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      = Infa_ChinaInfantryHackerCommandSet

 ; *** AUDIO Parameters ***
  VoiceSelect = SuperHackerVoiceSelect
  VoiceMove = HackerVoiceMove
  VoiceAttack = NoSound
  VoiceGuard = HackerVoiceMove
  VoiceFear = HackerVoiceFear
  VoiceTaskComplete = HackerVoiceHackComplete
  UnitSpecificSounds
    VoiceGarrison = HackerVoiceGarrison
    VoiceCreate     = SuperHackerVoiceCreate
    UnitPack        = HackerPack
    UnitUnpack      = HackerUnpack
    UnitCashPing    = HackerCashPing
    VoiceEnter = HackerVoiceMove
   ;VoiceStealCashComplete = SuperHackerVoiceCashComplete
    VoiceDisableVehicleComplete = SuperHackerVoiceDisableComplete
   ;VoiceCaptureBuildingComplete = SuperHackerVoiceCaptureComplete
    VoiceEnterHostile = HackerVoiceMove
    VoiceGetHealed      = HackerVoiceMove
    VoiceHackInternet   = HackerVoiceModeInternet
  End

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

  Body = ActiveBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

; Commented out b/c it crashes
;  Behavior                = ArmorUpgrade ModuleTag_Armor01
;    TriggeredBy           = Upgrade_AmericaChemicalSuits
;  End

  Behavior = HackInternetAIUpdate ModuleTag_03
    UnpackTime          = 7300;animation time is 7300 (changing this will scale anim speed)
    PackTime            = 5133;animation time is 5133 (changing this will scale anim speed)
    CashUpdateDelay     = 2000
    CashUpdateDelayFast = 1600 ; Fast speed used inside a container (can only hack inside an Internet Center)
    RegularCashAmount   = 5
    VeteranCashAmount   = 6
    EliteCashAmount     = 8
    HeroicCashAmount    = 10
    XpPerCashUpdate     = 1
    PackUnpackVariationFactor = 0.5;Adds + or - 20% to pack and unpack time randomly.
  End
  Locomotor = SET_NORMAL BasicHumanLocomotor
 
  Behavior = SpecialAbility ModuleTag_04
    SpecialPowerTemplate = SpecialAbilityHackerDisableBuilding
    UpdateModuleStartsAttack = Yes
    InitiateSound         = HackerVoiceHack
  End

  Behavior = SpecialAbilityUpdate ModuleTag_05
    SpecialPowerTemplate = SpecialAbilityHackerDisableBuilding
    StartAbilityRange = 150.0
    UnpackTime      = 7300;animation time is 7300 (changing this will scale anim speed)
    PackTime        = 5133;animation time is 5133 (changing this will scale anim speed)
    PreparationTime = 3000

   ;PersistentPrepTime = 500; old setting
    PersistentPrepTime = 333; NOTE! This drives how often the disable effect gets triggered
                            ; This is also how often a new particle system effect is spawned
    EffectDuration = 2000
    SpecialObject = BinaryDataStream
    DisableFXParticleSystem = DisabledEffectBinaryShower0
    PackSound       = HackerPack
    UnpackSound     = HackerUnpack
    PrepSoundLoop   = HackerPrepLoop
    AwardXPForTriggering  = 0   ;Careful, this is persistant so it's a DoT xp gain!
   ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
  End


  Behavior = PhysicsBehavior ModuleTag_06
    Mass = 5.0
  End

  Behavior = SquishCollide ModuleTag_08
   ;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_HackerDie
  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_HackerDie
    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_DieByToxinGLA
    OCL                 = INITIAL OCL_ToxicInfantryGamma
  End
; --- end Death modules ---

  Behavior = PoisonedBehavior ModuleTag_11
    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_12
    SpecialPowerTemplate      = SpecialAbilityBlackLotusDisableVehicleHack
    UpdateModuleStartsAttack  = Yes
    InitiateSound           = SuperHackerVoiceHackVehicle
  End
  Behavior = SpecialAbilityUpdate ModuleTag_13
    SpecialPowerTemplate    = SpecialAbilityBlackLotusDisableVehicleHack
    StartAbilityRange       = 150.0
    UnpackTime              = 2000;6730;animation time is 6730 (changing this will scale anim speed)
    PackTime                = 1000;2800;animation time is 5800 (changing this will scale anim speed)
    PreparationTime         = 2000;time to complete hack once prepared (unpacked)
    EffectDuration          = 15000;duration vehicle is disabled  (30 seconds)
    DisableFXParticleSystem = DisabledEffectBinaryShower0
    SpecialObject           = BinaryDataStream
    PackSound               = BlackLotusPack
    UnpackSound             = BlackLotusUnpack
    TriggerSound            = BlackLotusTrigger
    PrepSoundLoop           = BlackLotusPrepLoop
    AwardXPForTriggering    = 0
   ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
  End
  Behavior = StealthUpdate ModuleTag_14
    StealthDelay                = 2500; msec
    StealthForbiddenConditions  = USING_ABILITY
    HintDetectableConditions    = USING_ABILITY
    InnateStealth               = Yes
    OrderIdleEnemiesToAttackMeUponReveal  = Yes
  End

;  Behavior = VeterancyGainCreate ModuleTag_15
;    StartingLevel = VETERAN
;  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

Edited by MatthewH86, 30 December 2004 - 05:44 PM.


#4 MatthewH86

MatthewH86
  • New Members
  • 9 posts

Posted 30 December 2004 - 05:40 PM

Converted Ranger to Minigunner Code

(He has flashbang :dry: too, quite happy with that)

Search for "commented b/c it crashes" without quotes
Object Boss_InfantryRanger

 ; *** ART Parameters ***
  SelectPortrait         = SNMiniGunner_L  
  ButtonImage            = SNMiniGunner
  
  UpgradeCameo1 = Upgrade_Nationalism
  UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
  UpgradeCameo3 = Upgrade_InfantryCaptureBuilding
  UpgradeCameo4 = Upgrade_AmericaChemicalSuits
  UpgradeCameo5 = Upgrade_AmericaRangerFlashBangGrenade

  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               = NICNSCI_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

    ConditionState      = USING_WEAPON_B
      Animation         = NICNSC_SKL.NICNSC_ATA2
      AnimationMode     = LOOP
;    TransitionKey     = TRANS_Firing
    End

    ConditionState      = USING_WEAPON_B REALLYDAMAGED
      Animation         = NICNSC_SKL.NICNSC_ATC2
      AnimationMode     = LOOP
;    TransitionKey     = TRANS_FiringDamaged
    End

   ; --- attacking (Grenade Launcher)
    ConditionState      = PREATTACK_B 
      Animation         = AIRngr_SKL.AIRngr_ATBA
      AnimationMode     = ONCE
      TransitionKey     = TRANS_FiringB
    End
    AliasConditionState = PREATTACK_B MOVING
    AliasConditionState = PREATTACK_B FIRING_B
    AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B

    ConditionState      = FIRING_B
      Animation         = AIRngr_SKL.AIRngr_ATBB
      AnimationMode     = ONCE
      TransitionKey     = TRANS_FiringB
    End

    ConditionState      = BETWEEN_FIRING_SHOTS_B
      Animation         = AIRngr_SKL.AIRngr_ATBB
      AnimationMode     = MANUAL
      Flags             = START_FRAME_LAST
      TransitionKey     = TRANS_FiringB
      WaitForStateToFinishIfPossible = TRANS_FiringB
    End
    AliasConditionState = RELOADING_B

    TransitionState     = TRANS_Stand TRANS_FiringB
      Animation         = AIRngr_SKL.AIRngr_ATBST1
      AnimationMode     = ONCE
    End

    TransitionState     = TRANS_FiringB TRANS_Stand
      Animation         = AIRngr_SKL.AIRngr_ATBST2
      AnimationMode     = ONCE
    End

    ConditionState      = PREATTACK_B REALLYDAMAGED
      Animation         = AIRngr_SKL.AIRngr_ATB2A
      AnimationMode     = ONCE
      TransitionKey     = TRANS_FiringBInjured
    End
    AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED
    AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED
    AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED

    ConditionState      = FIRING_B REALLYDAMAGED
      Animation         = AIRngr_SKL.AIRngr_ATB2B
      AnimationMode     = ONCE
      TransitionKey     = TRANS_FiringBInjured
    End

    ConditionState      = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED
      Animation         = AIRngr_SKL.AIRngr_ATB2B
      AnimationMode     = MANUAL
      Flags             = START_FRAME_LAST
      TransitionKey     = TRANS_FiringBInjured
      WaitForStateToFinishIfPossible = TRANS_FiringBInjured
    End
    AliasConditionState = RELOADING_B REALLYDAMAGED

    TransitionState     = TRANS_StandInjured TRANS_FiringBInjured
      Animation         = AIRngr_SKL.AIRngr_ATB2ST1
      AnimationMode     = ONCE
    End

    TransitionState     = TRANS_FiringBInjured TRANS_StandInjured
      Animation         = AIRngr_SKL.AIRngr_ATB2ST2
      AnimationMode     = ONCE
    End

   ; -- cross-attack transitions

    TransitionState     = TRANS_FiringA TRANS_FiringB
      Animation         = AIRngr_SKL.AIRngr_ATA2AB
      AnimationMode     = ONCE
      AnimationSpeedFactorRange = 4 4
    End

    TransitionState     = TRANS_FiringB TRANS_FiringA
      Animation         = AIRngr_SKL.AIRngr_ATA2AB
      AnimationMode     = ONCE_BACKWARDS
      AnimationSpeedFactorRange = 4 4
    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:MiniGunner
  Side                = Boss
  EditorSorting       = INFANTRY
  TransportSlotCount  = 1                ;how many "slots" we take in a transport (0 == not transportable)
  WeaponSet
    Conditions = None 
    Weapon = PRIMARY Infa_MiniGunnerGun
    Weapon = SECONDARY Infa_MiniGunnerGunAir
    PreferredAgainst = SECONDARY AIRCRAFT
  End
  WeaponSet
    Conditions = PLAYER_UPGRADE 
    Weapon = PRIMARY Infa_MiniGunnerGun
    Weapon = SECONDARY RangerFlashBangGrenadeWeapon
    AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON
    AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI
    WeaponLockSharedAcrossSets = Yes; This set is so similar to the default set that it can hold the weapon lock
    Weapon = TERTIARY Infa_MiniGunnerGunAir
    PreferredAgainst = TERTIARY AIRCRAFT
  End
  ArmorSet
    Conditions      = None
    Armor           = InfGen_HumanArmor
    DamageFX        = InfantryDamageFX
  End
  ArmorSet
    Conditions      = PLAYER_UPGRADE
    Armor           = ChemSuitHumanArmor
    DamageFX        = None
  End
  VisionRange = 100
  ShroudClearingRange = 200
  Prerequisites
    Object = Boss_Barracks
  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    = AmericaInfantryRangerCommandSet

 ; *** AUDIO Parameters ***
  VoiceSelect = RedMinigunnerVoiceSelect
  VoiceMove = RedGuardVoiceMove
  VoiceGuard = RedGuardVoiceMove
  VoiceAttack = RedMinigunnerVoiceAttack
  VoiceGroupSelect = BattleCrySound
  VoiceFear = RedGuardVoiceFear
  VoiceTaskComplete = RedGuardVoiceCaptureComplete
  UnitSpecificSounds
    VoiceMelee      = RedGuardVoiceAttackBayonet
    VoiceGarrison   = RedGuardVoiceGarrison
    VoiceCreate     = RedMinigunnerVoiceCreate
    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_01
    MaxHealth       = 120.0
    InitialHealth   = 120.0
  End

; Commented out b/c it crashes
;  Behavior                = ArmorUpgrade ModuleTag_Armor01
;    TriggeredBy           = Upgrade_AmericaChemicalSuits
;  End

  Behavior = ExperienceScalarUpgrade ModuleTag_02
    TriggeredBy = Upgrade_AmericaAdvancedTraining
    AddXPScalar = 1.0;Increases experience gained by an additional 100%
  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

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

  Behavior = VeterancyGainCreate ModuleTag_07
    StartingLevel = VETERAN
    ScienceRequired = SCIENCE_RedGuardTraining
  End

  Locomotor = SET_NORMAL RedguardLocomotor

  Behavior = HordeUpdate ModuleTag_08
    RubOffRadius = 100   ; 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_09
    Mass = 5.0
  End

  Behavior = WeaponSetUpgrade ModuleTag_10
    TriggeredBy = Upgrade_AmericaRangerFlashBangGrenade
  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      = SpecialAbilityRangerCaptureBuilding
    UpdateModuleStartsAttack  = Yes
    StartsPaused              = Yes
    InitiateSound         = RedGuardVoiceCapture
  End
  Behavior = SpecialAbilityUpdate ModuleTag_17
    SpecialPowerTemplate  = SpecialAbilityRangerCaptureBuilding
    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 = SpecialAbilityRangerCaptureBuilding
    TriggeredBy = Upgrade_InfantryCaptureBuilding
  End

  Behavior = LockWeaponCreate ModuleTag_21
    SlotToLock = PRIMARY; Prevents indeterminate state plus two unpickable weapons equaling no attack.
  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

Edited by MatthewH86, 30 December 2004 - 05:45 PM.


#5 AdmiralGT

AdmiralGT

    title available

  • Members
  • 1,702 posts
  • Location:Bristol, UK
  • Projects:Petrolution

Posted 30 December 2004 - 06:19 PM

I cant see any reason why it would cause a crash. The only thing I can think of is the use of a tab but that should crash it outright. Check you havent used a tab anywhere (you can copy and paste a tab into the find).

Other than that does WorldBuilder produce any errors when you run it?

#6 MatthewH86

MatthewH86
  • New Members
  • 9 posts

Posted 30 December 2004 - 07:09 PM

ASSERTION FAILURE: addModuleInfo - ERROR defining module 'ActiveBody' on thing template 'Boss_InfantryRanger'. The module 'ActiveBody' has the tag 'ModuleTag_01' which must be unique among all modules for this object, but the tag 'ModuleTag_01' is also already on module 'W3DModelDraw' within this object.

Please make unique tag names within an object definition

Stack Dump:
<Unknown>(-1) : <Unknown> 0x0067F27F
<Unknown>(-1) : <Unknown> 0x006E21B2
<Unknown>(-1) : <Unknown> 0x0012A734
<Unknown>(-1) : <Unknown> 0x00180001
<Unknown>(-1) : <Unknown> 0x6F426576
[Ignore]
ASSERTION FAILURE: [LINE: 16871 - FILE: 'Data\INI\Object\BossGeneral.ini'] Error reading field 'End' of block 'Object'

Stack Dump:
<Unknown>(-1) : <Unknown> 0x0067F27F
<Unknown>(-1) : <Unknown> 0x0074CC22
<Unknown>(-1) : <Unknown> 0x0074C9F8
[Ignore]
ASSERTION FAILURE: Error parsing block ' End' in INI file 'Data\INI\Object\BossGeneral.ini'

Stack Dump:
<Unknown>(-1) : <Unknown> 0x0067F27F
<Unknown>(-1) : <Unknown> 0x0074A4AD
<Unknown>(-1) : <Unknown> 0x00749F2D
<Unknown>(-1) : <Unknown> 0x0067E546
[Ignore]

#7 MatthewH86

MatthewH86
  • New Members
  • 9 posts

Posted 30 December 2004 - 07:42 PM

sorted both problems

thanks to AdmiralGT

:)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users