View Single Post
Old 01-07-2008, 02:33 PM   #4 (permalink)
beng
Senior Member
 
Join Date: Jan 2008
Posts: 589
Default

Sure, it is simple to add Jarmen's vehicle sniping weapon to the pathfinder. For good measure, you can also make him able to snipe garrisoned infantry if this is Zero Hour (not in Generals) by giving him the GC_Slth Jarmen projectile shooting rifle.

Here is the code for a zero hour map.ini that gives the pathfinder the fast firing GC_Slth anti-vehicle sniper rifle, and the anti-garrison projectile fireing weapon. I dispensed with the Jarmen snipe vehicle command button, the pathfinder will snipe vehicles on his own initiative, without having to be told, even when garrisoned.

Code:
;------------------------------------------------------------------------------
Object AmericaInfantryPathfinder

 ReplaceModule ModuleTag_01
  Draw = W3DModelDraw ModuleTag_01_Override

    OkToChangeModelColor = Yes

    DefaultConditionState
      Model = AIPFDR_SKN
      IdleAnimation = AIPFDR_SKL.AIPFDR_STA 
      IdleAnimation = AIPFDR_SKL.AIPFDR_IDA
      AnimationMode = ONCE
      WeaponFireFXBone  = PRIMARY Muzzle
      WeaponMuzzleFlash = PRIMARY MuzzleFX

      WeaponFireFXBone  = SECONDARY Muzzle ;Jarmen vehicle rifle
      WeaponMuzzleFlash = SECONDARY MuzzleFX

      WeaponFireFXBone  = TERTIARY Muzzle ;Jarmen projectile rifle
      WeaponMuzzleFlash = TERTIARY MuzzleFX
      WeaponLaunchBone  = TERTIARY Muzzle

      TransitionKey = TRANS_Standing
    End
    AliasConditionState = REALLYDAMAGED

    ConditionState = MOVING
      Animation = AIPFDR_SKL.AIPFDR_RNA 25
      AnimationMode = LOOP
      Flags = RANDOMSTART
      TransitionKey = TRANS_Standing
      ParticleSysBone   = None InfantryDustTrails
    End
    AliasConditionState = MOVING REALLYDAMAGED

    ConditionState  = FIRING_A 
      Animation     = AIPFDR_SKL.AIPFDR_ATB ; recoil in standing position
      AnimationMode = ONCE
      TransitionKey = TRANS_FiringA
    End
    AliasConditionState = FIRING_A MOVING
    AliasConditionState = FIRING_A MOVING REALLYDAMAGED
    AliasConditionState = FIRING_A REALLYDAMAGED

    AliasConditionState = FIRING_B
    AliasConditionState = FIRING_B MOVING
    AliasConditionState = FIRING_B MOVING REALLYDAMAGED
    AliasConditionState = FIRING_B REALLYDAMAGED

    AliasConditionState = FIRING_C
    AliasConditionState = FIRING_C MOVING
    AliasConditionState = FIRING_C MOVING REALLYDAMAGED
    AliasConditionState = FIRING_C REALLYDAMAGED


    ConditionState  = BETWEEN_FIRING_SHOTS_A
      Animation     = AIPFDR_SKL.AIPFDR_ATBST ; motionless in standing position
      AnimationMode = ONCE
      WaitForStateToFinishIfPossible = TRANS_FiringA
    End
    AliasConditionState = BETWEEN_FIRING_SHOTS_A REALLYDAMAGED
    AliasConditionState = RELOADING_A
    AliasConditionState = RELOADING_A REALLYDAMAGED

    AliasConditionState = BETWEEN_FIRING_SHOTS_B
    AliasConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED
    AliasConditionState = RELOADING_B
    AliasConditionState = RELOADING_B REALLYDAMAGED

    AliasConditionState = BETWEEN_FIRING_SHOTS_C
    AliasConditionState = BETWEEN_FIRING_SHOTS_C REALLYDAMAGED
    AliasConditionState = RELOADING_C
    AliasConditionState = RELOADING_C REALLYDAMAGED


    ConditionState = DYING
      Animation = AIPFDR_SKL.AIPFDR_DTA
      AnimationMode = ONCE
      TransitionKey = TRANS_Dying
    End
    
    TransitionState = TRANS_Dying TRANS_Flailing
      Animation = AIPFDR_SKL.AIPFDR_ADTA1
      AnimationMode = ONCE
    End

    ConditionState = DYING EXPLODED_FLAILING
      Animation = AIPFDR_SKL.AIPFDR_ADTA2
      AnimationMode = LOOP
      TransitionKey = TRANS_Flailing
    End

    ConditionState = DYING EXPLODED_BOUNCING
      Animation = AIPFDR_SKL.AIPFDR_ADTA3
      AnimationMode = ONCE
      TransitionKey = None
    End

    ConditionState = FREEFALL
      Animation = AIPFDR_SKL.AIPFDR_PFL
      AnimationMode = LOOP
      TransitionKey = TRANS_Falling
    End
    AliasConditionState = FREEFALL DYING

    ConditionState = PARACHUTING
      Animation = AIPFDR_SKL.AIPFDR_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 DYING


    TransitionState = TRANS_Falling TRANS_Chute
      Animation = AIPFDR_SKL.AIPFDR_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_Standing
      Animation = AIPFDR_SKL.AIPFDR_PTD
      AnimationMode = ONCE
    End

  End
 End

  WeaponSet
    Conditions = None
    Weapon = PRIMARY   USAPathfinderSniperRifle
    Weapon = SECONDARY GC_Slth_GLAJarmenKellVehiclePilotSniperRifle ;5 second reload time
    Weapon = TERTIARY  GC_Slth_GLAJarmenKellRifle ;with garrison sniping projectile
    PreferredAgainst = PRIMARY   INFANTRY
    PreferredAgainst = SECONDARY VEHICLE
  End

  VisionRange = 300 ;range of his weapon
  ShroudClearingRange = 400

 ReplaceModule ModuleTag_08
  Behavior = StealthDetectorUpdate ModuleTag_08_Override
    DetectionRate  = 500
    DetectionRange = 200
    CanDetectWhileGarrisoned = Yes
    CanDetectWhileContained  = Yes
  End
 End

End
;------------------------------------------------------------------------------
It also makes him able to detect stealth while garrisoned or in vehicles.
His vision has been increased to 300 range to match his pathfinder weapon range.
beng is offline   Reply With Quote