johnnylump Posted December 9, 2012 Share Posted December 9, 2012 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 More sharing options...
Drakous79 Posted December 9, 2012 Author Share Posted December 9, 2012 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.Number of abduction sites (iNumTargets) ... TargetsReduces abduction targets from default 3 to 2 or 1. I would recommend 1 when they can stack.Number of abductions per month (iNumAbductions) ... AbductionsIncreases number of abduction missions per month.Number of enemy ships per month (iNumUFOs) ... UFOsNormally 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.)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.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 More sharing options...
johnnylump Posted December 9, 2012 Share Posted December 9, 2012 (edited) 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 December 10, 2012 by johnnylump Link to comment Share on other sites More sharing options...
FlyingHigh10000000 Posted December 10, 2012 Share Posted December 10, 2012 (edited) 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 December 10, 2012 by FlyingHigh10000000 Link to comment Share on other sites More sharing options...
johnnylump Posted December 10, 2012 Share Posted December 10, 2012 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 More sharing options...
FlyingHigh10000000 Posted December 10, 2012 Share Posted December 10, 2012 (edited) 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 December 10, 2012 by FlyingHigh10000000 Link to comment Share on other sites More sharing options...
johnnylump Posted December 10, 2012 Share Posted December 10, 2012 (edited) IAs 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 06It 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 26toRW: 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 26to0F 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 December 10, 2012 by johnnylump Link to comment Share on other sites More sharing options...
Drakous79 Posted December 10, 2012 Author Share Posted December 10, 2012 (edited) 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 06Also 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 26toRW: 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 26to0F 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 6I'll stop slacking :) Looking forward a time, when we would be able to write extensions for classes, if it ever comes. Edited December 10, 2012 by Drakous79 Link to comment Share on other sites More sharing options...
BlackAlpha Posted December 10, 2012 Share Posted December 10, 2012 I've now also included the reduced size of storms in the next Warspace version. :thumbsup: Link to comment Share on other sites More sharing options...
Drakous79 Posted December 10, 2012 Author Share Posted December 10, 2012 Cheers :) Link to comment Share on other sites More sharing options...
Recommended Posts