NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago
Hey all!

Im trying to make a forcefield for the USA power plant...
So far I can upgrade the powerplants to have blue semi-transparent spheres around them that look like shields... The shields are actually drones... It all looks pretty good, but the shields dont work right... I'm having 2 problems with them that I hope someone can help me with...

1: Units and missiles can pass right through them
2:They dont die when the powerplant dies, though I can kill them afterwards.

Here are the codes:

Added to the powerplant:
  Behavior = ObjectCreationUpgrade ModuleTag_41
    UpgradeObject = OCL_Shields
    TriggeredBy   = Upgrade_Shields
;    ConflictsWith = Upgrade_AmericaBattleDrone Upgrade_AmericaScoutDrone
  End

Here is the drone code:
Object TestBubble

  ; *** ART Parameters ***
  SelectPortrait         = SAScout_L
  ButtonImage            = SAScout
  
  UpgradeCameo1 = Upgrade_AmericaDroneArmor
  ;UpgradeCameo2 = NONE
  ;UpgradeCameo3 = NONE
  ;UpgradeCameo4 = NONE
  ;UpgradeCameo5 = NONE
  
  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes

    ConditionState = NONE
      Model = TestBubble
;      Animation = AVScoutDr.AVScoutDr
;      AnimationMode = LOOP
    End

    ConditionState = REALLYDAMAGED
      Model = TestBubble
;      Animation = AVScoutDr_d.AVScoutDr_d
;      AnimationMode = LOOP
    End
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:ScoutDrone
  Side = America
  EditorSorting   = VEHICLE
  TransportSlotCount = 0                 ;how many "slots" we take in a transport (0 == not transportable)
  ArmorSet
    Conditions      = None
    Armor           = StructureArmor
    DamageFX        = SmallTankDamageFX
  End
  BuildCost       = 400
  BuildTime       = 10.0          ;in seconds    
  VisionRange     = 10000
  ShroudClearingRange = 10000
  IsTrainable     = No  ;Can gain experience
  
  ; *** AUDIO Parameters ***
  VoiceSelect = NoSound
  VoiceMove = NoSound
  VoiceAttack = NoSound
  SoundMoveStart = NoSound

  UnitSpecificSounds
    ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs
    TurretMoveStart = NoSound
    TurretMoveLoop = TurretMoveLoop
  End


  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  KindOf = PRELOAD STRUCTURE IMMOBILE CAN_CAST_REFLECTIONS DRONE NO_SELECT ;SELECTABLE
  
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 1000.0
    InitialHealth   = 1000.0
  End

  Behavior = AIUpdateInterface ModuleTag_03
    Turret
      TurretTurnRate = 60   // turn rate, in degrees per sec
      ControlledWeaponSlots = PRIMARY
    End
    AutoAcquireEnemiesWhenIdle = Yes
  End
  Locomotor = SET_NORMAL DroneLocomotor
  Behavior = StealthDetectorUpdate ModuleTag_04
    DetectionRate   = 500   ; how often to rescan for stealthed things in my sight (msec)
    ;DetectionRange = ??? ;Dustin, enable this for independant balancing!
    CanDetectWhileGarrisoned  = No ;Garrisoned means being in a structure that you units can shoot out of.
    CanDetectWhileContained   = No ;Contained means being in a transport or tunnel network.
  End
  Behavior = PhysicsBehavior ModuleTag_05
    Mass = 50.0
    KillWhenRestingOnGround = yes ; No
    AllowBouncing = No
  End

  Behavior = SlavedUpdate ModuleTag_06
    GuardMaxRange = 0      ;How far away from master I'm allowed when master is idle (doesn't wander)
    GuardWanderRange = 0   ;How far away I'm allowed to wander from master while guarding.
    AttackRange = 0        ;How far away from master I'm allowed when master is attacking a target.
    AttackWanderRange = 0  ;How far I'm allowed to wander from target.
    ScoutRange = 0         ;How far away from master I'm allowed when master is moving.
    ScoutWanderRange = 0   ;How far I'm allowed to wander from scout point.
    DistToTargetToGrantRangeBonus = 0 ;How close I have to be to the master's target in order to grant master a range bonus.
    StayOnSameLayerAsMaster = Yes
  End

;  Behavior = MaxHealthUpgrade ModuleTag_07
;    TriggeredBy   = Upgrade_AmericaDroneArmor
;    AddMaxHealth  = 50.0
;    ChangeType    = ADD_CURRENT_HEALTH_TOO   ;Choices are PRESERVE_RATIO, ADD_CURRENT_HEALTH_TOO, and SAME_CURRENTHEALTH
;  End

  Behavior = DestroyDie ModuleTag_08
    DeathTypes = ALL
  End
  Behavior                 = CreateObjectDie ModuleTag_09
    DeathTypes = ALL
    CreationList      = OCL_AmericaScoutDroneExplode
  End
  Behavior                 = FXListDie ModuleTag_10
    DeathTypes = ALL
    DeathFX           = FX_AmericaScoutDroneExplode
  End
  
  Behavior                 = TransitionDamageFX ModuleTag_11
    ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01
    ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_BattleDroneDamageTransitionSmall
  End

  Behavior = UpgradeDie  ModuleTag_12
   ;This frees the object based upgrade for the producer object.
   DeathTypes = ALL
   UpgradeToRemove      = Upgrade_Shields
  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 = SPHERE
  GeometryMajorRadius = 100.0
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME
  ShadowSizeX = 89  ; minimum elevation angle above horizon. Used to limit shadow length

End
Sponsor
NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago
I've edited the code a lot but there are no changes in game... Same 2 problems as in first post...

The new Forcefield code:

Object TestBubble

  ; *** ART Parameters ***
  SelectPortrait         = SAScout_L
  ButtonImage            = SAScout

  
  Draw = W3DModelDraw ModuleTag_01
    OkToChangeModelColor = Yes

    ConditionState = NONE
      Model = TestBubble
    End

    ConditionState = REALLYDAMAGED
      Model = TestBubble
    End
  End

  ; ***DESIGN parameters ***
  DisplayName      = OBJECT:ScoutDrone
  Side = America
  EditorSorting   = STRUCTURE
  TransportSlotCount = 0                 ;how many "slots" we take in a transport (0 == not transportable)
  ArmorSet
    Conditions      = None
    Armor           = StructureArmorTough
    DamageFX        = SmallTankDamageFX
  End
  BuildCost       = 400
  BuildTime       = 10.0          ;in seconds    
  EnergyProduction  = -1
  VisionRange     = 0
  ShroudClearingRange = 0
  IsTrainable     = No  ;Can gain experience
  
  ; *** AUDIO Parameters ***
  VoiceSelect = NoSound
  VoiceMove = NoSound
  VoiceAttack = NoSound
  SoundMoveStart = NoSound


  ; *** ENGINEERING Parameters ***
  RadarPriority = STRUCTURE
  KindOf = PRELOAD STRUCTURE IMMOBILE CAN_CAST_REFLECTIONS NO_SELECT DRONE;SELECTABLE 
  
  Body = StructureBody ModuleTag_02
    MaxHealth       = 1000.0
    InitialHealth   = 1000.0
  End

  Behavior = AIUpdateInterface ModuleTag_03
  End


  Behavior = SlavedUpdate ModuleTag_06
    GuardMaxRange = 0      ;How far away from master I'm allowed when master is idle (doesn't wander)
    GuardWanderRange = 0   ;How far away I'm allowed to wander from master while guarding.
    AttackRange = 0        ;How far away from master I'm allowed when master is attacking a target.
    AttackWanderRange = 0  ;How far I'm allowed to wander from target.
    ScoutRange = 0         ;How far away from master I'm allowed when master is moving.
    ScoutWanderRange = 0   ;How far I'm allowed to wander from scout point.
    DistToTargetToGrantRangeBonus = 0 ;How close I have to be to the master's target in order to grant master a range bonus.
    StayOnSameLayerAsMaster = Yes
  End


  Behavior = DestroyDie ModuleTag_08
    DeathTypes = ALL
  End


  Behavior = UpgradeDie  ModuleTag_12
   ;This frees the object based upgrade for the producer object.
   DeathTypes = ALL
   UpgradeToRemove      = Upgrade_Shields
  End

  Geometry = SPHERE
  GeometryMajorRadius = 100.0
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME

End
Annihilationzh
14 years ago
Depends on how you want to do it. I can't remember how to do it the normal way.

Personally, I'd give it a super fast invisible point-defence laser that uses the death type detonated so that missiles will explode on contact.

As for the units passing through, you could make units fly backwards from the forcefield by using a shock wave in a fireweaponupdate with the same radius as the forcefield.
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.
NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago
Where might I clone a shock wave from?
Annihilationzh
14 years ago
MOAB, nuke mig, etc.
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.
NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago
ok.... How do I make the drone die when the powerplant dies?

Do I attach it to the model itself and just hide it until an upgrade has been purchased?
Annihilationzh
14 years ago
Use a power plant death weapon. Or just restore the usual drone death method.
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.
NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago
Got it working now... I modified all the different renders of the power-plant to have the shield,
then added a hide object line, then an upgrade to upgrade the armor of the building and show the shield, so now it works in all the different states...

DONE!!!