NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago
I have an object upgrade that adds a speaker tower to the supply truck much like the overlord upgrade... My towers show up in the right place, but kinda floating around, always horizontal no matter the terrain slope. I've been looking around the ini files for something to do with this, but cant find anything. Does anyone know how to properly attach a spawned object?

EDIT:
I'll bet it it's something in the model. Like the bone not being attached to the model or something.

EDIT:
I tried grouping the spawn bone to the main model, but that didn't help at all.
Sponsor
Annihilationzh
14 years ago
Can I see the code? I've got too many questions to write down that would all be answered by the code.
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
;China Supply Truck
Object Nuke_ChinaVehicleSupplyTruck

  ; *** ART Parameters ***
  
  SelectPortrait         = SNSupplyTruck_L
  ButtonImage            = SNSupplyTruck
  
  ;UpgradeCameo1 = NONE
  ;UpgradeCameo2 = NONE
  ;UpgradeCameo3 = NONE
  UpgradeCameo1 = Upgrade_ArmTheTrucks
  UpgradeCameo5 = Upgrade_ChinaSupplyTkTower
  
  Draw = W3DTruckDraw ModuleTag_01
    OkToChangeModelColor = Yes
    
    DefaultConditionState
      Model           = NVSSUPPLYTK
      HideSubObject   = Cargo01
    End
    
    ConditionState    = REALLYDAMAGED
      Model           = NVSSUPPLYTK_D
    End
    
    ConditionState    = RUBBLE
      Model           = NVSSUPPLYTK_D
    End
    
    ConditionState    = CARRYING
      ShowSubObject   = Cargo01
    End
    
    ConditionState    = REALLYDAMAGED CARRYING
      Model           = NVSSUPPLYTK_D
      ShowSubObject   = Cargo01
    End
    
    ConditionState    = RUBBLE CARRYING
      Model           = NVSSUPPLYTK_D
      ShowSubObject   = Cargo01
    End
    
    TrackMarks              = EXTireTrack.tga

    LeftFrontTireBone           = Tire01
    RightFrontTireBone          = Tire02
    MidLeftRearTireBone         = Tire03
    MidRightRearTireBone        = Tire04
    LeftRearTireBone            = Tire05
    RightRearTireBone           = Tire06
    TireRotationMultiplier      = 0.2   ; this * speed = rotation.
    PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.

    Dust                    = RocketBuggyDust
    DirtSpray               = RocketBuggyDirtSpray
    PowerslideSpray         = RocketBuggyDirtPowerSlide

  End

  ; ***DESIGN parameters ***
  DisplayName         = OBJECT:SupplyTruck
  Side                = ChinaNukeGeneral
  EditorSorting       = VEHICLE
  TransportSlotCount  = 2                 ;how many "slots" we take in a transport (0 == not transportable)
  WeaponSet
    Conditions = NONE 
    Weapon = PRIMARY NONE
  End

  WeaponSet
    Conditions = PLAYER_UPGRADE 
    Weapon = PRIMARY ConvoyTruckSuicideWeapon 
  End


  BuildCost           = 600
  BuildTime           = 10.0      ;in seconds
  VisionRange         = 150
  ShroudClearingRange = 300
  Prerequisites
    Object = Nuke_ChinaSupplyCenter
  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              = NukeSupplyTruckCommandSetNEW
  ; *** AUDIO Parameters ***
  VoiceSelect             = SupplyTruckVoiceSelect
  VoiceMove               = SupplyTruckVoiceMove
  VoiceAttack             = NoSound
  SoundMoveStart          = SupplyTruckMoveStart
  SoundMoveStartDamaged = SupplyTruckMoveStart
  UnitSpecificSounds
    VoiceCreate           = SupplyTruckVoiceCreate
    TruckLandingSound     = NoSound
    TruckPowerslideSound  = NoSound
    VoiceSupply           = SupplyTruckVoiceSupply
    VoiceCrush            = SupplyTruckVoiceCrush
    VoiceEnter            = SupplyTruckVoiceMove

  End

  ; *** ENGINEERING Parameters ***
  RadarPriority = UNIT
  ;@todo lorenzen removed the CAN_ATTACK from the chinasupplytruck... ok?
  KindOf = PRELOAD CAN_ATTACK SELECTABLE CAN_CAST_REFLECTIONS VEHICLE HARVESTER SCORE
  
  Body = ActiveBody ModuleTag_02
    MaxHealth       = 300.0
    InitialHealth   = 300.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 = 600
    SubdualDamageHealRate = 500
    SubdualDamageHealAmount = 50
  End
  Behavior = SupplyTruckAIUpdate ModuleTag_03
    MaxBoxes = 4
    SupplyCenterActionDelay = 400     ; ms for whole thing (one transaction)
    SupplyWarehouseActionDelay = 1000 ; ms per box (many small transactions)
    SupplyWarehouseScanDistance = 700 ;350 ; Max distance to look for a warehouse, or we go home.  (Direct dock command on warehouse overrides, and no max on Center Scan)
    SuppliesDepletedVoice = SupplyTruckVoiceSuppliesDepleted
  End
  Locomotor = SET_NORMAL SupplyTruckLocomotor
  Behavior = PhysicsBehavior ModuleTag_04
    Mass = 5.0
  End

  ExperienceValue    = 50 50 50 50 ;Experience point value at each level

  Behavior = SlowDeathBehavior ModuleTag_05
    DeathTypes = ALL -SUICIDED
    DestructionDelay = 200
    DestructionDelayVariance = 100
    FX  = FINAL    FX_SupplyTruckExplosionOneFinal
    OCL = FINAL    OCL_ChinaSupplyTruckDeathEffect
  ;  Weapon = FINAL DirtyNukeCreationWeapon
  End
   
  Behavior = SlowDeathBehavior ModuleTag_29
    DeathTypes = NONE +SUICIDED
    DestructionDelay = 0
    OCL = FINAL OCL_GenericCarExplode
;    Weapon = FINAL DirtyNukeCreationWeapon
  End

  Behavior = FireWeaponWhenDeadBehavior ModuleTag_40
    DeathWeapon   = ChinaSupplyTKDeathWeapon ;DirtyNukeCreationWeapon
    StartsActive  = No                        ; turned on by upgrade
    TriggeredBy   = Upgrade_ArmTheTrucks
  End

 
  Behavior = FXListDie ModuleTag_06
    DeathTypes = NONE +CRUSHED +SPLATTED
    DeathFX = FX_CarCrush
  End
  
  Behavior = CreateObjectDie ModuleTag_07
    DeathTypes = NONE +CRUSHED +SPLATTED
    CreationList = OCL_ChinaSupplyTruck_CrushEffect
  End

  Behavior                       = TransitionDamageFX ModuleTag_08
    ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmallLightSmokeColumn
    ReallyDamagedFXList1         = Loc: X:0 Y:0 Z:0 FXList:FX_NukeCannonDamageTransition
  End

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

  ; A crushing defeat
  Behavior = DestroyDie ModuleTag_11
    DeathTypes = NONE +CRUSHED +SPLATTED
  End

  Behavior        = CreateCrateDie ModuleTag_12
    CrateData     = SalvageCrateData
  End

  Behavior = OverlordContain ModuleTag_16 ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel) 
    Slots                 = 1
    DamagePercentToUnits        = 100%
    AllowInsideKindOf     = PORTABLE_STRUCTURE
    PassengersAllowedToFire = Yes
    PassengersInTurret = No ; My passengers ride in my turret, that's where the Firepoint bones are
  End


  Behavior = WeaponSetUpgrade ModuleTag_18
    TriggeredBy = Upgrade_ArmTheTrucks
  End

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

  Behavior = ObjectCreationUpgrade ModuleTag_17
    UpgradeObject = OCL_SupplyTkPropagandaTower
    TriggeredBy   = Upgrade_ChinaSupplyTkTower
    ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker
  End

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

  Behavior = CommandSetUpgrade ModuleTag_14
    CommandSet = NukesupllytkWithTowerCommandset
    TriggeredBy   = Upgrade_ChinaSupplyTkTower
    ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker
  End


  Geometry = BOX
  GeometryMajorRadius = 17.0
  GeometryMinorRadius = 7.0
  GeometryHeight = 14.0     
  GeometryIsSmall = No
  Shadow = SHADOW_VOLUME
  ShadowSizeX = 45  ; minimum elevation angle above horizon. Used to limit shadow length    

End





ObjectCreationList OCL_SupplyTkPropagandaTower
  CreateObject
    ObjectNames       = SupplyTkPropTower
    Count             = 1
    ContainInsideSourceObject = Yes
  End
End

Object SupplyTkPropTower

  ; *** ART Parameters ***
  SelectPortrait         = SNPropSpeaker_L
  ButtonImage            = SNPropSpeaker
  
  ;UpgradeCameo1 = Upgrade_Nationalism
 ; UpgradeCameo2 = Upgrade_ChinaUraniumShells
 ; UpgradeCameo3 = Upgrade_ChinaNuclearTanks
  ;UpgradeCameo4 = NONE
  ;UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower
  
  Draw                    = W3DDependencyModelDraw ModuleTag_01
    OkToChangeModelColor  = Yes
    AttachToBoneInContainer = FIREPOINT01

    ConditionState = NONE
      Model         = Speakers
  ;    Animation     = NVOvrlrd_S.NVOvrlrd_S
  ;    AnimationMode = LOOP
    End
    ConditionState = REALLYDAMAGED
      Model         = Speakers
    ;  ParticleSysBone = Smoke01 SmolderingSmoke
    ;  ParticleSysBone = Smoke02 SmolderingSmoke
     ; ParticleSysBone = Flame01 SmolderingFire
    ;  ParticleSysBone = Flame01 SmolderingFlameCore
    ;  ParticleSysBone = Spark01 LiveWireSparks
    End
    ; night
    ConditionState = NIGHT
      Model         = Speakers
  ;    Animation     = NVOvrlrd_S.NVOvrlrd_S
   ;   AnimationMode = LOOP
    End 
  End

  PlacementViewAngle = -45

  ; ***DESIGN parameters ***
  Side             = China
  EditorSorting    = SYSTEM
  TransportSlotCount = 1
  
  ArmorSet
    Conditions     = None
    Armor          = InvulnerableAllArmor ; We can't be hurt on the field.  We share damage from the Overlord with his damage module
  End
  VisionRange     = 200

  ; *** AUDIO Parameters ***
  UnitSpecificSounds
   TurretMoveStart = NoSound
    TurretMoveLoop  = NoSound ;TurretMoveLoop
  End

  ; *** ENGINEERING Parameters ***
  KindOf            = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK CLICK_THROUGH IGNORED_IN_GUI
    Body            = StructureBody ModuleTag_02
    MaxHealth       = 100.0
    InitialHealth   = 100.0
  End

  Behavior = AIUpdateInterface ModuleTag_03
    ;<No Data>
  End
  
  Behavior        = PropagandaTowerBehavior ModuleTag_04
    Radius                = 150.0
    DelayBetweenUpdates   = 2000 ; in milliseconds
    HealPercentEachSecond = 1%   ; get this % of max health every second 
    PulseFX               = FX_OverlordPropagandaTowerPropagandaPulse ;plays as often as DelayBetweenUpdates
    UpgradeRequired       = Upgrade_ChinaSubliminalMessaging
    UpgradedHealPercentEachSecond = 2%   ; get this % of max health every second 
    UpgradedPulseFX       = FX_OverlordPropagandaTowerSubliminalPulse ;plays as often as DelayBetweenUpdates

  End

  Behavior             = DestroyDie ModuleTag_05
    ;<No Data>
  End

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

End
Annihilationzh
14 years ago

W3DTruckDraw


As I thought.

Only the overlord draw module supports addons. This will fix some bugs, I don't know if it'll fix this one in particular.

Model = Speakers


Is this a custom model?

Is it supposed to be an overlord addon?
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
If I replace the truck draw with overlord draw, the game crashes... The model speakers is a small speaker model which I made... It all works except that the tower sort of floats...

Its for my supply trucks, which get the object upgrade speaker tower, which adds a speaker tower to the supply truck... Actually exactly like the overlords propaganda tower add-on...
Annihilationzh
14 years ago

If I replace the truck draw with overlord draw, the game crashes...


Truckdraw has aspects that tankdraw can't process.

So try W3DOverlordTruckDraw.

The model speakers is a small speaker model which I made... It all works except that the tower sort of floats...


Make sure it has the same bones as the normal overlord turrets.
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

So try W3DOverlordTruckDraw



Doesn't work...

Make sure it has the same bones as the normal overlord turrets.



the EA add-ons have no bones that I can see... They just spawn on bones on the container model...

Is it something in the code?
Annihilationzh
14 years ago
Both were guesses.

I don't know why W3DOverlordTruckDraw doesn't work. It's on my modulelist, which says it should. But if it's still crashing you may have to remove some of this section of the art code:

    LeftFrontTireBone           = Tire01
    RightFrontTireBone          = Tire02
    MidLeftRearTireBone         = Tire03
    MidRightRearTireBone        = Tire04
    LeftRearTireBone            = Tire05
    RightRearTireBone           = Tire06
    TireRotationMultiplier      = 0.2   ; this * speed = rotation.
    PowerslideRotationAddition  = 2.5   ; This speed is added to the rotation speed when powersliding.

    Dust                    = RocketBuggyDust
    DirtSpray               = RocketBuggyDirtSpray
    PowerslideSpray         = RocketBuggyDirtPowerSlide

As for the speakers, I have long assumed it must have unique bones, because only some models can be used as overlord addons without glitches occuring.
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
Well it cant be the speaker model, because even if I spawn the overlord speaker model, the same problem occurs... The tower appears at the right bone, only not attached to the model, always vertical, no matter the terrain slope... Might actually be a cool effect for something gyro-stabilised... It should be mentioned that the towers spawn on their side, so I have to flip them on their sides in renx for them to appear vertical in-game... So for some reason, my truck unit code or tower object code or something just isn't spawning them correctly...
BR-Alexandre
14 years ago
if towers can't be attached to the truck then try make a new unit: suplly truck with speaker tower. instead add a tower to the unit make a new unit with a tower on it and add the propaganda effect (just like assault troop crawler). when the player upgrade the truck then just replace all suplly trucks (its just an idea, i don't even know anything about modding or making new units)
"The Only Way To Have Peace is Prepare for War" <---I forgot who said this...
"Lasers make superior weapons!" <--- Townes
"Laser crusader ready for engagement" <--- Laser Crusader Tank
"Tactical lasers online" <--- Avenger Support Venhice
"Storm climbed mountain" <--- Pathfinder Elite Infantry
"Ready for covert mission" <--- Stealth Fighter Tactical Support
NOP
  • NOP
  • 100% (Exalted)
  • Major Topic Starter
14 years ago

if towers can't be attached to the truck then try make a new unit: suplly truck with speaker tower.



That might actually be something of an idea... Last night I noticed this in the helix code:

    DefaultConditionState
      Model = NVHELIX
      Animation = NVHELIX.NVHELIX
      AnimationMode = LOOP
      WeaponFireFXBone    = PRIMARY Muzzle03
      WeaponMuzzleFlash   = PRIMARY TurretFX03
      HideSubObject       = BombWing
    End

And:

  Behavior = SubObjectsUpgrade ModuleTag_39
    TriggeredBy    = Upgrade_HelixNapalmBomb 
    ShowSubObjects = BombWing 
  End

Before I get started, does anyone have any thoughts on why this shouldnt work?


EDIT: It works! I still spawn an overlord contain thingy to provide the speaker tower effects, but its invisible and the model itself is actually a part of the truck now...