Posted by: swatmansmith - Wednesday, July 25, 2012 10:23:34 PM
In C&C Generals, the B52(american fuel air bomber), C130 (american supply plane) and the A10 are all "used" in the game as super powers that originate off the map. How would I go about making them available from the Airfield as selectable units like the raptor, aurora bomber, and stealth fighter? Id also like to know how to give tha following abilities to each specific aircraft: B52--- *carpet bombing directly from the bomber (not call in an outside bomber) *fuel air bomb drop directly from the bomber C130--- *be able to send troops and vehicles inside the transport and be air dropped (parachuted) at desired location (same command set as the Chinook Helocopter but instead of having the plane touch the ground to release the unit, have the unit "kicked out" via parachute. Same goes for the "kick all units out" button...) *perform the gunship ground attack move where it circles the area shooting the cannons and machine guns (the spectre gunship power in Zero Hour) directly and not call in an outside transport What mods would i have do and where? so far i know that i have to change/modify the INI files for: commandsets and factionUnits... not sure about anything else.

Posted by: NewNightmare - Thursday, July 26, 2012 10:40:00 AM
Ive been working on A10 myself a while ago, here's the topic [url=http://www.cnclabs.com/forums/default.aspx?g=posts&t=10448]http://www.cnclabs.com/forums/default.aspx?g=posts&t=10448[/url] For B52 2 weapons, and 2 buttons to switch between them, with reload requiring landing on an airfield, try copying aurora bomb, giving it like 10 bombs in a clip, 300ms time between shots, 20000ms reload time, and copy and edit the aurora bomb object, to make it a dumb object that just falls once spawned. you could also try using special powers to get them working, and even add a shortcut button at the side of the screen (like battleships from ZH US mission 2). for C130, I'm not sure if you can kick units out mid-air. Also, generals does not cooperate with some of the code from Zero Hour, simply because it was not coded to use them like SpectreGunshipUpdate, which is a module only available in Zero Hour.. making mods for zero hour in general is much better, as you get more code to have fun with and less bugs.

Posted by: precision_bomber - Thursday, July 26, 2012 11:30:30 AM
To make them available for building. Make these units(AmericaJetA10Thunderbolt, AmericaJetCargoPlane, AmericaJetB52) their buttons. Example: [code]CommandButton Command_ConstructAmericaJetA10Thunderbolt Command = UNIT_BUILD Object = AmericaJetA10Thunderbolt_Controlable TextLabel = CONTROLBAR:ConstructAmericaJetRaptor ButtonImage = SSA10Attack ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is DescriptLabel = CONTROLBAR:ToolTipUSABuildRaptor End[/code] Put these commands on the Airfield. Then you have to go to the objects themselves. You might want to make copies of these units. On your copy, rename these new objects to any object name you wish. ... Now, for all copies, remove the ModuleTag 'DeliverPayloadAI Update' Replace it with one like of the Raptor's, Stealth Fighter or Aurora, a JetAIUpdate. Normal Jets [code] Behavior = JetAIUpdate ModuleTag_06 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffDistForMaxLift = 0% ; larger numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL RaptorJetLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor [/code] Aurora [code] Behavior = JetAIUpdate ModuleTag_07 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffDistForMaxLift = 0% ; larger numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 SneakyOffsetWhenAttacking = -20.0 ; this is how far behind us people aim when we are in attack mode AttackLocomotorType = SET_SUPERSONIC AttackLocomotorPersistTime = 100 ; we start slowing down almost immediately AttackersMissPersistTime = 2000 ; but remain untargetable fer a bit longer ReturnForAmmoLocomotorType = SET_SLUGGISH ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL AuroraJetLocomotor Locomotor = SET_SUPERSONIC AuroraJetSupersonicLocomotor Locomotor = SET_SLUGGISH AuroraJetSluggishLocomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor [/code] Replace the Locomotor with either of the Locomotors mentioned above. I'll leave you the rest with the weapons.

Posted by: swatmansmith - Thursday, July 26, 2012 7:58:03 PM
Ok Im trying to understand this correctly cuz im really lost here... What did u mean by, "Make these units(AmericaJetA10Thunderbolt, AmericaJetCargoPlane, AmericaJetB52) their buttons." ? And what commands was I to put on the airfield? Im guessing the "Command = ConstructAmericaJet______" in the america airfield command set? Was completly lost as to what you meant by, "Then you have to go to the objects themselves. You might want to make copies of these units. On your copy, rename these new objects to any object name you wish." Where do i find the objects? the faction unit files is what im assuming right?

Posted by: Annihilationzh - Thursday, July 26, 2012 8:41:07 PM
In the object folder, every unit will start something like this: [code];------------------------------------------------------------------------------ Object ChinaJetCargoPlane [/code] Then they'll end with something like this: [code] Geometry = Box GeometryIsSmall = No GeometryMajorRadius = 40.0 GeometryMinorRadius = 10.0 GeometryHeight = 10.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End[/code] If you copy from the start to the finish of a unit, and paste it at the bottom of the file, then change it's name from, for example, 'ChinaJetCargoPlane' to 'NEWChinaJetCargoPlane,' you will then have an exact clone of the original unit. Then if you add entries for it in CommandButton.ini and CommandSet.ini, you will be able to build the clone. Then you can make changes to the clone without changing the original. Personally, I would clone the raptor, then delete from here: [code] ; *** ART Parameters ***[/code] to here: [code] ; ***DESIGN parameters ***[/code] Then replace what you deleted with the same section in the A10. Thus you'll have an A10 that behaves like a raptor, which is a great base you can adapt to your desires. Then repeat for the other planes.

Posted by: swatmansmith - Friday, July 27, 2012 9:13:51 PM
omg dude thank you soooooooooooo much!!! got it working great finally lol. :D :D :D now im just goin to tweek the cannon gun for more of a strafing attack and then make the cannon attack and missile attack seperated so you can choose the attack method. Again.. thanks soo much for the help!

Posted by: swatmansmith - Saturday, July 28, 2012 5:59:02 AM
Ok Im able to build the A10 and the B52 however im still running into glitches... For some reason i cant seem to get the b52 to drop bombs at first i tried the DaisyCutter but that completely didnt work, so now i modified the aurora bomb file to make a carpet bombing feature for the B52 but now i cant get the damn plane to drop em... heres the code for the modified aurora bomb: [Code]Weapon NewAuroraBombCarpetBombWeapon PrimaryDamage = 20.0 PrimaryDamageRadius = 5.0 AttackRange = -25.0 ; this needs to be pretty high, since the Aurora moves so fast AcceptableAimDelta = 45 ; we don't really need to be aimed directly at the target. DamageType = AURORA_BOMB DeathType = EXPLODED WeaponSpeed = 99999 ProjectileObject = AuroraBomb FireFX = FX_AuroraBombLaunch ProjectileDetonationFX = FX_AuroraBombDetonate RadiusDamageAffects = ENEMIES NEUTRALS DelayBetweenShots = 200 ; time between shots, msec ClipSize = 50 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 100 ; how long to reload a Clip, msec AutoReloadsClip = RETURN_TO_BASE ; must return to base to reload this weapon ShowsAmmoPips = No ; 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] and here are the Command Button, Command set (didnt include the airfield), and FactionUnit: [Code]CommandButton CommandButton Command_ConstructNewAmericaJetB52 Command = UNIT_BUILD Object = NewAmericaJetB52 TextLabel = CONTROLBAR:ConstructNewAmericaJetB52 ButtonImage = SACDaisyCutter ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is DescriptLabel = CONTROLBAR:ToolTipUSABuildB52 End CommandSet CommandSet AmericaJetAuroraCommandSet ; 6 = Command_Guard ; 8 = Command_GuardFlyingUnitsOnly 9 = Command_AttackMove 11 = Command_Guard 12 = Command_Stop End FactionUnit ;------------------------------------------------------------------------------ Object NewAmericaJetB52 ; *** ART Parameters *** SelectPortrait = SACDaisyCutter ButtonImage = SACDaisyCutter UpgradeCameo1 = Upgrade_AmericaAdvancedTraining ;UpgradeCameo2 = NONE ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 DefaultConditionState Model = AVBomber ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Engine03 JetBlackTrailThin ParticleSysBone = Engine04 JetBlackTrailThin ParticleSysBone = WingTip01 JetContrailThin ParticleSysBone = WingTip02 JetContrailThin End ConditionState = DAMAGED Model = AVBomber_D ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Engine03 JetBlackTrailThin ParticleSysBone = Engine04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End ConditionState = REALLYDAMAGED Model = AVBomber_D ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Engine01 JetBlackTrailThin ParticleSysBone = Engine02 JetBlackTrailThin ParticleSysBone = Engine03 JetBlackTrailThin ParticleSysBone = Engine04 JetBlackTrailThin ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End ConditionState = RUBBLE Model = AVBomber_D1 ParticleSysBone = Smoke01 JetFireLarge ParticleSysBone = Smoke02 JetFireLarge ParticleSysBone = Smoke01 JetSmokeLarge ParticleSysBone = Smoke02 JetSmokeLarge End OkToChangeModelColor = Yes End ; ***DESIGN parameters *** DisplayName = OBJECT:B52 EditorSorting = VEHICLE Side = America TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable) VisionRange = 200.0 ShroudClearingRange = 600 Prerequisites Object = AmericaAirfield End BuildCost = 1 BuildTime = 1.0 ;in seconds WeaponSet Conditions = None Weapon = PRIMARY NewAuroraBombCarpetBombWeapon End ArmorSet Conditions = None Armor = AirplaneArmor DamageFX = TankDamageFX End CommandSet = AmericaJetAuroraCommandSet ; *** AUDIO Parameters *** VoiceSelect = AuroraBomberVoiceSelect VoiceMove = AuroraBomberVoiceMove VoiceGuard = AuroraBomberVoiceMove VoiceAttack = AuroraBomberVoiceAttack SoundAmbient = AuroraBomberAmbientLoop SoundAmbientRubble = NoSound SoundDie = AuroraBomberVoiceFalling UnitSpecificSounds VoiceCreate = AuroraBomberVoiceCreate SoundEject = PilotSoundEject VoiceEject = PilotVoiceEject Afterburner = RaptorAfterburner VoiceLowFuel = AuroraBomberVoiceLowFuel VoiceGarrison = AuroraBomberVoiceMove End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT Body = ActiveBody ModuleTag_02 MaxHealth = 2000.0 InitialHealth = 2000.0 End Behavior = JetSlowDeathBehavior ModuleTag_03 FXOnGroundDeath = FX_JetOnGroundDeath OCLOnGroundDeath = OCL_AuroraDeathFinalBlowUp DestructionDelay = 2000 RollRate = 0.0 RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta PitchRate = 0 FallHowFast = 25.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity) FXInitialDeath = FX_JetBigDeathInitial OCLInitialDeath = OCL_AmericaJetCargoDeathStart DelaySecondaryFromInitialDeath = 2000 ; in milliseconds This guy won't hit the ground, so this time equals the above time OCLSecondary = OCL_AmericaJetCargoHulkDeath FXSecondary = FX_BigPlaneDeath ; FXFinalBlowUp = FX_JetDeathFinalBlowUp ; OCLFinalBlowUp = OCL_AuroraDeathFinalBlowUp ; DeathLoopSound = MICAL NEEDS TO MAKE ME End Behavior = EjectPilotDie ModuleTag_04 GroundCreationList = OCL_EjectPilotOnGround AirCreationList = OCL_EjectPilotViaParachute ExemptStatus = HIJACKED VeterancyLevels = ALL -REGULAR ;only vet+ gives pilot End Behavior = PhysicsBehavior ModuleTag_05 Mass = 500.0 End Behavior = ExperienceScalarUpgrade ModuleTag_06 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = JetAIUpdate ModuleTag_07 OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo ; note that it's expressed as a percent of max health, not an absolute TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off TakeoffPause = 500 MinHeight = 5 SneakyOffsetWhenAttacking = -15.0 ; this is how far behind us people aim when we are in attack mode AttackLocomotorType = SET_NORMAL AttackLocomotorPersistTime = 999999 ; we start slowing down almost immediately AttackersMissPersistTime = 999999 ; but remain untargetable fer a bit longer ReturnForAmmoLocomotorType = SET_NORMAL ReturnToBaseIdleTime = 5000 ; if idle for this long, return to base, even if not out of ammo End Locomotor = SET_NORMAL B52Locomotor Locomotor = SET_TAXIING BasicJetTaxiLocomotor 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 Behavior = TransitionDamageFX ModuleTag_22 ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01 ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition End Geometry = Box GeometryIsSmall = Yes GeometryMajorRadius = 14.0 GeometryMinorRadius = 7.0 GeometryHeight = 5.0 Shadow = SHADOW_VOLUME ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length End [/Code]

Posted by: NewNightmare - Saturday, July 28, 2012 3:17:59 PM
[quote]AttackRange = -25.0 ; this needs to be pretty high, since the Aurora moves so fast[/quote] Negative attack range? Change it to something like 250, for bombing like this, I'd look up Mig bomber from Shockwave mod, as they've done pretty good job with making the free-fall realistic.