Jump to content

Interesting UPK Stuff I've Found


BlackAlpha

Recommended Posts

===================

XComStrategyGame.upk:

===================

 

==== XGItemTree ====

 

>>>> function ScaleCost(out TItem kItem)

 

Changed:

fScale = fScale + float(1) * 0.50;

 

To:

fScale = fScale + float(1) * 0.75;

 

This affects the discount bonus that engineers provide. This change will make it so that items cost a bit more than their base price when the player has very few engineers. Once the player has around 15 engineers, the discount will kick in, resulting in prices to drop more and more as the player gains more engineers. The discount will rise much slower compared to vanilla. Generally, the discount now won't be as overpowered as in vanilla. It might only reach that point at the very end of the campaign, depending on how fast the player finishes the game.

 

HEX Hint: It's a float. Look for the final "3F", then change it and the three numbers in front of it.

 

A couple of things with this one:

 

The discount is based on the number of engineers you have AND the minimum number of engineers the item takes to build. So if it's a late-game item requiring 35 engineers, the discount is much less than if it was an item requiring 5 engineers.

 

Also, the discount isn't calculated if you have EXACTLY the right number of engineers required to build the item. That will manifest as a bug if you are using your formulation and making items cost more than their base cost with low numbers of engineers, as the negative discount (increase in cost) isn't calculated. But if you have one more engineer, it will be.

 

The way to fix this is to change a sign from > to >= Here's the code:

 

47 01 B1 00 98 35
to
47 01 B3 00 98 35

Link to comment
Share on other sites

======================

DLC_Day060_SF.upk:

======================

 

 

 

==== DLC_Day060HQMod ====

>>>> simulated function AddFundingCouncilMissions

Changed:

reward.Soldier.HP = 9;


To:

reward.Soldier.HP = 5;


This reduces the health of Zhang.

HEX Hint:
Change:
00 28 0F 35 7C FF FF FF 4E FF FF FF 00 00 35 40 FF FF FF 4F FF FF FF 00 01 00 18 00 00 00 2C 09
To:
00 28 0F 35 7C FF FF FF 4E FF FF FF 00 00 35 40 FF FF FF 4F FF FF FF 00 01 00 18 00 00 00 2C 05

 

 

 

 

 

======================

XComStrategyGame.upk:

======================

 

 

 

==== XGStrategyAI ====

>>>> function BuildObjectives

Changed:

BuildObjective(1, false);
AddUFOMission(1, 1, 4, 0, -1, 7);
BuildObjective(3, false);
AddUFOMission(3, 1, 4, 4, -1, 7);
BuildObjective(2, false);
AddUFOMission(2, 1, 4, 2, -1, 7);
BuildObjective(4, false);
AddUFOMission(4, 1, 5, 7, -1, 1);
BuildObjective(0, false);
AddUFOMission(0, 10, 4, 0, -1, 5);
BuildObjective(5, true);
AddUFOMission(5, 1, 5, 0, 500, 1);
AddUFOMission(5, 3, 6, 5, 0, 0);
BuildObjective(6, false);
AddUFOMission(6, 9, 8, 4, 100, 3);
AddUFOMission(6, 20, 8, 5, 0, 7);
BuildObjective(7, true);
AddUFOMission(7, 1, 9, 1, 100, 0);
AddUFOMission(7, 4, 9, 5, 0, 3);


To:

BuildObjective(1, false);
AddUFOMission(1, 1, 4, 0, -1, 7);
BuildObjective(3, false);
AddUFOMission(3, 1, 4, 4, -1, 7);
BuildObjective(2, false);
AddUFOMission(2, 1, 5, 2, -1, 7);
BuildObjective(4, false);
AddUFOMission(4, 1, 5, 7, -1, 1);
BuildObjective(0, false);
AddUFOMission(0, 10, 4, 0, -1, 5);
BuildObjective(5, false);
AddUFOMission(50, 1, 50, 0, 500, 1);
AddUFOMission(5, 3, 6, 5, 0, 0);
BuildObjective(6, false);
AddUFOMission(6, 9, 4, 4, 100, 3);
AddUFOMission(6, 20, 8, 5, 0, 7);
BuildObjective(7, true);
AddUFOMission(7, 1, 9, 1, 100, 0);
AddUFOMission(7, 4, 9, 5, 0, 3);


This changes the UFO missions. Among other things, it dictates which UFOs show up on certain mission types and what the UFO's behavior should be.
Note that the boolean dictates if shooting down the UFO on that particular mission should cancel all UFOs next in line for that particular mission.

Props to Johnnylump for finding this code.

HEX Hint:
Change:
24 01 28 16 1B CA 00 00 00 00 00 00 00 24 01 26 24 04 24 00 1D FF FF FF FF 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 03 28 16 1B CA 00 00 00 00 00 00 00 24 03 26 24 04 24 04 1D FF FF FF FF 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 02 28 16 1B CA 00 00 00 00 00 00 00 24 02 26 24 04 24 02 1D FF FF FF FF 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 04 28 16 1B CA 00 00 00 00 00 00 00 24 04 26 24 05 24 07 1D FF FF FF FF 26 16 1B 7C 04 00 00 00 00 00 00 24 00 28 16 1B CA 00 00 00 00 00 00 00 24 00 2C 0A 24 04 24 00 1D FF FF FF FF 2C 05 16 1B 7C 04 00 00 00 00 00 00 24 05 27 16 1B CA 00 00 00 00 00 00 00 24 05 26 24 05 24 00 1D F4 01 00 00 26 16 1B CA 00 00 00 00 00 00 00 24 05 2C 03 24 06 24 05 25 25 16 1B 7C 04 00 00 00 00 00 00 24 06 28 16 1B CA 00 00 00 00 00 00 00 24 06 2C 09 24 08 24 04 2C 64 2C 03 16 1B CA 00 00 00 00 00 00 00 24 06 2C 14 24 08 24 05 25 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 07 27 16 1B CA 00 00 00 00 00 00 00 24 07 26 24 09 24 01 2C 64 25 16 1B CA 00 00 00 00 00 00 00 24 07 2C 04 24 09 24 05 25 2C 03
To:
24 01 28 16 1B CA 00 00 00 00 00 00 00 24 01 26 24 04 24 00 1D FF FF FF FF 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 03 28 16 1B CA 00 00 00 00 00 00 00 24 03 26 24 04 24 04 1D FF FF FF FF 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 02 28 16 1B CA 00 00 00 00 00 00 00 24 02 26 24 05 24 02 1D FF FF FF FF 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 04 28 16 1B CA 00 00 00 00 00 00 00 24 04 26 24 05 24 07 1D FF FF FF FF 26 16 1B 7C 04 00 00 00 00 00 00 24 00 28 16 1B CA 00 00 00 00 00 00 00 24 00 2C 0A 24 04 24 00 1D FF FF FF FF 2C 05 16 1B 7C 04 00 00 00 00 00 00 24 05 28 16 1B CA 00 00 00 00 00 00 00 24 32 26 24 32 24 00 1D F4 01 00 00 26 16 1B CA 00 00 00 00 00 00 00 24 05 2C 03 24 06 24 05 25 25 16 1B 7C 04 00 00 00 00 00 00 24 06 28 16 1B CA 00 00 00 00 00 00 00 24 06 2C 09 24 04 24 04 2C 64 2C 03 16 1B CA 00 00 00 00 00 00 00 24 06 2C 14 24 08 24 05 25 2C 07 16 1B 7C 04 00 00 00 00 00 00 24 07 27 16 1B CA 00 00 00 00 00 00 00 24 07 26 24 09 24 01 2C 64 25 16 1B CA 00 00 00 00 00 00 00 24 07 2C 04 24 09 24 05 25 2C 03

 

 

 

==== XGStrategyAI ====

>>>> function bool ShouldHunt

Changed:

if(Game().GetDifficulty() >= 3)

if(eUFO == 8)

if(Game().GetDifficulty() <= 1 && (HQ().m_arrSatellites.Length <= 2))


To:

if(Game().GetDifficulty() >= 0)

if(eUFO == 6)

if(Game().GetDifficulty() >= 1 && (HQ().m_arrSatellites.Length <= 1))



This makes it so:

- On all difficulty levels, satellite hunters won't trigger on Abductors, but instead will trigger on Battleships.

- Satellite hunters won't show up when the player has one satellite on Normal, Classic and Impossible difficulty levels.

HEX Hint:
Change:
99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03 16 04 27 07 6B 00 9A 38 3A 00 6D 43 00 00 38 3A 24 08 16 04 28 07 BC 00 82 98 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 26 16 18 25 00 98 36 19 1B 5C 11 00 00 00 00 00 00 16 09 00 BB 32 00 00 00 01 BB 32 00 00 2C 02
To:
96 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 00 16 04 27 07 6B 00 9A 38 3A 00 6D 43 00 00 38 3A 24 06 16 04 28 07 BC 00 82 99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 26 16 18 25 00 98 36 19 1B 5C 11 00 00 00 00 00 00 16 09 00 BB 32 00 00 00 01 BB 32 00 00 2C 01

 

 

 

==== XGStrategyAI ====

>>>> function AIAddNewObjectives

Changed:

if(iNumUFOs > class'XGTacticalGameCore'.default.UFO_LIMIT)


To:

if(iNumUFOs < class'XGTacticalGameCore'.default.UFO_LIMIT)



This makes it so "UFO_LIMIT" inside the INI settings will dictate how many UFOs will show up each month.

Props to Johnnylump.

HEX Hint:
Change:
07 58 02 97 00
To:
07 58 02 96 00

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineAbductionSquad

Changed:

case 0:
iNumPods = 2;
iNumAliens = 4;
// End:0x94
break;
// End:0x51
case 1:
iNumPods = 3;
iNumAliens = 6;
// End:0x94
break;
// End:0x71
case 2:
iNumPods = 4;
iNumAliens = 8;
// End:0x94
break;
// End:0x91
case 3:
iNumPods = 4;
iNumAliens = 10;


To:

case 0:
iNumPods = 3;
iNumAliens = 7;
// End:0x94
break;
// End:0x51
case 1:
iNumPods = 4;
iNumAliens = 10;
// End:0x94
break;
// End:0x71
case 2:
iNumPods = 5;
iNumAliens = 13;
// End:0x94
break;
// End:0x91
case 3:
iNumPods = 6;
iNumAliens = 16;



This adds a few more enemies for all abduction difficulty levels.

Props to Johnnylump.

HEX Hint:
Change:
2C 02 0F 00 EC 43 00 00 2C 04 06 94 00 0A 51 00 26 0F 00 EB 43 00 00 2C 03 0F 00 EC 43 00 00 2C 06 06 94 00 0A 71 00 2C 02 0F 00 EB 43 00 00 2C 04 0F 00 EC 43 00 00 2C 08 06 94 00 0A 91 00 2C 03 0F 00 EB 43 00 00 2C 04 0F 00 EC 43 00 00 2C 0A
To:
2C 03 0F 00 EC 43 00 00 2C 07 06 94 00 0A 51 00 26 0F 00 EB 43 00 00 2C 04 0F 00 EC 43 00 00 2C 0A 06 94 00 0A 71 00 2C 02 0F 00 EB 43 00 00 2C 05 0F 00 EC 43 00 00 2C 0D 06 94 00 0A 91 00 2C 03 0F 00 EB 43 00 00 2C 06 0F 00 EC 43 00 00 2C 10

 

 

 

==== XGStrategyAI ====

>>>> noexport function AddPossible

Changed:

if(Game().GetDifficulty() == 3)


To:

if(Game().GetDifficulty() >= 0)



This makes it so the amount of enemies will not be limited for certain enemy types, on all difficulty levels.

HEX Hint:
Change:
9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03 16 0F 35 DD 41 00 00 E0 41
To:
99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 00 16 0F 35 DD 41 00 00 E0 41

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineFirstMissionSquad

Changed:

if(Game().GetDifficulty() >= 2)

if(Game().GetDifficulty() == 3)


To:

if(Game().GetDifficulty() >= 3)

if(Game().GetDifficulty() == 20)



This makes it so the amount of enemies during the first mission is reduced to 4 for Easy, Normal and Classic, and 6 for Impossible.

HEX Hint:
Change:
2C 02 16 0F 35 38 FF FF FF 85 FA FF FF 00 00 10 25 35 E4 FF FF FF 84 FA FF FF 00 01 00 32 44 00 00 24 04 0F 35 38 FF FF FF 85 FA FF FF 00 00 10 26 35 E4 FF FF FF 84 FA FF FF 00 01 00 32 44 00 00 24 04 07 2F 02 9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03
To:
2C 03 16 0F 35 38 FF FF FF 85 FA FF FF 00 00 10 25 35 E4 FF FF FF 84 FA FF FF 00 01 00 32 44 00 00 24 04 0F 35 38 FF FF FF 85 FA FF FF 00 00 10 26 35 E4 FF FF FF 84 FA FF FF 00 01 00 32 44 00 00 24 04 07 2F 02 9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 14

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineAlienBaseSquad

Changed:

if(Game().GetDifficulty() == 3)


To:

if(Game().GetDifficulty() >= 0)



This makes it so on all difficulty levels more enemies will spawn during the base assault mission, instead of only on Impossible.

HEX Hint:
Change:
07 C3 00 9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03
To:
07 C3 00 99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 00

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineSmallScoutSquad

Changed:

if(Game().GetDifficulty() == 3)


To:

if(Game().GetDifficulty() >= 0)



This makes it so small scout tactical missions will spawn more enemies on all difficulty levels.

HEX Hint:
Change:
16 0F 00 0A 44 00 00 2C 09 07 78 00 9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03
To:
16 0F 00 0A 44 00 00 2C 09 07 78 00 99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 00

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineLargeScoutSquad

Changed:

iNumAliens = iNumAliens / 2 + Rand(4);


To:

iNumAliens = iNumAliens / 1 - Rand(3);



This makes it so crash landed large scouts will spawn more enemies.

HEX Hint:
Change:
92 91 00 11 44 00 00 2C 02 16 A7 2C 04
To:
93 91 00 11 44 00 00 2C 01 16 A7 2C 03

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineSupplySquad

Changed:

if(Game().GetDifficulty() == 3)

iNumAliens = iNumAliens / 2 + Rand(int(0.40 * float(iNumAliens)));


To:

if(Game().GetDifficulty() >= 0)

iNumAliens = iNumAliens / 1 - Rand(int(0.30 * float(iNumAliens)));



This makes it so supply barges spawn more enemies on all difficulty levels. Also, they spawn more enemies when crash landed.

HEX Hint:
Change:
9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03 16 0F 00 1F 44 00 00 90 36 00 20 44 00 00 2C 03 16 06 B7 00 0F 00 1F 44 00 00 2C 10 07 F5 00 81 2D 00 23 44 00 00 16 0F 00 1F 44 00 00 92 91 00 1F 44 00 00 2C 02 16 A7 38 44 AB 1E CD CC CC 3E
To:
99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 00 16 0F 00 1F 44 00 00 90 36 00 20 44 00 00 2C 03 16 06 B7 00 0F 00 1F 44 00 00 2C 10 07 F5 00 81 2D 00 23 44 00 00 16 0F 00 1F 44 00 00 93 91 00 1F 44 00 00 2C 01 16 A7 38 44 AB 1E 9A 99 99 3E

 

 

 

==== XGStrategyAI ====

>>>> function TAlienSquad DetermineBattleshipSquad

Changed:

if(Game().GetDifficulty() == 3)


To:

if(Game().GetDifficulty() >= 0)



This makes it so supply barges spawn more enemies on all difficulty levels. Also, they spawn more enemies when crash landed.

HEX Hint:
Change:
27 44 00 00 03 00 24 00 16 0F 00 26 44 00 00 2C 14 07 E4 00 9A 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 03
To:
27 44 00 00 03 00 24 00 16 0F 00 26 44 00 00 2C 14 07 E4 00 99 19 1B 4C 0E 00 00 00 00 00 00 16 0A 00 43 41 00 00 00 1B F6 0E 00 00 00 00 00 00 16 2C 00

Edited by BlackAlpha
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...