bob6000
  • bob6000
  • 58.25% (Neutral)
  • Private Topic Starter
14 years ago
How do I elevate where a weapon shoots from? like right now I have a couple infantry that look like they are shooting lazer beams and fire from their boots

The other thing is how would I get a specific jet to respond to what a target designator is targeting? I have everything made and working I'm just missing what ever commands I need to make that happen. I tried to give an airfeild a flight deck behavior but for whatever reason it caused the game to crash when I sent the dozer to build it, I don't have very much to compair things to for it to work. Im not sure if that would do anything or if I would have to try to figure out what to put together between the taget designator and what I find with the patriot battary assist weapon.


none weopon related: I've gotten as far as the texture part of the modeling tutorial, would anyone here happen to know how I can convert .dds to .tga files?

Sponsor
brncao
  • brncao
  • 71% (Friendly)
  • Captain
14 years ago

How do I elevate where a weapon shoots from? like right now I have a couple infantry that look like they are shooting lazer beams and fire from their boots

bob6000 wrote:


It's either the code or the model. If the firing bone(s) in the model is set up incorrectly, that has to be corrected first. Is it a preexisting model or a new model you created?

If the bones are set up correctly, then it's a coding problem. Under DefaultStateCondition, use this line of code*

WeaponFireFXBone  = PRIMARY Muzzle
WeaponMuzzleFlash = PRIMARY MuzzleFX ;this line of code is optional
*Tweaking the code may be necessary. It depends what weapon (PRIMARY, SECONDARY, TERTIARY) you're using and what the bone ID (Muzzle and MuzzleFX is just the name of the bone) is.

The other thing is how would I get a specific jet to respond to what a target designator is targeting? I have everything made and working I'm just missing what ever commands I need to make that happen. I tried to give an airfeild a flight deck behavior but for whatever reason it caused the game to crash when I sent the dozer to build it, I don't have very much to compair things to for it to work. Im not sure if that would do anything or if I would have to try to figure out what to put together between the taget designator and what I find with the patriot battary assist weapon.

bob6000 wrote:


If I'm understanding it correctly, a soldier designates a target for your air assets (the ones you've built in your base) to bomb a target right? Before you jump into the airfield modding, I suggest trying it out with the Aircraft Carrier first. The Aircraft Carrier behavior and the Airfield are two totally different behaviors. When you designate a target, the Aircraft Carrier should follow. It's theoretical but worth a try. Generally I'd go with the OCL approach.

none weopon related: I've gotten as far as the texture part of the modeling tutorial, would anyone here happen to know how I can convert .dds to .tga files?

bob6000 wrote:


PM me the file and I'll convert it for you.
bob6000
  • bob6000
  • 58.25% (Neutral)
  • Private Topic Starter
14 years ago
the lazer infantry is based on the Toxen Rebel and the flame thrower infantry is based on the Redguard and what you say about the fireing bones is one of the things i haven't figured out yet because with the flame thower I tried to copy what the dragon tank had and some how it messed up my GameData.ini according to world builder even after I deleted it. I ended up having to reinstall the game to make it right again because I didn't do anything with that file, but here is what I have. the weapon ini on the flame trooper is a copy of dragon tanks except with longer range and the lazer weapon ini is a copy of the lazer crusader weapon but with more punch


;------------------------------------------------------------------------------
Object Infa_ChinaInfantryFlameTrooper

  ; *** ART Parameters ***
  SelectPortrait         = SNRedGuard_L  
  ButtonImage            = SNRedGuard_L
  
  UpgradeCameo1 = Upgrade_Nationalism
  UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
  UpgradeCameo3 = Upgrade_ChinaBlackNapalm
  ;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




    ; ------- 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:FlameTrooper
  Side                = ChinaInfantryGeneral
  EditorSorting       = INFANTRY
  TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
  WeaponSet
    Conditions = None 
    Weapon = PRIMARY Infa_FlameTrooperWeapon
  End
  WeaponSet
    Conditions = PLAYER_UPGRADE
    Weapon = PRIMARY Infa_FlameTrooperWeaponUpgraded
  End
  ArmorSet
    Conditions      = None
    Armor           = HumanArmor
    DamageFX        = InfantryDamageFX
  End
  VisionRange = 100
  ShroudClearingRange = 200
  Prerequisites
    Object = Infa_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

  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 = CommandButtonHuntUpdate  ModuleTag_05 ; allows use of command button hunt script with this unit. 
  End

  Locomotor = SET_NORMAL RedguardLocomotor

  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

  Behavior = WeaponSetUpgrade ModuleTag_19
    TriggeredBy = Upgrade_ChinaBlackNapalm
  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
;------------------------------------------------

Object Infa_ChinaInfantryLazerTrooper

  ; *** ART Parameters ***
  SelectPortrait         = SUToxinRebel_L
  ButtonImage            = SUToxinRebel

  UpgradeCameo1 = 
  UpgradeCameo2 = Upgrade_InfantryCaptureBuilding
  UpgradeCameo3 = 


  Draw = W3DModelDraw ModuleTag_01

    OkToChangeModelColor = Yes
  ParticlesAttachedToAnimatedBones = 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
    DefaultConditionState
      Model               = UIRGrdTOX_SKN
      IdleAnimation       = UIRGrd_SKL.UIRGrd_STN 0 35
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDA 
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDB 
      AnimationMode       = ONCE
      WeaponFireFXBone    = PRIMARY TurretFX
      WeaponLaunchBone    = PRIMARY Muzzle01
      HideSubObject       = MuzzleFX01
      TransitionKey       = TRANS_Standing
    End

    ConditionState        = REALLYDAMAGED
      IdleAnimation       = UIRGrd_SKL.UIRGrd_STB 0 35
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDC
      IdleAnimation       = UIRGrd_SKL.UIRGrd_IDD 
      AnimationMode       = ONCE
      TransitionKey       = TRANS_StandingHurt
    End

    ; ---- moving
    ConditionState        = MOVING
      Animation           = UIRGrd_SKL.UIRGrd_RNA 15
      AnimationMode       = LOOP
      TransitionKey       = TRANS_Walking
      ParticleSysBone     = None InfantryDustTrails
    End
    AliasConditionState   = MOVING ATTACKING

    ConditionState        = MOVING REALLYDAMAGED
      Animation           = UIRGrd_SKL.UIRGrd_RNB 25
      AnimationMode       = LOOP
      TransitionKey       = TRANS_WalkingHurt
      ParticleSysBone     = None InfantryDustTrails
    End
    AliasConditionState   = MOVING ATTACKING REALLYDAMAGED
    
    ; ---- dying 
    ConditionState        = DYING
      Animation           = UIRGrd_SKL.UIRGrd_DTA 
      Animation           = UIRGrd_SKL.UIRGrd_DTB 
      AnimationMode       = ONCE
      TransitionKey       = TRANS_Dying
    End

    TransitionState = TRANS_Dying TRANS_Flailing
      Animation = UIRGrd_SKL.UIRGrd_ADTE1
      AnimationMode = ONCE
    End

    ConditionState = DYING EXPLODED_FLAILING
      Animation = UIRGrd_SKL.UIRGrd_ADTE2
      AnimationMode = LOOP
      TransitionKey = TRANS_Flailing
    End

    ConditionState = DYING EXPLODED_BOUNCING
      Animation = UIRGrd_SKL.UIRGrd_ADTE3
      AnimationMode = ONCE
      TransitionKey = None
    End
    
    ConditionState = SPECIAL_CHEERING
      Animation = UIRGrd_SKL.UIRGrd_IDB
    End

    ; ---- firing
    ConditionState = USING_WEAPON_A
      Animation = UIRGrd_SKL.UIRGrd_ATA3
      AnimationMode = LOOP
      TransitionKey = TRANS_Firing
    End

    ConditionState = USING_WEAPON_A REALLYDAMAGED
      Animation = UIRGrd_SKL.UIRGrd_ATA2
      AnimationMode = LOOP
      TransitionKey = TRANS_FiringHurt
    End

    TransitionState = TRANS_Standing TRANS_Firing
      Animation = UIRGrd_SKL.UIRGrd_ATAST
      AnimationMode = ONCE
    End

    TransitionState = TRANS_Firing TRANS_Standing
      Animation = UIRGrd_SKL.UIRGrd_ATAED
      AnimationMode = ONCE
    End

    TransitionState = TRANS_StandingHurt TRANS_FiringHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE_BACKWARDS
    End

    TransitionState = TRANS_FiringHurt TRANS_StandingHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE
    End

    TransitionState = TRANS_Standing TRANS_StandingHurt
      Animation = UIRGrd_SKL.UIRGrd_ATA2ED
      AnimationMode = ONCE
    End

    

    ; ------- Bldg-capture

    ConditionState = UNPACKING
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP1
      AnimationMode     = ONCE
    End
    AliasConditionState = UNPACKING REALLYDAMAGED

    ConditionState = RAISING_FLAG
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP2
      AnimationMode     = ONCE
      TransitionKey     = TRANS_Raising
    End
    AliasConditionState = RAISING_FLAG REALLYDAMAGED

    ConditionState = PACKING
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP1
      AnimationMode     = ONCE_BACKWARDS
      Flags             = START_FRAME_LAST
      TransitionKey     = TRANS_Packing
    End
    AliasConditionState = PACKING REALLYDAMAGED

    TransitionState = TRANS_Raising TRANS_Packing
      Model             = UIRGrdTOXF_SKN
      Animation         = UIRGrd_F_SKL.UIRGrd_F_FDP2
      AnimationMode     = ONCE_BACKWARDS
      Flags             = START_FRAME_LAST
    End

  End

  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:Lazer_Trooper
  Side                = ChinaInfantryGeneral
  EditorSorting       = INFANTRY
  TransportSlotCount  = 1                 ;how many "slots" we take in a transport (0 == not transportable)
 
 WeaponSet
    Conditions        = None
    Weapon            = PRIMARY Infa_LazerTrooperWeapon
  End
  ArmorSet
    Conditions      = None
    Armor           = ChemReb_HumanArmor
    DamageFX        = InfantryDamageFX
  End
  VisionRange         = 170
  ShroudClearingRange = 300
  EnergyProduction = -10
  Prerequisites
    Object = Infa_ChinaBarracks
    Object = Infa_ChinaPropagandaCenter
    Object = Infa_ChinaInternetCenter
  End
  BuildCost = 3500
  BuildTime = 30.0          ;in seconds  

  ExperienceValue     = 25 30 35 45     ;Experience point value at each level
  ExperienceRequired  = 0 40 60 120     ;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          = Chem_GLAInfantryRebelCommandSet
  MaxSimultaneousOfType = 1

  ; *** AUDIO Parameters ***
  VoiceSelect = ToxinRebelVoiceSelect
  VoiceMove = RebelVoiceMove
  VoiceGuard = RebelVoiceMove
  VoiceAttack = ToxinRebelVoiceAttack
  SoundStealthOn = StealthOn
  SoundStealthOff = StealthOff
  VoiceFear = RebelVoiceFear
  VoiceTaskComplete = RebelVoiceCaptureComplete
  UnitSpecificSounds
    VoiceCreate = ToxinRebelVoiceCreate
    VoiceSubdue = RebelVoiceSubdue
    VoiceGarrison = RebelVoiceGarrison
    VoiceEnter = RebelVoiceMove
    VoiceEnterHostile = RebelVoiceMove
    VoiceGetHealed      = RebelVoiceMove
  End

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

  Body = ActiveBody ModuleTag_02
    MaxHealth       = 120.0
    InitialHealth   = 120.0
  End

  Behavior = AIUpdateInterface ModuleTag_03
    AutoAcquireEnemiesWhenIdle = Yes
  End

  Behavior = CommandButtonHuntUpdate  ModuleTag_04 ; allows use of command button hunt script with this unit. 
  End

  Locomotor = SET_NORMAL BasicHumanLocomotor

  Behavior = PhysicsBehavior ModuleTag_05
    Mass = 5.0
  End
 
  Behavior = SquishCollide ModuleTag_11
    ;nothing
  End

    ClientUpdate        = AnimatedParticleSysBoneClientUpdate ModuleTag_12 
  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_RebelDie
  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_RebelDie
    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_16
    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_17
    SpecialPowerTemplate      = SpecialAbilityRebelCaptureBuilding
    UpdateModuleStartsAttack  = Yes
    StartsPaused              = Yes
    InitiateSound         = RebelVoiceCapture
  End
  Behavior = SpecialAbilityUpdate ModuleTag_18
    SpecialPowerTemplate  = SpecialAbilityRebelCaptureBuilding
    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  = 12
    ;SkillPointsForTriggering = ???  -- Dustin, fill me out if you want different balance values.
  End

  Behavior = UnpauseSpecialPowerUpgrade ModuleTag_19
    SpecialPowerTemplate = SpecialAbilityRebelCaptureBuilding
    TriggeredBy = Upgrade_InfantryCaptureBuilding
  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



If I'm understanding it correctly, a soldier designates a target for your air assets (the ones you've built in your base) to bomb a target right? Before you jump into the airfield modding, I suggest trying it out with the Aircraft Carrier first. The Aircraft Carrier behavior and the Airfield are two totally different behaviors. When you designate a target, the Aircraft Carrier should follow. It's theoretical but worth a try. Generally I'd go with the OCL approach.



yes, and I might try that. I don't fully understand the OCL yet, the most I've done with that is replicate and change names for a projectile, and just yeasterday I was trying make a scud missile into nuclear warhead and failed. but with the targeting lazer, I don't know if I'm thinking too much into it what, I'm just not understanding how to connect the lazer to jets attacking. I was kind of looking at this behavior command that I think I would add to the jet:
AssistedTargetingUpdate
AssistingClipSize = [integer]
AssistingWeaponSlot = [Weapon slot list]
LaserFromAssisted = [object name]
LaserToTarget = [object name]
End
and I'm also looking at changing the damage type of the lazer from STATUS to DEPLOY but I don't know how to tell the game what to deploy if I do. I'll mess around with the aircraft carrier like you said and see what I get with that.



the DDS files is about 90% of my game textures, would you still do that?

Annihilationzh
14 years ago
LaserBoneName in weapon.ini for the laser. You need to change it from TurretMS01 to Muzzle IIRC.

You need to add a WeaponLaunchBone to the redguard's art code.

So you should need one of these:
WeaponLaunchBone  = PRIMARY Muzzle

Next to each one of these:

WeaponFireFXBone  = PRIMARY Muzzle

If you need help, post in the forum. You'll get help a lot faster than if you send me a PM.

I reject all buddy requests. I don't think 'buddy' needs to be made official. It's not like you're marrying me.
bob6000
  • bob6000
  • 58.25% (Neutral)
  • Private Topic Starter
14 years ago
I got the flame thrower working right and for the lazer I managed to get to work right. I ended up going back to the lazer trooper and changed the WeaponFireFXBone and the WeoponLaunchBone back to the original Muzzle01 and I changed the LaserBoneName to Muzzle01. I think I get it now. The last time I changed weapon bones like that it messed up everything, I don't know why its different this time but whatever, at least I have a better idea of what I'm doing now
bob6000
  • bob6000
  • 58.25% (Neutral)
  • Private Topic Starter
14 years ago
I think I'm good to go, thanks guys! Its hard to get used to how simple it is to change something on this game