Jump to content
Sign in to follow this  
Spaceboy

Promotions moding

Recommended Posts

hello

 

i wanna ask how to transfer an promotion , maybe cashbounty for usa , scan / spydrohne for china or Artillery promotion for gla ?

 

i just know how to change the buttons.

Share this post


Link to post

I'm assuming this is for the new faction you made based on another post. If not ignore the steps for creating a new command center and command sets and just edit the existing ones (you can follow this for new and old factions).

 

In PlayerTemplate.ini you will need to change a few command sets, FOR YOUR FACTION (new faction):

 

 

  PurchaseScienceCommandSetRank1  = SCIENCE_AMERICA_CommandSetRank1
 PurchaseScienceCommandSetRank3  = SCIENCE_AMERICA_CommandSetRank3
 PurchaseScienceCommandSetRank8  = SCIENCE_AMERICA_CommandSetRank8
 SpecialPowerShortcutCommandSet  = SpecialPowerShortcutUSA

 

Whatever you named your new faction, (I will use "FactionX" as an example) change your command sets to match.

 

 

  PurchaseScienceCommandSetRank1  = SCIENCE_FactionX_CommandSetRank1
 PurchaseScienceCommandSetRank3  = SCIENCE_FactionX_CommandSetRank3
 PurchaseScienceCommandSetRank8  = SCIENCE_FactionX_CommandSetRank8
 SpecialPowerShortcutCommandSet  = SpecialPowerShortcutFactionX

 

You will also need to make a new Command Center so change:

 

  StartingBuilding  = AmericaCommandCenter

 

to

 

  StartingBuilding  = FactionXCommandCenter

If you wish to make all your units completely custom you will need to change the dozer as well (if you want to build buildings that aren't whatever faction you copied).

 

Then in CommandSet.ini you will need to copy a faction's CommandCenterCommandSet, SpecialPowerShortcutCommandSet, and SCIENCE_CommandSets. (I will continue to use vanilla USA as an example). Copy the enitre command set.

 

 

CommandSet AmericaCommandCenterCommandSet
 1  = Command_ConstructAmericaDozer
 2  = Command_SpectreGunship
 4  = Command_LeafletDrop
 5  = Command_A10ThunderboltMissileStrike
 6  = Command_Paradrop
 7  = Command_SpyDrone
 8  = Command_EmergencyRepair
 9  = Command_DaisyCutter	   ;NOTE THIS GETS UPGRADED BELOW
10  = Command_SpySatelliteScan
13 = Command_SetRallyPoint
14 = Command_Sell
End


CommandSet SpecialPowerShortcutUSA
 1 = Command_SpyDroneFromShortcut
 2 = Command_ParadropFromShortcut
 3 = Command_A10ThunderboltMissileStrikeFromShortcut
 4 = Command_EmergencyRepairFromShortcut
 5 = Command_DaisyCutterFromShortcut
 6 = Command_FireParticleUplinkCannonFromShortcut
 7 = Command_SpySatelliteScanFromShortcut
 8 = Command_CIAIntelligenceFromShortcut
 9 = Command_SpectreGunshipFromShortcut
 10 = Command_LeafletDropFromShortcut
END


;Rank 1 only has 4 positions
CommandSet SCIENCE_AMERICA_CommandSetRank1
 1 = Command_PurchaseSciencePaladinTank
 2 = Command_PurchaseScienceStealthFighter
 3 = Command_PurchaseScienceSpyDrone
END

; Rank 3 assign buttons to position like so:
; 1 4 7 10 13
; 2 5 8 11 14
; 3 6 9 12 15
CommandSet SCIENCE_AMERICA_CommandSetRank3
 1 = Command_PurchaseSciencePathfinder
 4 = Command_PurchaseScienceParadrop1
 5 = Command_PurchaseScienceParadrop2
 6 = Command_PurchaseScienceParadrop3
 7 = Command_PurchaseScienceA10ThunderboltMissileStrike1
 8 = Command_PurchaseScienceA10ThunderboltMissileStrike2
 9 = Command_PurchaseScienceA10ThunderboltMissileStrike3
 10 = Command_PurchaseScienceEmergencyRepair1
 11 = Command_PurchaseScienceEmergencyRepair2
 12 = Command_PurchaseScienceEmergencyRepair3
END

; Rank 8 has 3 positions
CommandSet SCIENCE_AMERICA_CommandSetRank8
 1 = Command_PurchaseScienceDaisyCutter
 2 = Command_PurchaseScienceLeafletDrop
 3 = Command_PurchaseScienceSpectreGunship
 4 = Command_FAKECOMMAND_PurchaseScienceMOAB   ;Need the slot (it's SCRIPT_ONLY) and hidden.
END

 

Paste them at the bottom of the ini and change the names.

 

 

CommandSet FactionXCommandCenterCommandSet


CommandSet SpecialPowerShortcutFactionX


CommandSet SCIENCE_FactionX_CommandSetRank1

CommandSet SCIENCE_FactionX_CommandSetRank3



CommandSet SCIENCE_FactionX_CommandSetRank8

 

We will get to the actual command sets later (after you made the CommandButtons which you know how to do).

 

Now in Science.ini you will need to copy the abilities you want to learn which don't match your "IntrinsicSciences =" in PlayerTemplate.ini (OR if they have different prerequisites than you want you will need to copy them as well) and paste them at the bottom of the ini and change their names. I will use CashBounty for example and Assume you want it for a SCIENCE_USA faction.

 

Science SCIENCE_CashBounty1
 PrerequisiteSciences = SCIENCE_GLA SCIENCE_Rank3
 SciencePurchasePointCost = 1
 IsGrantable = Yes
 DisplayName = SCIENCE:GLACashBounty1
 Description = CONTROLBAR:ToolTipGLAScienceCashBounty
End

Science SCIENCE_CashBounty2
 PrerequisiteSciences = SCIENCE_CashBounty1 SCIENCE_Rank3
 SciencePurchasePointCost = 1
 IsGrantable = Yes
 DisplayName = SCIENCE:GLACashBounty2
 Description = CONTROLBAR:ToolTipGLAScienceCashBounty
End

Science SCIENCE_CashBounty3
 PrerequisiteSciences = SCIENCE_CashBounty2 SCIENCE_Rank3
 SciencePurchasePointCost = 1
 IsGrantable = Yes
 DisplayName = SCIENCE:GLACashBounty3
 Description = CONTROLBAR:ToolTipGLAScienceCashBounty
End

 

You will need to change the NAME of the science as well as PrerequisiteSciences in this case.

 

Science FactionX_SCIENCE_CashBounty1
 PrerequisiteSciences = SCIENCE_USA SCIENCE_Rank3
 SciencePurchasePointCost = 1
 IsGrantable = Yes
 DisplayName = SCIENCE:GLACashBounty1
 Description = CONTROLBAR:ToolTipGLAScienceCashBounty
End

Science FactionX_SCIENCE_CashBounty2
 PrerequisiteSciences = FactionX_SCIENCE_CashBounty1 SCIENCE_Rank3
 SciencePurchasePointCost = 1
 IsGrantable = Yes
 DisplayName = SCIENCE:GLACashBounty2
 Description = CONTROLBAR:ToolTipGLAScienceCashBounty
End

Science FactionX_SCIENCE_CashBounty3
 PrerequisiteSciences = FactionX_SCIENCE_CashBounty2 SCIENCE_Rank3
 SciencePurchasePointCost = 1
 IsGrantable = Yes
 DisplayName = SCIENCE:GLACashBounty3
 Description = CONTROLBAR:ToolTipGLAScienceCashBounty
End

 

Notice because I assumed you wanted this science from a SCIENCE_USA faction I changed the first PrerequisiteSciences to work with that faction. After that, just use the name if the Science that comes before it. You can do this however you like, even remove the first 2 and just use the third. Just set the prerequisites accordingly. Repeat this step for whatever sciences you want. Keep in mind your CommandSet limitations (3 buttons for rank 1, 15 buttons for rank 3 and 3 buttons for rank 5 (rank 8 as the game states). You can have buttons wherever you want in the command sets (Rank 1 sciences don't need to be only in SCIENCE_FactionX_CommandSetRank1) but keep in mind you may only have 21 accessible buttons although if you look at how the game did MOAB you can have hidden buttons as script only which you make purchasable via a different CommandSet.

 

Now you will need to make your CommandCenter (if you want this for a new faction as I assumed thus far). I will continue to use vanilla USA as an example. In FactionBuilding.ini (located in the Object folder) find AmericaCommandCenter. Copy the WHOLE thing (it's rather long) until you see "End" with no spaces in front of it.

 

Object AmericaCommandCenter
 (A BUGILLION LINES OF CODE)

 Side				  = America

 (a few more lines code)

 CommandSet			= AmericaCommandCenterCommandSet

 (and even more lines of code)


 Behavior		   = OCLSpecialPower ModuleTag_20
SpecialPowerTemplate = SuperweaponDaisyCutter
UpgradeOCL		   = SCIENCE_MOAB SUPERWEAPON_MOAB
OCL				  = SUPERWEAPON_DaisyCutter
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
 End
 Behavior		   = OCLSpecialPower ModuleTag_21
SpecialPowerTemplate = SpecialPowerSpyDrone
OCL				  = SUPERWEAPON_SpyDrone
CreateLocation	   = CREATE_ABOVE_LOCATION
 End
 Behavior		   = OCLSpecialPower ModuleTag_22
SpecialPowerTemplate = SuperweaponParadropAmerica
UpgradeOCL		   = SCIENCE_Paradrop3 SUPERWEAPON_Paradrop3
UpgradeOCL		   = SCIENCE_Paradrop2 SUPERWEAPON_Paradrop2
OCL				  = SUPERWEAPON_Paradrop1
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
OCLAdjustPositionToPassable = Yes ;Like RA2, shift target to passable cell so we don't land in water and on cliffs.
 End
;  Behavior		   = OCLSpecialPower ModuleTag_23;this has been removed from everywhere but the ChinaAirfield in CHI05
;	SpecialPowerTemplate = SuperweaponCarpetBomb
;	OCL				  = SUPERWEAPON_CarpetBomb
;	CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
;  End
 Behavior		   = OCLSpecialPower ModuleTag_24
SpecialPowerTemplate = SpecialPowerSpySatellite
OCL				  = SUPERWEAPON_SpySatellite
CreateLocation	   = CREATE_AT_LOCATION
 End
 Behavior	= OCLSpecialPower ModuleTag_25
SpecialPowerTemplate = SuperweaponCrateDrop
OCL				  = SUPERWEAPON_CrateDrop
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
 End
 Behavior		   = OCLSpecialPower ModuleTag_26
SpecialPowerTemplate = SuperweaponA10ThunderboltMissileStrike
UpgradeOCL		   = SCIENCE_A10ThunderboltMissileStrike3 SUPERWEAPON_A10ThunderboltMissileStrike3
UpgradeOCL		   = SCIENCE_A10ThunderboltMissileStrike2 SUPERWEAPON_A10ThunderboltMissileStrike2
OCL				  = SUPERWEAPON_A10ThunderboltMissileStrike1
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
 End
 Behavior		   = OCLSpecialPower ModuleTag_27
SpecialPowerTemplate = SuperweaponEmergencyRepair
UpgradeOCL		   = SCIENCE_EmergencyRepair3 SUPERWEAPON_RepairVehicles3
UpgradeOCL		   = SCIENCE_EmergencyRepair2 SUPERWEAPON_RepairVehicles2
OCL				  = SUPERWEAPON_RepairVehicles1
CreateLocation	   = CREATE_AT_LOCATION
 End

 (a few more lines of code)

End

 

There are a few things you're going to want to change here:

 

 

Object FactionXCommandCenter
 (A BUGILLION LINES OF CODE, which you will ignore)

 Side				  = FactionX

 (a few more lines code)

 CommandSet			= FactionXCommandCenterCommandSet

 (and even more lines of code)


 Behavior		   = OCLSpecialPower ModuleTag_20
SpecialPowerTemplate = SuperweaponDaisyCutter
UpgradeOCL		   = SCIENCE_MOAB SUPERWEAPON_MOAB
OCL				  = SUPERWEAPON_DaisyCutter
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
 End
 Behavior		   = OCLSpecialPower ModuleTag_21
SpecialPowerTemplate = SpecialPowerSpyDrone
OCL				  = SUPERWEAPON_SpyDrone
CreateLocation	   = CREATE_ABOVE_LOCATION
 End
 Behavior		   = OCLSpecialPower ModuleTag_22
SpecialPowerTemplate = SuperweaponParadropAmerica
UpgradeOCL		   = SCIENCE_Paradrop3 SUPERWEAPON_Paradrop3
UpgradeOCL		   = SCIENCE_Paradrop2 SUPERWEAPON_Paradrop2
OCL				  = SUPERWEAPON_Paradrop1
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
OCLAdjustPositionToPassable = Yes ;Like RA2, shift target to passable cell so we don't land in water and on cliffs.
 End
;  Behavior		   = OCLSpecialPower ModuleTag_23;this has been removed from everywhere but the ChinaAirfield in CHI05
;	SpecialPowerTemplate = SuperweaponCarpetBomb
;	OCL				  = SUPERWEAPON_CarpetBomb
;	CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
;  End
 Behavior		   = OCLSpecialPower ModuleTag_24
SpecialPowerTemplate = SpecialPowerSpySatellite
OCL				  = SUPERWEAPON_SpySatellite
CreateLocation	   = CREATE_AT_LOCATION
 End
 Behavior	= OCLSpecialPower ModuleTag_25
SpecialPowerTemplate = SuperweaponCrateDrop
OCL				  = SUPERWEAPON_CrateDrop
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
 End
 Behavior		   = OCLSpecialPower ModuleTag_26
SpecialPowerTemplate = SuperweaponA10ThunderboltMissileStrike
UpgradeOCL		   = SCIENCE_A10ThunderboltMissileStrike3 SUPERWEAPON_A10ThunderboltMissileStrike3
UpgradeOCL		   = SCIENCE_A10ThunderboltMissileStrike2 SUPERWEAPON_A10ThunderboltMissileStrike2
OCL				  = SUPERWEAPON_A10ThunderboltMissileStrike1
CreateLocation	   = CREATE_AT_EDGE_NEAR_SOURCE
 End
 Behavior		   = OCLSpecialPower ModuleTag_27
SpecialPowerTemplate = SuperweaponEmergencyRepair
UpgradeOCL		   = SCIENCE_EmergencyRepair3 SUPERWEAPON_RepairVehicles3
UpgradeOCL		   = SCIENCE_EmergencyRepair2 SUPERWEAPON_RepairVehicles2
OCL				  = SUPERWEAPON_RepairVehicles1
CreateLocation	   = CREATE_AT_LOCATION
 End


 Behavior = CashBountyPower ModuleTag_FactionXCashBounty1
SpecialPowerTemplate	= FactionX_SpecialAbilityCashBounty1
Bounty				  = 5%
 End
 Behavior = CashBountyPower ModuleTag_FactionXCashBounty2
SpecialPowerTemplate	= FactionX_SpecialAbilityCashBounty2
Bounty				  = 10%
 End
 Behavior = CashBountyPower ModuleTag_FactionXCashBounty3
SpecialPowerTemplate	= FactionX_SpecialAbilityCashBounty3
Bounty				  = 20%
 End

 (a few more lines of code)

End

 

Notice the SpecialPowers I did nothing to. You should remove these if they will not be used with your faction. Also notice the ModuleTag, when creating something new for a faction i always give the ModuleTag a unique name. Finally notice the SpecialPowerTemplate, I made a new one because the old one required a science that we copied but changed the name of. Add all the other special powers to your command center. You will need to copy the behaviors from existing command centers that have that ability (just search for them using Ctrl+F) and change the SpecialPowerTemplates accordingly (if you had to create a new science or wish to change the countdown timer). Now you have your command center working for your faction. Now you will need to edit SpecialPower.ini because you had to make a new science and we need a special power tha reflects that.

 

Copy all the special powers you created (if you had to make a new science or you just want to change the timer on the ability).

 

 

SpecialPower SpecialAbilityCashBounty1
 Enum			  = SPECIAL_CASH_BOUNTY
 RequiredScience   = SCIENCE_CashBounty1
 PublicTimer	   = No
End

SpecialPower SpecialAbilityCashBounty2
 Enum			  = SPECIAL_CASH_BOUNTY
 RequiredScience   = SCIENCE_CashBounty2
 PublicTimer	   = No
End

SpecialPower SpecialAbilityCashBounty3
 Enum			  = SPECIAL_CASH_BOUNTY
 RequiredScience   = SCIENCE_CashBounty3
 PublicTimer	   = No
End

 

And change it to your new name listed in the Command Center. Also change the science name (that's the whole reason we had to make a new SpecialPower in the first place).

 

 

SpecialPower FactionX_SpecialAbilityCashBounty1
 Enum			  = SPECIAL_CASH_BOUNTY
 RequiredScience   = FactionX_SCIENCE_CashBounty1
 PublicTimer	   = No
End

SpecialPower FactionX_SpecialAbilityCashBounty2
 Enum			  = SPECIAL_CASH_BOUNTY
 RequiredScience   = FactionX_SCIENCE_CashBounty2
 PublicTimer	   = No
End

SpecialPower FactionX_SpecialAbilityCashBounty3
 Enum			  = SPECIAL_CASH_BOUNTY
 RequiredScience   = FactionX_SCIENCE_CashBounty3
 PublicTimer	   = No
End

 

Finally just make the CommandButtons for purchasing your sciences, using your special powers (both from your command center and shortcut bar) and fill in the CommandSets and you are done. Notice that you can replace FactionX with whatever faction name you choose.

 

If you are making NEW (ones that exist only in your head) Special Powers and it requires something actually happening (like a missile or plane flying in) you will need to edit ObjectCreationList.ini and add the new OCL(s) to your CommandCenter.

 

Your CommandButtons should match the sciences in Science.ini and special powers in SpecialPower.ini, for example:

 

CommandButton FactionX_Command_PurchaseScienceCashBounty1
 Command		   = PURCHASE_SCIENCE
 Science		   = FactionX_SCIENCE_CashBounty1
 ButtonImage	   = SSCashBounty  
 ButtonBorderType  = UPGRADE ; Identifier for the User as to what kind of button this is
End

 

And if you were to do DaisyCutter (Fuel Air Bomb):

 

CommandButton Command_PurchaseScienceDaisyCutter
 Command		   = PURCHASE_SCIENCE
 Science		   = SCIENCE_DaisyCutter
 ButtonImage	   = SACDaisyCutter
 ButtonBorderType  = UPGRADE ; Identifier for the User as to what kind of button this is
 TextLabel		 = CONTROLBAR:DaisyCutter ;Used for controlbar button (with hotkey)
 ConflictingLabel  = OBJECT:DaisyCutterBomb ;Used for shortcut button (no hotkey)
 DescriptLabel	 = CONTROLBAR:TooltipDaisyCutter
End

CommandButton Command_DaisyCutter
 Command		   = SPECIAL_POWER
 SpecialPower	  = SuperweaponDaisyCutter
 Options		   = NEED_SPECIAL_POWER_SCIENCE NEED_TARGET_POS CONTEXTMODE_COMMAND
 Science		   = SCIENCE_DaisyCutter SCIENCE_MOAB ;These will cause the buttons to change icons, nothing more
 TextLabel		 = CONTROLBAR:DaisyCutter
 ButtonImage	   = SACDaisyCutter
 ButtonBorderType  = ACTION
 DescriptLabel	 = CONTROLBAR:TooltipDaisyCutter
 RadiusCursorType  = DAISYCUTTER
 InvalidCursorName = GenericInvalid
End

CommandButton Command_DaisyCutterFromShortcut
 Command		   = SPECIAL_POWER_FROM_SHORTCUT
 SpecialPower	  = SuperweaponDaisyCutter
 Options		   = NEED_SPECIAL_POWER_SCIENCE NEED_TARGET_POS CONTEXTMODE_COMMAND
 Science		   = SCIENCE_DaisyCutter SCIENCE_MOAB ;These will cause the buttons to change icons, nothing more
 TextLabel		 = OBJECT:DaisyCutterBomb
 ButtonImage	   = SACDaisyCutter
;  ButtonBorderType  = ACTION
 DescriptLabel	 = CONTROLBAR:TooltipDaisyCutter
 RadiusCursorType  = DAISYCUTTER
 InvalidCursorName = GenericInvalid
End

 

You wouldn't need to change anything because you are SCIENCE_USA but if you were a different one you would need to make a new science and copy/paste these buttons and rename all the SCIENCE_DaisyCutter to FactionX_SCIENCE_DaisyCutter for example and if you wanted MOAB upgrade you would need to copy/paste that button at the bottom and rename all the SCIENCE_DaisyCutter to FactionX_SCIENCE_MOAB. You will also need to change the names of the CommandButton(s) and SpecialPower(s) and make new SpecialPower(s).

 

I hope this wasn't too confusing and I answered your question to you satisfaction. I will check again in a few days so if you have any further questions on this topic, go ahead and reply.

Edited by freak4twenty

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×