logo   login
right
Home Forums Downloads Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Forum Info
Forum Members: 18,581
Total Threads: 8,667
Posts: 94,503

Administrators:
DeeZire, Redemption

There are currently 49 users online.
Partner Links

Free Credit Repair

Learn the Ticket Broker Secrets
Advertisements


Generals & Zero Hour Editing Discuss any modding related issues to do with Generals and Zero Hour here.

Reply
 
LinkBack Thread Tools
Old 06-15-2004, 11:51 AM   #1 (permalink)
Senior Member
 
Join Date: Jun 2003
Location: Texas
Posts: 709
Send a message via ICQ to Vanguard Send a message via AIM to Vanguard Send a message via MSN to Vanguard Send a message via Yahoo to Vanguard
Default Help with code.

Code:
;------------------------------------------------------------------------------
Weapon Lazr_ComancheRocketPodWeapon
  PrimaryDamage           = 30.0
  PrimaryDamageRadius     = 5.0
  SecondaryDamage         = 10.0
  SecondaryDamageRadius   = 40.0
  ScatterRadius           = 0;changed to zero, unless you want to soften the results of the table below

  ; @todo srj -- need better targets; these are copied from Scud Storm
  ; Instead of a purely random scatter distance, this will divide a clip evenly and randomly at these spots
  ; These specific points are an even distribution simulating a 150 ScatterRadius.
  ; With fewer entries than ClipSize, the extra will hit 0,0 as normal shots
  ; With extra entries, 9 of 12 could be used eg, and then you'd get a different nine next clip.

  ScatterTargetScalar = 50; replaces the ScatterRadius, above, for scaling this table, below
  ScatterTarget           = X: 0.000 Y: 0.133
  ScatterTarget           = X: 0.133 Y:-0.200
  ScatterTarget           = X:-0.067 Y: 0.667
  ScatterTarget           = X: 0.300 Y: 0.300
  ScatterTarget           = X: 0.767 Y: 0.000
  ScatterTarget           = X: 0.500 Y:-0.567
  ScatterTarget           = X:-0.333 Y:-0.800
  ScatterTarget           = X:-0.600 Y:-0.1333
  ScatterTarget           = X:-0.567 Y: 0.433
  ScatterTarget           = X: 0.000 Y: 0.133
  ScatterTarget           = X: 0.133 Y:-0.200
  ScatterTarget           = X:-0.067 Y: 0.667
  ScatterTarget           = X: 0.300 Y: 0.300
  ScatterTarget           = X: 0.767 Y: 0.000
  ScatterTarget           = X: 0.500 Y:-0.567
  ScatterTarget           = X:-0.333 Y:-0.800
  ScatterTarget           = X:-0.600 Y:-0.1333
  ScatterTarget           = X:-0.567 Y: 0.433
  ScatterTarget           = X: 0.000 Y: 0.133
  ScatterTarget           = X: 0.133 Y:-0.200

  ScatterRadiusVsInfantry = 0.0     ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
  AttackRange             = 200.0
  MinimumAttackRange      = 0.0 ;100.0       ; this is to allow for a little "lead" for the helicopter targeting
  DamageType              = EXPLOSION
  DeathType               = EXPLODED
  WeaponSpeed             = 99999
  ProjectileObject        = PulseShell1
  RadiusDamageAffects     = ALLIES ENEMIES NEUTRALS
  DelayBetweenShots       = 200    ; time between shots, msec
  ClipSize                = 20              ; how many shots in a Clip (0 == infinite)
  AutoReloadsClip         = Yes
  ClipReloadTime          = 30000                      ; how long to reload a Clip, msec
  FireSound               = ComancheRocketPodWeaponSound
  ProjectileObject        = PulseShell1
  ProjectileDetonationFX  = NormShell;GenericRedLaserFlare
  FireFX                  = NormMuzzle;PaladinPointDefenseLaserFlare
  ProjectileCollidesWith  = STRUCTURES
  AntiAirborneVehicle     = No
  AntiAirborneInfantry    = No
End

;------------------------------------------------------------------------------
Weapon Lazr_ComancheRocketPodWeaponHyper
  PrimaryDamage           = 40.0
  PrimaryDamageRadius     = 5.0
  SecondaryDamage         = 10.0
  SecondaryDamageRadius   = 40.0
  ScatterRadius           = 0;changed to zero, unless you want to soften the results of the table below

  ; @todo srj -- need better targets; these are copied from Scud Storm
  ; Instead of a purely random scatter distance, this will divide a clip evenly and randomly at these spots
  ; These specific points are an even distribution simulating a 150 ScatterRadius.
  ; With fewer entries than ClipSize, the extra will hit 0,0 as normal shots
  ; With extra entries, 9 of 12 could be used eg, and then you'd get a different nine next clip.

  ScatterTargetScalar = 50; replaces the ScatterRadius, above, for scaling this table, below
  ScatterTarget           = X: 0.000 Y: 0.133
  ScatterTarget           = X: 0.133 Y:-0.200
  ScatterTarget           = X:-0.067 Y: 0.667
  ScatterTarget           = X: 0.300 Y: 0.300
  ScatterTarget           = X: 0.767 Y: 0.000
  ScatterTarget           = X: 0.500 Y:-0.567
  ScatterTarget           = X:-0.333 Y:-0.800
  ScatterTarget           = X:-0.600 Y:-0.1333
  ScatterTarget           = X:-0.567 Y: 0.433
  ScatterTarget           = X: 0.000 Y: 0.133
  ScatterTarget           = X: 0.133 Y:-0.200
  ScatterTarget           = X:-0.067 Y: 0.667
  ScatterTarget           = X: 0.300 Y: 0.300
  ScatterTarget           = X: 0.767 Y: 0.000
  ScatterTarget           = X: 0.500 Y:-0.567
  ScatterTarget           = X:-0.333 Y:-0.800
  ScatterTarget           = X:-0.600 Y:-0.1333
  ScatterTarget           = X:-0.567 Y: 0.433
  ScatterTarget           = X: 0.000 Y: 0.133
  ScatterTarget           = X: 0.133 Y:-0.200

  ScatterRadiusVsInfantry = 0.0     ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
  AttackRange             = 200.0
  MinimumAttackRange      = 0.0 ;100.0       ; this is to allow for a little "lead" for the helicopter targeting
  DamageType              = EXPLOSION
  DeathType               = EXPLODED
  WeaponSpeed             = 99999
  ProjectileObject        = PulseShellH1
  RadiusDamageAffects     = ALLIES ENEMIES NEUTRALS
  DelayBetweenShots       = 200    ; time between shots, msec
  ClipSize                = 20              ; how many shots in a Clip (0 == infinite)
  AutoReloadsClip         = Yes
  ClipReloadTime          = 30000                      ; how long to reload a Clip, msec
  FireSound               = ComancheRocketPodWeaponSound
  ProjectileObject        = PulseShellH1
  ProjectileDetonationFX  = HyperShell;GenericHyperLaserFlare
  FireFX                  = HyperMuzzle;HyperLaserFlare
  ProjectileCollidesWith  = STRUCTURES
  AntiAirborneVehicle     = No
  AntiAirborneInfantry    = No
End


;------------------------------------------------------------------------------
Weapon LaserArtWeapon
  PrimaryDamage               = 150.0
  PrimaryDamageRadius         = 10.0
  SecondaryDamage             = 50.0
  SecondaryDamageRadius       = 25.0
  ScatterRadiusVsInfantry     = 20.0     ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
  AttackRange                 = 350.0
  PreAttackDelay              = 250
  PreAttackType               = PER_SHOT ; Do the delay every single shot
  WeaponSpeed                 = 100.0          ; dist/sec (huge value == effectively instant)
  MinimumAttackRange          = 100.0
  DamageType                  = EXPLOSION
  DeathType                   = EXPLODED
  ProjectileObject            = PulseShell
  ProjectileDetonationFX      = NormShell;GenericRedLaserFlare
  RadiusDamageAffects         = SELF ALLIES ENEMIES NEUTRALS NOT_SIMILAR
  FireSound                   = HumveeWeaponLaser
  DelayBetweenShots           = 1
  ClipSize                    = 1                   ; how many shots in a Clip (0 == infinite)
  ClipReloadTime              = 5000               ; how long to reload a Clip, msec
  ; Uses a clip of one to get the Reloading modelcondition
  CapableOfFollowingWaypoints = Yes

  ; note, these only apply to units that aren't the explicit target
  ; (ie, units that just happen to "get in the way"... projectiles
  ; always collide with the Designated Target, regardless of these flags
  ProjectileCollidesWith = STRUCTURES
End

;------------------------------------------------------------------------------
Weapon LaserArtWeaponHyper
  PrimaryDamage               = 160.0
  PrimaryDamageRadius         = 10.0
  SecondaryDamage             = 50.0
  SecondaryDamageRadius       = 25.0
  ScatterRadiusVsInfantry     = 20.0     ;When this weapon is used against infantry, it can randomly miss by as much as this distance.
  AttackRange                 = 350.0
  PreAttackDelay              = 250
  PreAttackType               = PER_SHOT ; Do the delay every single shot
  WeaponSpeed                 = 100.0          ; dist/sec (huge value == effectively instant)
  MinimumAttackRange          = 100.0
  DamageType                  = EXPLOSION
  DeathType                   = EXPLODED
  ProjectileObject            = PulseShellH
  ProjectileDetonationFX      = HyperShell;GenericHyperLaserFlare
  RadiusDamageAffects         = SELF ALLIES ENEMIES NEUTRALS NOT_SIMILAR
  FireSound                   = HumveeWeaponLaser
  DelayBetweenShots           = 1
  ClipSize                    = 1                   ; how many shots in a Clip (0 == infinite)
  ClipReloadTime              = 5000               ; how long to reload a Clip, msec
  ; Uses a clip of one to get the Reloading modelcondition
  CapableOfFollowingWaypoints = Yes

  ; note, these only apply to units that aren't the explicit target
  ; (ie, units that just happen to "get in the way"... projectiles
  ; always collide with the Designated Target, regardless of these flags
  ProjectileCollidesWith = STRUCTURES
End
Code:
;------------------------------------------------------------------------------
Object Lazr_AmericaVehicleComanche

  ; *** ART Parameters ***
  SelectPortrait         = SACCommanche_L
  ButtonImage            = SACCommanche
  
  UpgradeCameo1 = Upgrade_ComancheRocketPods
  UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
  UpgradeCameo3 = Upgrade_AmericaCountermeasures
  ;UpgradeCameo4 = NONE
  ;UpgradeCameo5 = NONE
  
  Draw = W3DModelDraw ModuleTag_01

    DefaultConditionState
      Model                           = AVLzrComanche
      HideSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      Animation                       = AVLzrComanche.AVLzrComanche
      AnimationMode                   = LOOP
      WeaponMuzzleFlash               = PRIMARY TurretFX
      WeaponFireFXBone                = PRIMARY Muzzle
      WeaponFireFXBone                = SECONDARY Muzzle
      WeaponLaunchBone                = SECONDARY Muzzle
    End

    ConditionState = REALLYDAMAGED
      Model                           = AVLzrComanche_d
      Animation                       = AVLzrComanche_d.AVLzrComanche_d
      AnimationMode                   = LOOP
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE
      HideSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      Animation                       = AVLzrComanche.AVLzrComanche
      AnimationMode                   = LOOP
      WeaponFireFXBone                = TERTIARY TurretMS
      WeaponLaunchBone                = TERTIARY TurretMS
    End

    ConditionState = WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
      Model                           = AVLzrComanche_d
      HideSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      Animation                       = AVLzrComanche_d.AVLzrComanche_d
      AnimationMode                   = LOOP
      WeaponFireFXBone                = TERTIARY TurretMS
      WeaponLaunchBone                = TERTIARY TurretMS
    End

    ConditionState = USER_1
      Model                           = AVLzrComanche
      ShowSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      Animation                       = AVLzrComanche.AVLzrComanche
      AnimationMode                   = LOOP
      WeaponMuzzleFlash               = PRIMARY TurretFX
      WeaponFireFXBone                = PRIMARY Muzzle
      WeaponFireFXBone                = SECONDARY Muzzle
      WeaponLaunchBone                = SECONDARY Muzzle
      WeaponFireFXBone                = TERTIARY TurretMS
      WeaponLaunchBone                = TERTIARY TurretMS
    End

    ConditionState = USER_1 REALLYDAMAGED
      Model                           = AVLzrComanche_d
      Animation                       = AVLzrComanche_d.AVLzrComanche_d
      AnimationMode                   = LOOP
      ShowSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      WeaponFireFXBone                = TERTIARY TurretMS
      WeaponLaunchBone                = TERTIARY TurretMS
    End

    ConditionState = USER_1 WEAPONSET_PLAYER_UPGRADE
      ShowSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      Animation                       = AVLzrComanche.AVLzrComanche
      AnimationMode                   = LOOP
      WeaponFireFXBone                = TERTIARY TurretMS
      WeaponLaunchBone                = TERTIARY TurretMS
    End

    ConditionState = USER_1 WEAPONSET_PLAYER_UPGRADE REALLYDAMAGED
      Model                           = AVLzrComanche_d
      ShowSubObject                   = Barrel01 Housecolor03 Housecolor04 Housecolor05 Housecolor06
      Animation                       = AVLzrComanche_d.AVLzrComanche_d
      AnimationMode                   = LOOP
      WeaponFireFXBone                = TERTIARY TurretMS
      WeaponLaunchBone                = TERTIARY TurretMS
    End

    ConditionState = RUBBLE
      Model                           = AVLzrComanche_d
      Animation                       = AVLzrComanche_d.AVLzrComanche_d
      AnimationMode                   = LOOP
    End

    ConditionState = RUBBLE SPECIAL_DAMAGED
      Model                           = AVLzrComanche_d
      HideSubObject                   = AVComanche_Prop
    End

    OkToChangeModelColor = Yes
  End

  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:Comanche
  EditorSorting       = VEHICLE
  Side                = AmericaLaserGeneral
  TransportSlotCount  = 0                 ;how many "slots" we take in a transport (0 == not transportable)
  VisionRange         = 200.0 
  ShroudClearingRange = 600
  Prerequisites
    Object            = Lazr_AmericaAirfield
  End

  WeaponSet
    Conditions          = None 
    ; -----
    Weapon              = PRIMARY     Comanche20mmCannonWeapon
    PreferredAgainst    = PRIMARY     INFANTRY
    AutoChooseSources   = PRIMARY     FROM_PLAYER FROM_SCRIPT FROM_AI
    ; -----
    Weapon              = SECONDARY   ComancheAntiTankMissileWeapon
    PreferredAgainst    = SECONDARY   VEHICLE STRUCTURE
    AutoChooseSources   = SECONDARY   FROM_PLAYER FROM_SCRIPT FROM_AI
    ; -----
    Weapon              = TERTIARY    Lazr_ComancheRocketPodWeapon
    AutoChooseSources   = TERTIARY    NONE
  End
  WeaponSet
    Conditions          = PLAYER_UPGRADE 
    ; -----
    Weapon              = PRIMARY     Comanche20mmCannonWeapon
    PreferredAgainst    = PRIMARY     INFANTRY
    AutoChooseSources   = PRIMARY     FROM_PLAYER FROM_SCRIPT FROM_AI
    ; -----
    Weapon              = SECONDARY   ComancheAntiTankMissileWeapon
    PreferredAgainst    = SECONDARY   VEHICLE STRUCTURE
    AutoChooseSources   = SECONDARY   FROM_PLAYER FROM_SCRIPT FROM_AI
    ; -----
    Weapon              = TERTIARY    Lazr_ComancheRocketPodWeaponHyper
    AutoChooseSources   = TERTIARY    NONE
  End
  ArmorSet
    Conditions      = None
    Armor           = ComancheArmor
    DamageFX        = None
  End
  ArmorSet
    Conditions            = PLAYER_UPGRADE
    Armor                 = CountermeasuresComancheArmor
    DamageFX              = None
  End
  BuildCost           = 1500
  BuildTime           = 20              ; in seconds  
  ExperienceValue     = 50 50 100 200   ; Experience point value at each level
  ExperienceRequired  = 0 100 200 400   ; Experience points needed to gain each level
  IsTrainable         = Yes             ; Can gain experience
  CommandSet          = Lazr_AmericaVehicleComancheCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect           = ComancheVoiceSelect
  VoiceMove             = ComancheVoiceMove
  VoiceGuard            = ComancheVoiceMove
  VoiceAttack           = ComancheVoiceAttack
  SoundAmbient          = ComancheAmbientLoop
  SoundAmbientRubble    = NoSound
  UnitSpecificSounds
    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    VoiceCreate         = ComancheVoiceCreate
    SoundEject          = PilotSoundEject
    VoiceEject          = PilotVoiceEject
    Afterburner         = RaptorAfterburner
    VoiceGarrison       = ComancheVoiceMove
    TurretMoveStart     = NoSound
    TurretMoveLoop      = NoSound
    VoiceFireRocketPods = ComancheVoiceAttackRocket
  End


  ; *** ENGINEERING Parameters ***
  RadarPriority   = UNIT
  KindOf          = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT PRODUCED_AT_HELIPAD

  Behavior = WeaponSetUpgrade ModuleTag_02
    TriggeredBy = Upgrade_AmericaHyperLaser;Upgrade_ComancheRocketPods
  End
  Behavior = ModelConditionUpgrade ModuleTag_18
    ConditionFlag = USER_1
    TriggeredBy = Upgrade_ComancheRocketPods
  End
  Behavior = ExperienceScalarUpgrade ModuleTag_03
    TriggeredBy = Upgrade_AmericaAdvancedTraining
    AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
  End

  Body = ActiveBody ModuleTag_04
    MaxHealth       = 220.0
    InitialHealth   = 220.0
  End

  Behavior = FXListDie ModuleTag_05
    DeathFX = FX_ComancheStartDeath
  End

  Behavior = JetAIUpdate ModuleTag_06
    MinHeight                     = 5
    NeedsRunway                   = No
    KeepsParkingSpaceWhenAirborne = No
    AutoAcquireEnemiesWhenIdle    = Yes
    ; note that comanches do not return to base when idle
    
    ; this is a bit of a trick... normally, units cannot move-and-fire at
    ; the same time. we need the comanche to be able to. so we give it
    ; a "turret" (invisible) and put the two main weapons on it, but with
    ; no turn rate. voila!
    Turret
      TurretTurnRate = 0      ; this "turret" does not turn
      TurretPitchRate = 0     ; nor does it pitch
      ControlledWeaponSlots = PRIMARY SECONDARY
    End

  End
  Locomotor = SET_NORMAL  ComancheLocomotor
  Locomotor = SET_TAXIING BasicHelicopterTaxiLocomotor

  Behavior = PhysicsBehavior ModuleTag_07
    Mass = 50.0
  End
  Behavior = HelicopterSlowDeathBehavior ModuleTag_08
    DestructionDelay                = 99999999        ; the destruction delay
    SpiralOrbitTurnRate             = 140.0           ; in degrees per second, bigger # = tighter spiral
    SpiralOrbitForwardSpeed         = 350.0           ; bigger # = larger spiral
    SpiralOrbitForwardSpeedDamping  = .9999           ; smaller #'s = slow down faster
    MaxBraking                      = 190   ; max braking we can use during death spiral (lower num = wilder spiral)    
    SoundDeathLoop                  = ComancheDamagedLoop
    MinSelfSpin                     = 100                     ; in degrees per second
    MaxSelfSpin                     = 300                     ; in degrees per second
    SelfSpinUpdateDelay             = 100             ; in milliseconds
    SelfSpinUpdateAmount            = 10             ; in degrees   
    FallHowFast                     = 12.0%  ; fraction of gravity, lower = take longer to fall
    MinBladeFlyOffDelay             = 1500            ; in milliseconds
    MaxBladeFlyOffDelay             = 1500            ; in milliseconds
    AttachParticle                  = SootySmokeTrail
    AttachParticleBone              = Propeller02
    BladeObjectName                 = ComancheBlades
    BladeBoneName                   = Propeller01    
    ; Most things that eject pilots do so immediately upon death,
    ; via use of EjectPilotDie, but Helicopters are a special case...
    ; they need to do so after their blades are ejected. 
    OCLEjectPilot                   = OCL_EjectPilotViaParachute
    FXBlade                         = FX_HelicopterBladeExplosion
    OCLBlade                        = OCL_HelicopterBladeExplosion
    FXHitGround                     = FX_HelicopterHitGround
    OCLHitGround                    = OCL_HelicopterHitGround
    FXFinalBlowUp                   = FX_GroundedHelicopterBlowUp
    OCLFinalBlowUp                  = OCL_GroundedHelicopterBlowUp
    DelayFromGroundToFinalDeath     = 1500
    FinalRubbleObject               = ComancheRubbleHull
  End

  Behavior = TransitionDamageFX ModuleTag_09
    ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuousDown
    ReallyDamagedFXList1         = Loc: X:0 Y:0 Z:0 FXList:FX_ComancheDamageTransition
  End

  Behavior                = ArmorUpgrade ModuleTag_Armor01
    TriggeredBy           = Upgrade_AmericaCountermeasures
  End

  Behavior                = CountermeasuresBehavior ModuleTag_10
    TriggeredBy           = Upgrade_AmericaCountermeasures
    FlareTemplateName     = CountermeasureFlare
    FlareBoneBaseName     = Flare ; Name of the base flare bone (Flare01, Flare02, Flare03)
    VolleySize            = 2     ; Number of flares launched per volley (requires bones)
    VolleyArcAngle        = 60.0  ; Max angle of flare relative to forward direction (with VolleySize of 1, flare will always goes straight back).
    VolleyVelocityFactor  = 2.0   ; Shoots out flares at a stronger velocity with a higher value.
    DelayBetweenVolleys   = 1000  ; Time between flare volleys
    NumberOfVolleys       = 3     ; Number of times the volleys will fire before reloading
    ReloadTime            = 4000  ; After all volleys launched, then reloading must occur. If 0, then reloading occurs at airstrip only.
    EvasionRate           = 30%   ; With active flares, the specified percentage will be diverted.
    ReactionLaunchLatency = 0     ; Reaction between getting shot at and the firing of the first volley of countermeasures.
    MissileDecoyDelay     = 200   ; A reported missile that has been determined to hit a decoy will wait this long before acquiring countermeasures.
  End

  Behavior = FlammableUpdate ModuleTag_21
    AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
    AflameDamageAmount = 3       ; taking this much damage...
    AflameDamageDelay = 500       ; this often.
  End

  Geometry = BOX
  GeometryMajorRadius = 20.0
  GeometryMinorRadius = 3.0
  GeometryHeight = 25.0     
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME    
  ShadowSizeX = 89  ; minimum elevation angle above horizon. Used to limit shadow length

End

;----------------------------------------------------------
Object AmericaVehicleLaserArt

  ; *** ART Parameters ***
  SelectPortrait         = LzrArt
  ButtonImage            = LzrArt

  UpgradeCameo1 = Upgrade_AmericaScoutDrone
  UpgradeCameo2 = Upgrade_AmericaBattleDrone
  UpgradeCameo3 = Upgrade_AmericaAdvancedTraining
  UpgradeCameo4 = Upgrade_AmericaHellfireDrone
  ;UpgradeCameo5 = XXX

  Draw = W3DTankDraw ModuleTag_01
    OkToChangeModelColor = Yes

    DefaultConditionState
      Model = AVLzrArt
      Turret = TURRET
      TurretPitch = TURRETEL
      WeaponFireFXBone = PRIMARY Muzzle
      WeaponRecoilBone = PRIMARY Barrel
      WeaponMuzzleFlash = PRIMARY Muzzle
      WeaponLaunchBone = PRIMARY Muzzle
    End

    ConditionState = REALLYDAMAGED
      Model = AVLzrArt_d
    End
    AliasConditionState = RUBBLE

    TrackMarks           = EXTnkTrack.tga

  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:LaserArt
  Side = AmericaLaserGeneral
  EditorSorting   = VEHICLE
  TransportSlotCount = 3                 ;how many "slots" we take in a transport (0 == not transportable)
  BuildCost       = 1200
  BuildTime       = 20.0          ;in seconds
  VisionRange     = 180
  ShroudClearingRange = 200
  Prerequisites
    Object = Lazr_AmericaWarFactory
    Object = Lazr_AmericaStrategyCenter
  End
  ExperienceValue = 50 50 100 150    ;Experience point value at each level
  ExperienceRequired = 0 200 400 800  ;Experience points needed to gain each level
  IsTrainable = Yes             ;Can gain experience
  WeaponSet
    Conditions = None
    Weapon = PRIMARY LaserArtWeapon
  End
  WeaponSet
    Conditions = PLAYER_UPGRADE
    Weapon = PRIMARY LaserArtWeaponHyper
  End
  ArmorSet
    Conditions      = None
    Armor           = TruckArmor
    DamageFX        = TankDamageFX
  End
  CrusherLevel           = 2  ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
  CrushableLevel         = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  CommandSet      = AmericaVehicleLaserCommandSet

  ; *** AUDIO Parameters ***
  VoiceSelect = TomahawkVoiceSelect
  VoiceMove = TomahawkVoiceMove
  VoiceGuard = TomahawkVoiceMove
  VoiceAttack = TomahawkVoiceAttack
  SoundMoveStart = TomahawkMoveStart
  SoundMoveStartDamaged = TomahawkMoveStart

  UnitSpecificSounds
    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    VoiceCreate = TomahawkVoiceCreate
    TurretMoveStart = NoSound
    TurretMoveLoop = TurretMoveLoopLoud
    SoundEject = PilotSoundEject
    VoiceEject = PilotVoiceEject
    VoiceCrush = TomahawkVoiceCrush
    VoiceEnter = TomahawkVoiceMove
    VoiceBombard = TomahawkVoiceAttack
  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD SELECTABLE DONT_AUTO_CRUSH_INFANTRY CAN_ATTACK CAN_CAST_REFLECTIONS VEHICLE SCORE

  Body = ActiveBody ModuleTag_02
    MaxHealth       = 180.0
    InitialHealth   = 180.0

    ; Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes your max health.
    ; The cap limits how extra-subdued you can be, and the other numbers detemine how fast it drains away on its own.
    SubdualDamageCap = 360
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50
  End
  Behavior = WeaponSetUpgrade ModuleTag_16
    TriggeredBy = Upgrade_AmericaHyperLaser;Upgrade_ComancheRocketPods
  End

  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      TurretTurnRate = 60   ; turn rate, in degrees per sec
      TurretPitchRate = 60
      FirePitch = 70  ; Instead of aiming pitchwise at the target, it will aim here
      AllowsPitch = Yes
      ControlledWeaponSlots = PRIMARY
    End
    AutoAcquireEnemiesWhenIdle = No NotWhileAttacking
  End
  Locomotor = SET_NORMAL TomahawkLocomotor

  Behavior = PhysicsBehavior ModuleTag_04
    Mass = 50.0
  End
  Behavior = SlowDeathBehavior ModuleTag_05
    DeathTypes = ALL -CRUSHED -SPLATTED
    DestructionDelay  = 500
    DestructionDelayVariance  = 100
    FX  = INITIAL  FX_GenericTankDeathEffect
    OCL = MIDPOINT OCL_AmericaVehicleTomahawkDie
    FX =  FINAL FX_AmericaVehicleTomahawkDeathExplosion
  End

  Behavior = ObjectCreationUpgrade ModuleTag_06
    UpgradeObject = Lazr_OCL_AmericanBattleDrone
    TriggeredBy   = Upgrade_AmericaBattleDrone
    ConflictsWith = Upgrade_AmericaScoutDrone Upgrade_AmericaHellfireDrone
  End
  Behavior = ObjectCreationUpgrade ModuleTag_07
    UpgradeObject = OCL_AmericanScoutDrone
    TriggeredBy   = Upgrade_AmericaScoutDrone
    ConflictsWith = Upgrade_AmericaBattleDrone Upgrade_AmericaHellfireDrone
  End
  Behavior = ObjectCreationUpgrade ModuleTag_15
    UpgradeObject = OCL_AmericanHellfireDrone
    TriggeredBy   = Upgrade_AmericaHellfireDrone
    ConflictsWith = Upgrade_AmericaBattleDrone Upgrade_AmericaScoutDrone
  End

  Behavior = ProductionUpdate ModuleTag_08
    MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame
  End

  Behavior = ExperienceScalarUpgrade ModuleTag_09
    TriggeredBy = Upgrade_AmericaAdvancedTraining
    AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
  End

  Behavior = DestroyDie ModuleTag_10
    DeathTypes = NONE +CRUSHED +SPLATTED
  End

  Behavior = FXListDie ModuleTag_11
    DeathTypes = NONE +CRUSHED +SPLATTED
    DeathFX = FX_CarCrush
  End

  Behavior = CreateObjectDie ModuleTag_12
    DeathTypes = NONE +CRUSHED +SPLATTED
    CreationList = OCL_CrusaderTank_CrushEffect
  End

;  Behavior = FXListDie
;    DeathTypes = ALL -CRUSHED -SPLATTED
;    DeathFX = FX_GenericTankDeathEffect
;  End
; Behavior = CreateObjectDie
;    DeathTypes = ALL -CRUSHED -SPLATTED
;    CreationList = OCL_GenericTankDeathEffect
;  End
  Behavior = EjectPilotDie ModuleTag_13
    DeathTypes = ALL -CRUSHED -SPLATTED
    ExemptStatus = HIJACKED
    VeterancyLevels =  ALL -REGULAR ;only vet+ gives pilot
    GroundCreationList = OCL_EjectPilotOnGround
    AirCreationList = OCL_EjectPilotViaParachute
  End

  Behavior = TransitionDamageFX ModuleTag_14
    ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
    ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleMasterDamageTransition
  End

  Behavior = FlammableUpdate ModuleTag_21
    AflameDuration = 5000         ; If I catch fire, I'll burn for this long...
    AflameDamageAmount = 3       ; taking this much damage...
    AflameDamageDelay = 500       ; this often.
  End

  Geometry = BOX
  GeometryMajorRadius = 15.0
  GeometryMinorRadius = 10.0
  GeometryHeight = 10.0
  GeometryIsSmall = Yes
  Shadow = SHADOW_VOLUME
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length

End
Code:
FXList NormShell
  ParticleSystem
    Name = GenericRedLaserFlare
  End
End

FXList NormMuzzle
  ParticleSystem
    Name = PaladinPointDefenseLaserFlare
  End
End

FXList HyperShell
  ParticleSystem
    Name = GenericHyperLaserFlare
  End
End

FXList HyperMuzzle
  ParticleSystem
    Name = HyperLaserFlare
  End
End
Code:
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShell

  ; *** ART Parameters ***
  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes
    ConditionState = NONE
      Model = SYSBlaster
    End
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:Missile
  EditorSorting   = SYSTEM
  VisionRange = 0.0
  ArmorSet
    Conditions      = None
    Armor           = ProjectileArmor
    DamageFX        = None
  End

  ; *** ENGINEERING Parameters ***
  KindOf = PROJECTILE
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

  Behavior = PhysicsBehavior ModuleTag_09
    Mass = 1
  End

  Behavior = DumbProjectileBehavior ModuleTag_04
    ; To tweak a Bezier path, please see GS
    FirstHeight = 50  ; Height of Bezier control points above highest intervening terrain
    SecondHeight = 150
    FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
    SecondPercentIndent = 70%
    FlightPathAdjustDistPerSecond   = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag.
  End

;  Behavior = DumbProjectileBehavior ModuleTag_10
;  End

;  Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor

  Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
  GeometryMajorRadius = 4.0
  GeometryHeight = 4.0
  GeometryIsSmall = Yes
;  Scale = 3.0                            ;Scaling
  Shadow = SHADOW_DECAL
End

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShellH

  ; *** ART Parameters ***
  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes
    ConditionState = NONE
      Model = SYSBlasterH
    End
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:Missile
  EditorSorting   = SYSTEM
  VisionRange = 0.0
  ArmorSet
    Conditions      = None
    Armor           = ProjectileArmor
    DamageFX        = None
  End

  ; *** ENGINEERING Parameters ***
  KindOf = PROJECTILE
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

  Behavior = DumbProjectileBehavior ModuleTag_04
    ; To tweak a Bezier path, please see GS
    FirstHeight = 50  ; Height of Bezier control points above highest intervening terrain
    SecondHeight = 150
    FirstPercentIndent = 30% ; Percentage of shot distance control points are placed
    SecondPercentIndent = 70%
    FlightPathAdjustDistPerSecond   = 0 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag.
  End

;  Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor

  Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
  GeometryMajorRadius = 4.0
  GeometryHeight = 4.0
  GeometryIsSmall = Yes
;  Scale = 3.0                            ;Scaling
  Shadow = SHADOW_DECAL
End

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShell1

  ; *** ART Parameters ***
  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes
    ConditionState = NONE
      Model = SYSBlaster
    End
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:Missile
  EditorSorting   = SYSTEM
  VisionRange = 0.0
  ArmorSet
    Conditions      = None
    Armor           = ProjectileArmor
    DamageFX        = None
  End

  ; *** ENGINEERING Parameters ***
  KindOf = PROJECTILE
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

; ---- begin Projectile death behaviors
  Behavior = InstantDeathBehavior DeathModuleTag_01
    DeathTypes = NONE +DETONATED
    ; we detonated normally.
    ; no FX, just quiet destroy ourselves
  End
  Behavior = InstantDeathBehavior DeathModuleTag_02
    DeathTypes = NONE +LASERED
    ; shot down by laser.
    FX         = FX_GenericMissileDisintegrate
    OCL        = OCL_GenericMissileDisintegrate
  End
  Behavior = InstantDeathBehavior DeathModuleTag_03
    DeathTypes = ALL -LASERED -DETONATED
    ; shot down by nonlaser.
    FX         = FX_GenericMissileDeath
  End
; ---- end Projectile death behaviors

  Behavior = PhysicsBehavior ModuleTag_06
    Mass = 1
  End
  Behavior = MissileAIUpdate ModuleTag_07
    TryToFollowTarget = No
    FuelLifetime = 2000
    InitialVelocity = 150                ; in dist/sec
    IgnitionDelay = 0
    IgnitionFX = FX_BuggyMissileIgnition
  End
  Locomotor = SET_NORMAL ComancheRocketPodLocomotor

;  Behavior = DumbProjectileBehavior ModuleTag_10
;  End

;  Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor

  Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
  GeometryMajorRadius = 4.0
  GeometryHeight = 4.0
  GeometryIsSmall = Yes
;  Scale = 3.0                            ;Scaling
  Shadow = SHADOW_DECAL
End

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
Object PulseShellH1

  ; *** ART Parameters ***
  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes
    ConditionState = NONE
      Model = SYSBlasterH
    End
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:Missile
  EditorSorting   = SYSTEM
  VisionRange = 0.0
  ArmorSet
    Conditions      = None
    Armor           = ProjectileArmor
    DamageFX        = None
  End

  ; *** ENGINEERING Parameters ***
  KindOf = PROJECTILE
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

; ---- begin Projectile death behaviors
  Behavior = InstantDeathBehavior DeathModuleTag_01
    DeathTypes = NONE +DETONATED
    ; we detonated normally.
    ; no FX, just quiet destroy ourselves
  End
  Behavior = InstantDeathBehavior DeathModuleTag_02
    DeathTypes = NONE +LASERED
    ; shot down by laser.
    FX         = FX_GenericMissileDisintegrate
    OCL        = OCL_GenericMissileDisintegrate
  End
  Behavior = InstantDeathBehavior DeathModuleTag_03
    DeathTypes = ALL -LASERED -DETONATED
    ; shot down by nonlaser.
    FX         = FX_GenericMissileDeath
  End
; ---- end Projectile death behaviors

  Behavior = PhysicsBehavior ModuleTag_06
    Mass = 1
  End
  Behavior = MissileAIUpdate ModuleTag_07
    TryToFollowTarget = No
    FuelLifetime = 2000
    InitialVelocity = 150                ; in dist/sec
    IgnitionDelay = 0
    IgnitionFX = FX_BuggyMissileIgnition
  End
  Locomotor = SET_NORMAL ComancheRocketPodLocomotor

;  Locomotor = SET_NORMAL SpectreHowitzerShellLocomotor

  Geometry = Cylinder ; Since collision extents can't tilt, this is a little fake
  GeometryMajorRadius = 4.0
  GeometryHeight = 4.0
  GeometryIsSmall = Yes
;  Scale = 3.0                            ;Scaling
  Shadow = SHADOW_DECAL
End
Code:
CommandSet Lazr_AmericaAirfieldCommandSet
  1 = Lazr_Command_ConstructAmericaJetRaptor
  2 = Lazr_Command_ConstructAmericaVehicleComanche
  3 = Lazr_Command_ConstructAmericaJetAurora
  4 = Lazr_Command_ConstructAmericaJetStealthFighter
  5 = Lazr_Command_ConstructAmericaVehicleBlackhawk
  7 = Command_UpgradeComancheRocketPods
  8 = Command_UpgradeAmericaLaserMissiles
  9 = Command_UpgradeAmericaCountermeasures
 10 = Command_UpgradeAmericaBunkerBusters
 13 = Command_SetRallyPoint
 14 = Command_Sell 
End

CommandSet Lazr_AmericaStrategyCenterCommandSet
  1 = Command_InitiateBattlePlanBombardment
  2 = Command_CIAIntelligence
  3 = Command_InitiateBattlePlanHoldTheLine
  4 = Command_UpgradeAmericaAPCCannon
  5 = Command_InitiateBattlePlanSearchAndDestroy
  6 = Command_UpgradeAmericaChemicalSuits
  7 = Command_UpgradeAmericaMOAB
  8 = Command_UpgradeAmericaCompositeArmor
  9 = Command_UpgradeAmericaAdvancedTraining
 10 = Command_UpgradeAmericaDroneArmor
 11 = Command_StrategyCenter_Stop
 12 = Command_UpgradeAmericaHyperLaser
 13 = Command_UpgradeAmericaSupplyLines
 14 = Command_Sell   
End

CommandSet Lazr_AmericaVehicleComancheCommandSet
  1  = Command_AmericaVehicleComancheFireRocketPods
  11 = Command_AttackMove
  13 = Command_Guard
  14 = Command_Stop
End

CommandSet AmericaVehicleLaserCommandSet
  1  = Lazr_Command_ConstructAmericaVehicleBattleDrone
  2  = Lazr_Command_ConstructAmericaVehicleScoutDrone
  3  = Lazr_Command_ConstructAmericaVehicleHellfireDrone
  11 = Command_AttackMove
  13 = Command_Guard
  14 = Command_Stop
End
Now when I start a match as or with a laser general then the game crashes, WB opens normally, the error log reads as follows:

Release Crash at Mon Jun 14 22:43:53 2004
; Reason Uncaught Exception in GameEngine::update

Last error:


Current stack:
Vanguard is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Where does this code go ? adamstrange Generals & Zero Hour Editing 3 06-27-2007 09:21 PM
Help with code. Vanguard Generals & Zero Hour Editing 0 06-25-2004 01:07 AM
Help with code Vanguard Generals & Zero Hour Editing 0 06-15-2004 11:53 AM
Help with code. Vanguard Generals & Zero Hour Editing 0 06-15-2004 11:52 AM
Code Red 0.95 Dgaaz Red Alert 2 & Yuri's Revenge Editing 0 04-29-2003 08:09 AM


All times are GMT -4. The time now is 07:06 AM.


Design By: Miner Skinz.com
Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.