Jump to content

Storms over former XCOM members | Controlling abductions


Drakous79

Recommended Posts

I just played the month of March with most of the settings I described above -- the most relevant ones being:

 

* 6 Abduction Missions a month

* 1 Abduction Location per Abduction Mission

* Satellites do not prevent abductions

* Panic for Escaped & Ignored UFOs eliminated; 2 Panic for Unstopped Abduction

* Max UFOs set to 20 (although I didn't make Drakous' change using this variable specifiying how many UFOs show up)

* EARLY_UFO_CHANCE set to 100

 

It worked. I had 6 abductions (all with one choice of country, all in countries without satellites; I only had one bird up), 1 council mission, a large scout UFO and a small scout UFO. I killed something like 60 Sectoids in the first month (and 2 outsiders, and 3 thinmen -- I lost one abduction and the council mission). Abduction rewards nicely randomized between scientists, engineers, cash and a soldier.

 

Two weird things:

1) The large scout appeared before the small scout, contrary to the usual order. I think the large might have been tied to an abduction somehow, although it didn't prevent one from happening.

2) Almost everything happening in the first 10 days: 5 abductions, the council mission, and the large scout. It was really one after another, and then it stopped, and I only had one abduction and the small scout late in the month. I'll see if it continues into April (where I think event are less scripted; if not, the pacing might turn off some players.)

 

And other notes:

3) I was rich from all the bodies and UFO stuff I could sell; might need to reduce values.

4) It's definitely hardcore, in that your technology doesn't really change between missions. High injury recovery times, higher XP for leveling up, and high interceptor repair times, I think, are vital for a challenging game.

Link to comment
Share on other sites

  • Replies 99
  • Created
  • Last Reply

Top Posters In This Topic

Drakous79, if I understand correctly, that last edit you posted should make it so that if I set UFOlimit to 12, I'll get anywhere from 2-12 abduction missions per month, and, if I also used your earlier edit to make only one abduction mission at a time, there will only be one launched at a time?

 

And at the same time, if I kept the default abduction setting of 3 per mission, with a UFO count of 50, there could be up to 150 total abduction missions attempted, assuming I shoot them all down?

No :) There are 3 different edits.

  1. Number of abduction sites (iNumTargets) ... Targets
    Reduces abduction targets from default 3 to 2 or 1. I would recommend 1 when they can stack.
  2. Number of abductions per month (iNumAbductions) ... Abductions
    Increases number of abduction missions per month.
  3. Number of enemy ships per month (iNumUFOs) ... UFOs
    Normally it acts as limit so you don't get too many UFOs (UFOs on scouting missions + UFOs preparing abduction and terror missions). The last edit lets you increase the number of UFOs instead of limiting it. By destorying the limit we disconnects iNumUFOs from abduction and terror UFOs. And depending on the conditional and = or +=, you are basically adding / setting number of random flyers per month.

I am not good at explaining :)

 

If you set UFO limit to 12, you just get +12 (depends on conditional in the last post) random flyers to shoot + 1 large scouts (and +1 abductors if scouts survive) for every abduction target. If you set UFO limit to 50, the same applies.

 

 

Two weird things:

1) The large scout appeared before the small scout, contrary to the usual order. I think the large might have been tied to an abduction somehow, although it didn't prevent one from happening.

2) Almost everything happening in the first 10 days: 5 abductions, the council mission, and the large scout. It was really one after another, and then it stopped, and I only had one abduction and the small scout late in the month. I'll see if it continues into April (where I think event are less scripted; if not, the pacing might turn off some players.)

  1. Large Scout was probably tied to the abduction, because on top of what we set by the edit, there is +1 abduction added by in AIAddNewObjectives(), if you don't have Hyperwave Beacon in storage.
  2. Noticed the same behaviour, while testing. Except iNumUFOs=50, when they were bugging me all the time.

The code responsible for abduction timing is in AddNewAbductions() function.

if(iAbduction == 0)
{
iStartDate = 11 + Rand(14);
}
else
{
iStartDate = Rand(8);
}

First abduction will happen on the [11 + random number from 14] day.

All other abductions happen in the first 8 days. We should increase it to 29 or 30!

Link to comment
Share on other sites

Blv this is the unique code for randomizing day of each abduction between first and 28th.

 

Find in XComGameStrategy.upk :

 

00 92 2c 0b a7 2c 0e 16 16 06 16 01 0f 00 49 42 00 00 a7 2c 08

 

Change to

 

00 92 2c 0b a7 2c 0e 16 16 06 16 01 0f 00 49 42 00 00 a7 2c 1c

 

Tested ... appears to work.

 

Also, set blitz second wave option for 2 abductions instead of 1, also works. Not sure it's a viable game (you won't be able to address abductions in 6 countries, instead of default 4, but there it is.

 

Edit: Corrected, should be 1c for 28 days. Made the same mistake I warned FH about below :)

Edited by johnnylump
Link to comment
Share on other sites

Ah, this makes much more sense. Guess I get to start a new game again, and right after I did the first Slingshot mission, too. But I misunderstood how the UFO count worked anyway, so all I was doing was making it easier to bring in more resources from crashed UFOs, which admittedly wasn't much fun.

 

Edit: In regards to the hex changes to get six abduction missions per month, would I replace the 06 at the end with 10 if I wanted ten per month, or have I once again completely misunderstood? :P

Edited by FlyingHigh10000000
Link to comment
Share on other sites

Ah, this makes much more sense. Guess I get to start a new game again, and right after I did the first Slingshot mission, too. But I misunderstood how the UFO count worked anyway, so all I was doing was making it easier to bring in more resources from crashed UFOs, which admittedly wasn't much fun.

 

Edit: In regards to the hex changes to get six abduction missions per month, would I replace the 06 at the end with 10 if I wanted ten per month, or have I once again completely misunderstood? :P

 

I think you'd replace it with 0A, which is 10 in hex (base 16). "10" would get you 16 abductions a month.

Link to comment
Share on other sites

Ah, this makes much more sense. Guess I get to start a new game again, and right after I did the first Slingshot mission, too. But I misunderstood how the UFO count worked anyway, so all I was doing was making it easier to bring in more resources from crashed UFOs, which admittedly wasn't much fun.

 

Edit: In regards to the hex changes to get six abduction missions per month, would I replace the 06 at the end with 10 if I wanted ten per month, or have I once again completely misunderstood? :P

 

I think you'd replace it with 0A, which is 10 in hex (base 16). "10" would get you 16 abductions a month.

 

Haha, well that would certainly be a surprise, and not a good one at that. Time for me to look up a conversion chart.

 

Edit: You were right. Looking further at the original post, 0A is mentioned, as Drakous used that in the edit he made to have ten missions. Hopefully the way I did it works, too. If not, back to the drawing board, I suppose. :P

Edited by FlyingHigh10000000
Link to comment
Share on other sites

I

As promised earlier, here's how to allow more abduction missions per month. It can be defined in XComStrategyGame.upk, class XGStrategyAI, function AIAddNewObjectives().

iNumUFOs = 1;
iNumAbductions = 1;

But those ones are defined as one byte, 26 in this case. For any number higher than one we need two bytes, something like 2C 06. Okay, we're screwed, because adding bytes is too close to impossible atm. Good we can steal the byte from iNumUFOs = 1.

 

iNumUFOs
iNumAbductions = 6;

SF: 0F 00 42 42 00 00 26 0F 00 43 42 00 00 26
RW: 0F 00 42 42 00 00 0F 00 43 42 00 00 2C 06

It seems to be valid code, because the game starts without a crash and it actually works even without comma at the end of iNumUFOs. Only downside is, we are subtracting 1 UFO from the default setting per month.

 

Let me know, if it works for you. I've tried 10 abduction missions with 1 site and with 10 abduction missions with 3 sites, and have to say, it works fine with 1 site. With 3 sites, you will run out of abduction targets. 16 countries / 3 = 5 abduction missions max.

 

Also my code was swapped like 0F 00 43 42 00 00 2C 0A 0F 00 42 42 00 00, but the result should be the same.

 

Edit: Number of abductions should be [what we set] + 1, because 1 abduction is added later in AIAddNewObjectives().

 

I wanted to update on this: I updated with the latest patch (I don't have the DLC) and had trouble getting everythign working again for a bit. It turns out this was the issue:

 

SF: 0F 00 42 42 00 00 26 0F 00 43 42 00 00 26

to

RW: 0F 00 42 42 00 00 0F 00 43 42 00 00 2C 06

 

The RW (replacement code) doesn't work any longer for me.

 

Fortunately, changing

 

0F 00 42 42 00 00 26 0F 00 43 42 00 00 26

to

0F 00 43 42 00 00 2C 0A 0F 00 42 42 00 00

 

(your second notation) DOES still work. 0A is the key variable for number of abductions -- it is 10 in the current formulation. I changed it to 05 for six abductions a month.

Edited by johnnylump
Link to comment
Share on other sites

Find in XComGameStrategy.upk :

 

00 92 2c 0b a7 2c 0e 16 16 06 16 01 0f 00 49 42 00 00 a7 2c 08

 

Change to

 

00 92 2c 0b a7 2c 0e 16 16 06 16 01 0f 00 49 42 00 00 a7 2c 1c

 

Tested ... appears to work.

Good work Johny :) That is the same as in my game with the latest patch and Slingshot DLC.

 

// End:0x108
if(iAbduction == 0)
{
iStartDate = 11 + Rand(14);
}

07 08 01 9A 00 4B 42 00 00 25 16 0F 00 49 42 00 00 92 2C 0B A7 2C 0E 16 16 

// 07 If
// 08 01 Where if ends
// 9A == Compare equals sign, operators go before values
// 00 Local variable follows
// 4B 42 00 00 iAbduction
// 25 Integer zero

// 0F = Let sign
// 00 Local variable follows
// 49 42 00 00 iStartDate
// 92 + Add sign
// 2C Integer constant of one byte follows
// 0B 11
// A7 Native function Rand()
// 2C Integer constant of one byte follows
// 0E 14
// 16 End (of Rand)
// 16 End (of +)

// End:0x116
else
{
iStartDate = Rand(8);
}

06 16 01 0F 00 49 42 00 00 A7 2C 08 16

// 06 Else
// 16 01 Where else ends
// 0F = Let sign
// 00 Local variable follows
// 49 42 00 00 iStartDate
// A7 Native function Rand()
// 2C Integer constant of one byte follows
// 08 8
// 16 End (of Rand)

 

 

SF: 0F 00 42 42 00 00 26 0F 00 43 42 00 00 26
RW: 0F 00 42 42 00 00 0F 00 43 42 00 00 2C 06

Also my code was swapped like 0F 00 43 42 00 00 2C 0A 0F 00 42 42 00 00, but the result should be the same.

I wanted to update on this: I updated with the latest patch (I don't have the DLC) and had trouble getting everythign working again for a bit. It turns out this was the issue:

 

SF: 0F 00 42 42 00 00 26 0F 00 43 42 00 00 26

to

RW: 0F 00 42 42 00 00 0F 00 43 42 00 00 2C 06

 

The RW (replacement code) doesn't work any longer for me.

 

Fortunately, changing

 

0F 00 42 42 00 00 26 0F 00 43 42 00 00 26

to

0F 00 43 42 00 00 2C 0A 0F 00 42 42 00 00

 

(your second notation) DOES still work. 0A is the key variable for number of abductions -- it is 10 in the current formulation. I changed it to 05 for six abductions a month.

Big thanks for pointing it out! It is totally my bad posting with old notes.

 

The RW code I posted miss one vital change - changing the first let sign to nothing! I will update previous post to reflect it.

// Wrong
iNumUFOs = iNumAbductions = 6

Wrong RW: 0F 00 42 42 00 00 0F 00 43 42 00 00 2C 06

// Right
iNumUFOs
iNumAbductions = 6

Correct RW: 0B 00 42 42 00 00 0F 00 43 42 00 00 2C 06

// 0B Nothing
// 00 Local variable
// 42 42 00 00 iNumUFOs
// 0F = Let sign
// 00 Local variable
// 43 42 00 00 iNumAbductions
// 2C Integer constant of one byte follows
// 06 6

I'll stop slacking :) Looking forward a time, when we would be able to write extensions for classes, if it ever comes.

Edited by Drakous79
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...