Posted by: Zealot Solari - Monday, September 21, 2020 3:03:25 PM
Object ChinaTankOverlord ; *** ART Parameters *** SelectPortrait = SNOverlord_L ButtonImage = SNOverlord UpgradeCameo1 = Upgrade_ChinaUraniumShells UpgradeCameo2 = Upgrade_ChinaNuclearTanks UpgradeCameo3 = Upgrade_ChinaOverlordBattleBunker UpgradeCameo4 = Upgrade_ChinaOverlordGattlingCannon UpgradeCameo5 = Upgrade_ChinaOverlordPropagandaTower Draw = W3DOverlordTankDraw ModuleTag_01 ConditionState = NONE Model = NVOvrlrd Animation = NVOvrlrd.NVOvrlrd AnimationMode = LOOP Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = REALLYDAMAGED Model = NVOvrlrd_d Animation = NVOvrlrd_d.NVOvrlrd_d AnimationMode = LOOP Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End ConditionState = RUBBLE Model = NVOvrlrd_d Turret = Turret01 WeaponFireFXBone = PRIMARY Muzzle WeaponRecoilBone = PRIMARY Barrel WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle End TrackMarks = EXTnkTrack.tga OkToChangeModelColor = Yes TreadAnimationRate = 2.0; amount of tread texture to move per second TreadDriveSpeedFraction = 0.3 ; fraction of locomotor speed below which treads stop moving. TreadPivotSpeedFraction = 0.6 ; fraction of locomotor speed below which we allow pivoting. End ; ***DESIGN parameters *** DisplayName = OBJECT:Overlord Side = China EditorSorting = VEHICLE TransportSlotCount = 3 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY OverlordTankGun End WeaponSet Conditions = PLAYER_UPGRADE Weapon = PRIMARY OverlordTankGun [h] Weapon = SECONDARY Lazr_PatriotMissileAssistWeapon[/h] ;Dummy weapon that allows manual targeting of air units outside range ;gattling cannon upgrade has been made. End ArmorSet Conditions = None Armor = TankArmor DamageFX = TankDamageFX End BuildCost = 2000 BuildTime = 20.0 ;in seconds VisionRange = 150 ShroudClearingRange = 200 Prerequisites Object = ChinaWarFactory Object = ChinaPropagandaCenter End ExperienceValue = 200 200 400 600 ;Experience point value at each level ExperienceRequired = 0 400 600 1200 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrusherLevel = 3 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushableLevel = 3 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = ChinaTankOverlordDefaultCommandSet ; *** AUDIO Parameters *** VoiceSelect = OverlordTankVoiceSelect SoundMoveStart = OverlordTankMoveStart SoundMoveStartDamaged = OverlordTankMoveStart VoiceMove = OverlordTankVoiceMove VoiceGuard = OverlordTankVoiceMove VoiceAttack = OverlordTankVoiceAttack UnitSpecificSounds ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs VoiceCreate = OverlordTankVoiceCreate TurretMoveStart = NoSound TurretMoveLoop = OverlordTankTurretMoveLoop VoiceCrush = OverlordTankVoiceCrush VoiceEnter = OverlordTankVoiceMove VoiceUnload = OverlordTankVoiceUnload End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS VEHICLE SCORE HUGE_VEHICLE Body = ActiveBody ModuleTag_02 MaxHealth = 1100.0 InitialHealth = 1100.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 = 2200 SubdualDamageHealRate = 500 SubdualDamageHealAmount = 50 End Behavior = TransportAIUpdate ModuleTag_03 Turret TurretTurnRate = 60 ;30 ;15 // turn rate, in degrees per sec ControlledWeaponSlots = PRIMARY End AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL OverlordLocomotor Locomotor = SET_NORMAL_UPGRADED NuclearOverlordLocomotor Behavior = FireWeaponWhenDeadBehavior ModuleTag_04 DeathWeapon = NuclearTankDeathWeapon StartsActive = No ; turned on by upgrade TriggeredBy = Upgrade_ChinaNuclearTanks End Behavior = LocomotorSetUpgrade ModuleTag_05 TriggeredBy = Upgrade_ChinaNuclearTanks End [h] Behavior = OverlordContain ModuleTag_Bunker ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel) Slots = 1 DamagePercentToUnits = 100% AllowInsideKindOf = PORTABLE_STRUCTURE PassengersAllowedToFire = Yes PayloadTemplateName = ChinaTankOverlordBattleBunker PassengersInTurret = Yes ; My passengers ride in my turret, that's where the Firepoint bones are ExperienceSinkForRider = Yes ; I get the Exp for things my turret friend kills End Behavior = OverlordContain ModuleTag_Turret ; Like Transport, but when full, passes transport queries along to first passenger (redirects like tunnel) Slots = 1 DamagePercentToUnits = 100% AllowInsideKindOf = PORTABLE_STRUCTURE PassengersAllowedToFire = Yes PayloadTemplateName = ChinaTankOverlordGattlingCannon PassengersInTurret = Yes ; My passengers ride in my turret, that's where the Firepoint bones are ExperienceSinkForRider = Yes ; I get the Exp for things my turret friend kills End Behavior = ObjectCreationUpgrade ModuleTag_07 UpgradeObject = OCL_OverlordGattlingCannon TriggeredBy = Upgrade_ChinaOverlordGattlingCannon ConflictsWith = Upgrade_ChinaOverlordPropagandaTower End Behavior = WeaponSetUpgrade ModuleTag_WeaponSetUpgrade01 TriggeredBy = Upgrade_ChinaOverlordGattlingCannon ConflictsWith = Upgrade_ChinaOverlordPropagandaTower End Behavior = ObjectCreationUpgrade ModuleTag_08 UpgradeObject = OCL_OverlordPropagandaTower TriggeredBy = Upgrade_ChinaOverlordPropagandaTower ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker End Behavior = ObjectCreationUpgrade ModuleTag_09 UpgradeObject = OCL_OverlordBattleBunker TriggeredBy = Upgrade_ChinaOverlordBattleBunker ConflictsWith = Upgrade_ChinaOverlordPropagandaTower End Behavior = ProductionUpdate ModuleTag_10 MaxQueueEntries = 1; So you can't build multiple upgrades in the same frame End Behavior = CommandSetUpgrade ModuleTag_11 CommandSet = ChinaTankOverlordBattleBunkerCommandSet TriggeredBy = Upgrade_ChinaOverlordGattlingCannon ConflictsWith = Upgrade_ChinaOverlordPropagandaTower End Behavior = CommandSetUpgrade ModuleTag_12 CommandSet = ChinaTankOverlordPropagandaTowerCommandSet TriggeredBy = Upgrade_ChinaOverlordPropagandaTower ConflictsWith = Upgrade_ChinaOverlordGattlingCannon Upgrade_ChinaOverlordBattleBunker End Behavior = CommandSetUpgrade ModuleTag_13 CommandSet = ChinaTankOverlordBattleBunkerCommandSet TriggeredBy = Upgrade_ChinaOverlordBattleBunker ConflictsWith = Upgrade_ChinaOverlordPropagandaTower End[/h] Behavior = PhysicsBehavior ModuleTag_14 Mass = 50.0 End ; Smoke for a bit then explode ; Behavior = SlowDeathBehavior ;; ProbabilityModifier = 25 ; DestructionDelay = 1500 ; DestructionDelayVariance = 500 ; FX = INITIAL FX_OverlordSmoke ; OCL = FINAL OCL_ChinaTankOverlordDebris ; FX = FINAL FX_GenericTankDeathExplosion ; End ; Catch fire, and explode death ; Behavior = SlowDeathBehavior ;; ProbabilityModifier = 25 ; DestructionDelay = 2000 ; DestructionDelayVariance = 300 ; FX = INITIAL FX_CrusaderCatchFire ; OCL = FINAL OCL_ChinaTankOverlordDebris ; FX = FINAL FX_GenericTankDeathExplosion ; End ; Just explode death Behavior = SlowDeathBehavior ModuleTag_16 ProbabilityModifier = 25 DestructionDelay = 200 DestructionDelayVariance = 100 OCL = FINAL OCL_ChinaTankOverlordDebris FX = FINAL FX_OverlordExplosionOneFinal End Behavior = CreateCrateDie ModuleTag_17 CrateData = SalvageCrateData ;CrateData = EliteTankCrateData ;CrateData = HeroicTankCrateData End Behavior = TransitionDamageFX ModuleTag_18 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes PSys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_OverlordDamageTransition 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 = 26.0 GeometryMinorRadius = 13.0 GeometryHeight = 15.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End

Posted by: Annihilationzh - Thursday, November 19, 2020 5:48:22 PM
It's not possible to mount two addons at once. The simplest way to do it would be make the gattling cannon into a gattling bunker. I.E. Add the bunker code and a second draw module. You can't use AddModule in a mod. That's for Map.ini

Posted by: NewNightmare - Wednesday, December 2, 2020 4:44:30 PM
Funny I randomly logged in because I found my making of comic for the helix upgrade challenge from 2012. Susprised annihilationzh is still alive and kicking here. Attaching the comic and artwork, I don't have the original code. Use it as inspiration [ATTACH]2311[/Attach]

Posted by: haggis - Monday, December 14, 2020 3:25:47 PM
[quote=Annihilationzh;149992]The simplest way to do it would be make the gattling cannon into a gattling bunker. I.E. Add the bunker code and a second draw module.[/quote] I'm also interested in this; what do you mean by bunker code? Is it just the contain behavior? And what do you mean by draw module? Is it this part? [quote] Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 ConditionState = NONE Model = NVOvrlrd_B End ConditionState = REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End ; night ConditionState = NIGHT Model = NVOvrlrd_B End ConditionState = NIGHT REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End End [/quote] Wouldn't that replace the entire Overlord model so that it no longer has a Gattling gun?

Posted by: Annihilationzh - Monday, December 14, 2020 7:22:18 PM
[quote]I'm also interested in this; what do you mean by bunker code? Is it just the contain behavior?[/quote] Overlord addons are seperate units. They're 'passengers' in the overlord. I.E. ChinaTankOverlordBattleBunker, ChinaTankOverlordGattlingCannon, ChinaTankOverlordPropagandaTower The bunker has a module that allows troops inside. [quote]And what do you mean by draw module? Is it this part?[/quote] Correct. [quote]Wouldn't that replace the entire Overlord model so that it no longer has a Gattling gun?[/quote] That code is only for the overlord - not it's turrets.

Posted by: haggis - Monday, December 14, 2020 9:45:21 PM
I tried putting the bunker's draw module (quoted above) into the overlord gattling, right after its own draw module; the game won't launch with this (encountered serious error blabla). [quote=Annihilationzh;150054]The bunker has a module that allows troops inside.[/quote] I copied the bunker's contain module into the overlord gattling module, but it doesn't work in-game. Is it related to the draw module part?

Posted by: Annihilationzh - Monday, December 14, 2020 11:09:36 PM
Without seeing your code, I have no idea what you did wrong.

Posted by: haggis - Monday, December 14, 2020 11:54:07 PM
[quote];------------------------------------------------------------------------------ Object Tank_ChinaTankOverlordGattlingCannon ; *** ART Parameters *** SelectPortrait = SNGatTower_L ButtonImage = SNGatTower ;UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo1 = Upgrade_ChinaUraniumShells UpgradeCameo2 = Upgrade_ChinaNuclearTanks ;UpgradeCameo4 = NONE UpgradeCameo5 = Upgrade_ChinaOverlordGattlingCannon Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 DefaultConditionState Model = NVOvrlrd_G Turret = TURRET01 TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX End ConditionState = CONTINUOUS_FIRE_SLOW Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate vryfst ParticleSysBone = Muzzle01 GattlingMuzzleSmoke ParticleSysBone = Muzzle02 GattlingMuzzleSmoke End ConditionState = REALLYDAMAGED Model = NVOvrlrd_GD Turret = TURRET01 TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX ParticleSysBone = Smoke01 SmokeFactionMedium ParticleSysBone = Smoke02 SmokeFactionMedium ParticleSysBone = Smoke03 SmokeFactionMedium ParticleSysBone = SparkM01 SparksMedium ParticleSysBone = SparkM02 SparksMedium End ConditionState = CONTINUOUS_FIRE_SLOW REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate vryfst ParticleSysBone = Muzzle01 GattlingMuzzleSmoke ParticleSysBone = Muzzle02 GattlingMuzzleSmoke End [b][i] Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 ConditionState = NONE Model = NVOvrlrd_B End ConditionState = REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End ; night ConditionState = NIGHT Model = NVOvrlrd_B End ConditionState = NIGHT REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End End [/i][/b] End ; ***DESIGN parameters *** Side = ChinaTankGeneral EditorSorting = SYSTEM TransportSlotCount = 1 WeaponSet Conditions = None Weapon = PRIMARY GattlingBuildingGun Weapon = SECONDARY GattlingBuildingGunAir PreferredAgainst = SECONDARY BALLISTIC_MISSILE AIRCRAFT End 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 VoiceRapidFire = NoSound End ; *** ENGINEERING Parameters *** KindOf = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CLICK_THROUGH IGNORED_IN_GUI Body = StructureBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = VeterancyGainCreate ModuleTag_07 StartingLevel = VETERAN End Behavior = AIUpdateInterface ModuleTag_03 Turret ControlledWeaponSlots = PRIMARY SECONDARY TurretTurnRate = 60 // turn rate, in degrees per sec TurretPitchRate = 60 AllowsPitch = Yes End AutoAcquireEnemiesWhenIdle = Yes End [b][i] Behavior = TransportContain ModuleTag_03 Slots = 5 PassengersAllowedToFire = Yes AllowInsideKindOf = INFANTRY InitialPayload = Tank_ChinaInfantryTankHunter 5 EnterSound = GarrisonEnter ExitSound = GarrisonExit DamagePercentToUnits = 50% End[/i][/b] Behavior = DestroyDie ModuleTag_04 ;nothing End Behavior = WeaponBonusUpgrade ModuleTag_05 TriggeredBy = Upgrade_ChinaChainGuns End Behavior = StealthDetectorUpdate ModuleTag_06 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ; Defaults to VisionRange CanDetectWhileContained = Yes End Geometry = BOX GeometryMajorRadius = 8.0 GeometryMinorRadius = 8.0 GeometryHeight = 9.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End[/quote] Things I added are in bold/italic. The draw portion causes the game not to launch, and without it the game launches but the contain portion doesn't do anything.

Posted by: Annihilationzh - Tuesday, December 15, 2020 10:30:31 AM
Crash: You put the second draw module inside the first draw module. Fix: See the "End" immediately after your bolded draw module? Move it up above the bolded section. Also your ModuleTags all need to be different. You have two ModuleTag_01 and two ModuleTag_03. It won't cause a crash but it can cause glitches. It doesn't matter what they're called: ModuleTag_X, Module_01, Tag_01. As long as they're all different. I can think of quite a few reasons for why the contain is not working, and both of these issues are possible reasons.

Posted by: haggis - Wednesday, December 16, 2020 3:16:06 PM
[quote=Annihilationzh;150061]I can think of quite a few reasons for why the contain is not working, and both of these issues are possible reasons.[/quote] Fixed the crash issue as you instructed and changed the module tag to 08, but the contain still doesn't work. What are the other possible reasons? Is it related to weaponset? I've added a tertiary weapon to the Overlord itself which works fine, but I tried adding a tertiary weapon to the Overlord gattling gun and it wouldn't work. Are these issues related?

Posted by: Annihilationzh - Wednesday, December 16, 2020 3:38:07 PM
[quote]Are these issues related?[/quote] They are. I didn't even notice before but you're using the Tank_ChinaTankOverlordGattlingCannon. It's unused. The Tank general's overlord uses the regular overlord gattling cannon.

Posted by: haggis - Wednesday, December 16, 2020 4:00:01 PM
[quote=Annihilationzh;150066][quote]Are these issues related?[/quote] The Tank general's overlord uses the regular overlord gattling cannon.[/quote] I... didn't see that one coming. Since I already changed Tank_ChinaTankOverlordGattlingCannon, would it be easier for me to change the Emperor to use that one? This unused object would just be a carbon copy of the other one so there'd be no harm right? I tried exactly that in the Emperor code: [quote] Behavior = ObjectCreationUpgrade ModuleTag_07 UpgradeObject = OCL_[i][b]Tank_[/b][/i]OverlordGattlingCannon TriggeredBy = Upgrade_ChinaOverlordGattlingCannon ;ConflictsWith = Upgrade_ChinaOverlordBattleBunker End [/quote] The contain now works (there's no button to move the infantry out but I'd need to edit the command inis for that; doesn't show the "pips" for the amount of inf in it, but it's not a huge issue), but the gattling cannon is completely gone - no model, no shooting. I think it's due to us drawing the bunker thing over the gattling thing? EDIT I'm not sure the contain actually works (was playing with other secondary weapons), testing now EDIT2 Yeah contain doesn't work either, so I guess my tweak didn't generate the correct object. How should the syntax actually work?

Posted by: Annihilationzh - Wednesday, December 16, 2020 4:16:35 PM
[quote]OCL_Tank_OverlordGattlingCannon[/quote] That needs to be defined in ObjectCreationList.ini. Have you done that?

Posted by: haggis - Wednesday, December 16, 2020 4:31:37 PM
[quote=Annihilationzh;150069][quote]OCL_Tank_OverlordGattlingCannon[/quote] That needs to be defined in ObjectCreationList.ini. Have you done that?[/quote] Oh, that did the trick. I know that the correct object was generated due to the bunkergattling being drawn on the model, the contain still doesn't work however.

Posted by: Annihilationzh - Wednesday, December 16, 2020 4:35:06 PM
[quote]I know that the correct object was generated due to the bunkergattling being drawn on the model, the contain still doesn't work however.[/quote] I'm thinking this has something to do with it: [quote]The contain now works (there's no button to move the infantry out but I'd need to edit the command inis for that; doesn't show the "pips" for the amount of inf in it, but it's not a huge issue), but the gattling cannon is completely gone - no model, no shooting.[/quote] This is not normal and it shouldn't be happening. Have you been editing the overlord's OverlordContain module?

Posted by: haggis - Wednesday, December 16, 2020 4:38:08 PM
Correction: the contain works. It's just the InitialPayload part that doesn't work, probably because this is an object and not an unit? In my previous testing where the pips didn't show, the contain didn't work, I just thought it was tankhunters shooting when it was actually the other secondary weapon I was messing around with that shot the rockets.

Posted by: Annihilationzh - Wednesday, December 16, 2020 4:57:22 PM
See the avenger's OverlordContain. It starts with its portable structure.

Posted by: haggis - Wednesday, December 16, 2020 5:47:12 PM
I added that line and commented out ObjectCreationUpgrade, somehow it doesn't work: [quote] Behavior = OverlordContain ModuleTag_06 ; 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 = Yes ; My passengers ride in my turret, that's where the Firepoint bones are [i][b] PayloadTemplateName = Tank_OverlordGattlingCannon[/b][/i] ExperienceSinkForRider = Yes ; I get the Exp for things my turret friend kills End [/quote] EDIT oh wait the name is wrong, brb testing again... EDIT 2 With the correct name it works (tank spawns with the gattlingbunker), but the InitialPayload part still doesn't work. Also, somewhat related question: is it possible to have a mix of different unit types in InitialPayload, generally speaking? Another somewhat related question: are overlordcontain and (regular) contain behaviors the only ways to bypass the weaponset limit of 3 weapons per unit?

Posted by: Annihilationzh - Wednesday, December 16, 2020 6:59:27 PM
[quote]With the correct name it works (tank spawns with the gattlingbunker), but the InitialPayload part still doesn't work.[/quote] Is the InitialPayload on the overlord or on the bunker? Personally, I'd try it on the bunker. [quote]Also, somewhat related question: is it possible to have a mix of different unit types in InitialPayload, generally speaking?[/quote] Not directly. But you can get it done via OCLs. [code=plain]ObjectCreationList OCL_BunkerTroops CreateObject ObjectNames = AmericaInfantryRanger Count = 1 ContainInsideSourceObject = Yes End CreateObject ObjectNames = Infa_ChinaInfantryMiniGunner Count = 4 ContainInsideSourceObject = Yes End End[/code] You can then use ObjectCreationUpgrade to spawn the OCL. And if you don't want it to require an upgrade then you can give them the upgrade for free (see Dr Thrax's Command Center - he gets anthrax beta for free). [quote]Another somewhat related question: are overlordcontain and (regular) contain behaviors the only ways to bypass the weaponset limit of 3 weapons per unit?[/quote] Yes AFAIK - unless you count things like drones.

Posted by: haggis - Wednesday, December 16, 2020 7:36:45 PM
[quote=Annihilationzh;150075]Is the InitialPayload on the overlord or on the bunker? Personally, I'd try it on the bunker.[/quote] It's on the bunker yeah. [quote]Not directly. But you can get it done via OCLs.[/quote] I'd still like to find a way to make InitialPayload work for the above issue, but if it can't happen, I can use OCLs to populate the bunker correct? Either initially or thru an upgrade button?

Posted by: Annihilationzh - Thursday, December 17, 2020 1:38:39 AM
Well, you can only try InitialPayload on the overlord and the bunker. If it doesn't do anything on either then that's all she wrote. OCLs should work regardless.

Posted by: haggis - Saturday, December 19, 2020 9:15:46 PM
[quote=Annihilationzh;150066]The Tank general's overlord uses the regular overlord gattling cannon.[/quote] I actually have an extra question regarding this, just so I understand better how it all works: Tank general's Overlord Gattling is positioned further forward than the normal Overlord's, correct? If it just uses the regular one, and the draw modules are in the Gattling objects, how can this be? Also does Draw affect anything else than weapon bone locations, game mechanics wise?

Posted by: Annihilationzh - Sunday, December 20, 2020 3:33:33 PM
[quote]Tank general's Overlord Gattling is positioned further forward than the normal Overlord's, correct? If it just uses the regular one, and the draw modules are in the Gattling objects, how can this be?[/quote] The addons attach to the bone FIREPOINT01 on the overlord model. The two models have this bone in different places. [quote]Also does Draw affect anything else than weapon bone locations, game mechanics wise?[/quote] The models themselves determine a lot. As you discovered earlier, the bones on an overlord are not setup for a flamethrower, so you ended up with a strange trajectory. Likewise if you want a visible rotating turret it needs to be supported by the model. Models also have parts that change colour (blue/red/green/etc) depending on who owns them. The draw modules determine which models are being used and in what situation. They hide/show parts of a model. They tell models to animate (treads, scaffolding, turrets, recoil). They tell buildings which direction they should face by default. They add particles (sparks, smoke and similar) to bones. Basically they handle everything around how the game interacts with models.

Posted by: haggis - Sunday, December 20, 2020 4:21:12 PM
[quote=Annihilationzh;150086]The addons attach to the bone FIREPOINT01 on the overlord model. The two models have this bone in different places.[/quote] Aha, so I got it backwards... I thought the addons added firepoints, instead they attach to existing firepoints. [quote]Likewise if you want a visible rotating turret it needs to be supported by the model.[/quote] Hmm by supported you mean having a proper firepoint/bone for it? E.g. a supply truck would not support a (visible rotating) turret since it has no firepoints in its model? Does this also mean I can't just add Overlord Contain to anything I want? Since it's something that attaches to an existing firepoint?

Posted by: Annihilationzh - Sunday, December 20, 2020 8:04:03 PM
[quote]Does this also mean I can't just add Overlord Contain to anything I want? Since it's something that attaches to an existing firepoint?[/quote] It won't crash but most models don't have a FIREPOINT01. You'd need another bone to attach it to, or the addon would just be put at the center of the model, on the floor. For example, the Paladin has a bone for its laser, and you could mount an overlord gattling cannon on it no problem. [quote]Hmm by supported you mean having a proper firepoint/bone for it? E.g. a supply truck would not support a (visible rotating) turret since it has no firepoints in its model?[/quote] No sorry, I meant turret like a battlemaster's turret. It's a named part of the model. These turrets have to be designed to function as a turret. I.E. imagine a tank's turret moving but the cannon stays still - and shoots shells out sideways. Overlord addons are technically just buildings in the code. The speaker tower and bunker don't even have turrets.

Posted by: haggis - Tuesday, January 12, 2021 1:28:03 AM
[quote=Annihilationzh;150075] You can then use ObjectCreationUpgrade to spawn the OCL. And if you don't want it to require an upgrade then you can give them the upgrade for free (see Dr Thrax's Command Center - he gets anthrax beta for free).[/quote] I tried this to no avail today. In Overlord's bunker (well the Gattling cannon since it has the bunker) I had: [quote] Behavior = GrantUpgradeCreate ModuleTag_BunkerTroops UpgradeToGrant = Upgrade_Tank_ChinaBunkerTroops End Behavior = ObjectCreationUpgrade ModuleTag_BunkerOCL UpgradeObject = OCL_Tank_ChinaBunkerTroops TriggeredBy = Upgrade_Tank_ChinaBunkerTroops End[/quote] In ObjectCreationList.ini I had: [quote]ObjectCreationList OCL_Tank_ChinaBunkerTroops CreateObject ObjectNames = Tank_ChinaInfantryTankHunter Count = 3 ContainInsideSourceObject = Yes End CreateObject ObjectNames = Tank_ChinaInfantryRedguard Count = 2 ContainInsideSourceObject = Yes End End[/quote] In Upgrades.ini I had: [quote]Upgrade Upgrade_Tank_ChinaBunkerTroops DisplayName = UPGRADE:TankChinaBunkerTroops Type = OBJECT BuildTime = 15.0 BuildCost = 400 ButtonImage = SNHelixUp03 ResearchSound = HelixVoiceUpgradeBunker UnitSpecificSound = OverlordExpansion End[/quote] What am I missing? Also I added ECM behavior to the Overlord instead of one of its contained modules this time just to see if it's the correct code, works fine; only I got a "serious error" crash, the first I've had so far that was not caused by me alt-tabbing. Do you think it could be related to the ECM behavior? EDIT actually my ECM behavior had a duplicate module tag, I'll fix it and post again if it comes up again. EDIT2 those lines of pseudocode work when I put them in a bunker (the building). So I guess OverlordContain is the issue...?

Posted by: Annihilationzh - Tuesday, January 12, 2021 4:00:07 AM
GrantUpgradeCreate on most units will crash saved games. If you remove Type = OBJECT from upgrade.ini you can move GrantUpgradeCreate to the war factory. [quote]Also I added ECM behavior to the Overlord instead of one of its contained modules this time just to see if it's the correct code, works fine; only I got a "serious error" crash, the first I've had so far that was not caused by me alt-tabbing. Do you think it could be related to the ECM behavior?[/quote] My memory is getting foggy here, but I'm pretty sure ECM and PDL count towards the weapon limit (3 per unit). That could be the cause of the crash. [quote]EDIT2 those lines of pseudocode work when I put them in a bunker (the building). So I guess OverlordContain is the issue...?[/quote] I'm honestly surprised that didn't work. I could have sworn I've seen it done before. You may have to give the overlord slots by default (like the helix) and have the OCL spawn in the overlord.

Posted by: haggis - Wednesday, January 13, 2021 1:05:22 AM
[quote=Annihilationzh;150166]GrantUpgradeCreate on most units will crash saved games.[/quote] Oh... good to know. [quote=Annihilationzh;150166]If you remove Type = OBJECT from upgrade.ini you can move GrantUpgradeCreate to the war factory.[/quote] Wouldn't that make the Overlord spawn with inf inside it? Rather than having the inf be generated upon getting the bunker? [quote]My memory is getting foggy here, but I'm pretty sure ECM and PDL count towards the weapon limit (3 per unit). That could be the cause of the crash.[/quote] I tried removing the TERTIARY weapon from the Overlord, in 1 of the test runs it crashed again but not the others. There was a lot of crap going on the screen however. [quote]I'm honestly surprised that didn't work. I could have sworn I've seen it done before. You may have to give the overlord slots by default (like the helix) and have the OCL spawn in the overlord.[/quote] I got it to work by putting the OCL in the Overlord and having the condition be the GattlingCannon upgrade (well the GattlingBunker in my case). The Gattling main gun has some weird targeting behavior when I tested (such as not shooting when I tell the tank to shoot at a building), not sure if it's related at all to the inf inside. Also, somehow the Gattling gun will refuse to shoot (or even turn) if I add a TERTIARY weapon to the Gattling upgrade. Any idea why that is?

Posted by: Annihilationzh - Wednesday, January 13, 2021 5:05:20 AM
[quote]Wouldn't that make the Overlord spawn with inf inside it? Rather than having the inf be generated upon getting the bunker?[/quote] GrantUpgradeCreate will make the OCL activate immediately regardless of where it is. [quote]I tried removing the TERTIARY weapon from the Overlord, in 1 of the test runs it crashed again but not the others. There was a lot of crap going on the screen however.[/quote] You mean like glitchy graphics? [quote]Also, somehow the Gattling gun will refuse to shoot (or even turn) if I add a TERTIARY weapon to the Gattling upgrade. Any idea why that is?[/quote] Not off the top of my head but I could take a look at the code if you want.

Posted by: haggis - Wednesday, January 13, 2021 12:35:19 PM
[quote=Annihilationzh;150172]You mean like glitchy graphics?[/quote] As in a lot of units were doing things (like half a screen of inf fighting each other). There was also some bugged units: rocket attacks coming from a spot without units, may be where my Overlord died, maybe not... but I think I've also seen this bug in the base game so it might not be due to my messing. [quote]Not off the top of my head but I could take a look at the code if you want.[/quote] Here's my current full GattlingBunker code, I basically only added the bunker contain/draw, and the tertiary weapon (I tried both with and without the tertiary being bound to turret): (the initial payload for the contain doesn't work, maybe I should comment it out so that it doesn't add to glitching?) [quote]Object Tank_ChinaTankOverlordGattlingCannon ; *** ART Parameters *** SelectPortrait = SNGatTower_L ButtonImage = SNGatTower ;UpgradeCameo1 = Upgrade_Nationalism UpgradeCameo1 = Upgrade_ChinaUraniumShells UpgradeCameo2 = Upgrade_ChinaNuclearTanks ;UpgradeCameo4 = NONE UpgradeCameo5 = Upgrade_ChinaOverlordGattlingCannon Draw = W3DDependencyModelDraw ModuleTag_01 OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 DefaultConditionState Model = NVOvrlrd_G Turret = TURRET01 TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX End ConditionState = CONTINUOUS_FIRE_SLOW Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST Model = NVOvrlrd_G Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate vryfst ParticleSysBone = Muzzle01 GattlingMuzzleSmoke ParticleSysBone = Muzzle02 GattlingMuzzleSmoke End ConditionState = REALLYDAMAGED Model = NVOvrlrd_GD Turret = TURRET01 TurretPitch = TURRETEL WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX ParticleSysBone = Smoke01 SmokeFactionMedium ParticleSysBone = Smoke02 SmokeFactionMedium ParticleSysBone = Smoke03 SmokeFactionMedium ParticleSysBone = SparkM01 SparksMedium ParticleSysBone = SparkM02 SparksMedium End ConditionState = CONTINUOUS_FIRE_SLOW REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.1 0.1 ;set this state to animate s l o w l y End ConditionState = CONTINUOUS_FIRE_MEAN REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.2 0.2 ;set this state to animate medium-fast End ConditionState = CONTINUOUS_FIRE_FAST REALLYDAMAGED Model = NVOvrlrd_GD Animation = NVOvrlrd_G.NVOvrlrd_G AnimationMode = LOOP AnimationSpeedFactorRange = 0.3 0.3 ;set this state to animate vryfst ParticleSysBone = Muzzle01 GattlingMuzzleSmoke ParticleSysBone = Muzzle02 GattlingMuzzleSmoke End End Draw = W3DDependencyModelDraw ModuleTag_01x OkToChangeModelColor = Yes AttachToBoneInContainer = FIREPOINT01 ConditionState = NONE Model = NVOvrlrd_B End ConditionState = REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End ; night ConditionState = NIGHT Model = NVOvrlrd_B End ConditionState = NIGHT REALLYDAMAGED Model = NVOvrlrd_BD ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Flame01 SmolderingFire ParticleSysBone = Flame01 SmolderingFlameCore ParticleSysBone = Spark01 LiveWireSparks End End ; ***DESIGN parameters *** Side = ChinaTankGeneral EditorSorting = SYSTEM TransportSlotCount = 1 WeaponSet Conditions = None Weapon = PRIMARY GattlingBuildingGun Weapon = SECONDARY GattlingBuildingGunAir PreferredAgainst = SECONDARY BALLISTIC_MISSILE AIRCRAFT Weapon = TERTIARY DragonTankFlameWeaponUpgraded End 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 VoiceRapidFire = NoSound End ; *** ENGINEERING Parameters *** KindOf = PRELOAD PORTABLE_STRUCTURE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CLICK_THROUGH IGNORED_IN_GUI Body = StructureBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = VeterancyGainCreate ModuleTag_07 StartingLevel = VETERAN End Behavior = AIUpdateInterface ModuleTag_03 Turret ControlledWeaponSlots = PRIMARY SECONDARY TERTIARY TurretTurnRate = 60 // turn rate, in degrees per sec TurretPitchRate = 60 AllowsPitch = Yes End AutoAcquireEnemiesWhenIdle = Yes End Behavior = TransportContain ModuleTag_08 Slots = 5 PassengersAllowedToFire = Yes AllowInsideKindOf = INFANTRY InitialPayload = Tank_ChinaInfantryTankHunter 5 EnterSound = GarrisonEnter ExitSound = GarrisonExit DamagePercentToUnits = 50% End Behavior = DestroyDie ModuleTag_04 ;nothing End Behavior = WeaponBonusUpgrade ModuleTag_05 TriggeredBy = Upgrade_ChinaChainGuns End Behavior = StealthDetectorUpdate ModuleTag_06 DetectionRate = 500 ; how often to rescan for stealthed things in my sight (msec) ;DetectionRange = ??? ; Defaults to VisionRange CanDetectWhileContained = Yes End Geometry = BOX GeometryMajorRadius = 8.0 GeometryMinorRadius = 8.0 GeometryHeight = 9.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME ShadowSizeX = 45 ; minimum elevation angle above horizon. Used to limit shadow length End[/quote]

Posted by: Annihilationzh - Wednesday, January 13, 2021 1:11:07 PM
My guess would be that it's struggling to pitch the turret for the flamethrower and it's just getting stuck. Flamethrowers (and toxin streams) are very finnicky.

Posted by: beng - Monday, November 8, 2021 12:17:20 AM
Yes you can use OCL to populate the bunker with a mix of different infantry types. However note that the infantry will not have horde bonus since they are not in a group on the ground. You have to exit them, let the horde bonus appear, then garrison them again in the bunker. Also only the first draw module in the bunker gattling will attach to the correct bone in the tank model. Best for this to be the gattling model. The bunker will just appear at the same place rather than at the back of the turret. I will try to attach an example map.ini mod with a test mission map here. [ATTACH]2332[/Attach]