eld10 Posted October 28, 2013 Share Posted October 28, 2013 Wow. Now THAT is a tutorial. Thank you so much, Amineri! I'm going to go root around inside the upk now. :D Link to comment Share on other sites More sharing options...
Bertilsson Posted October 28, 2013 Author Share Posted October 28, 2013 Didn't know about that requirement... But it looks very simple and straightforward to make the perk editor take care of it automagically. Will most likely take care of it during the coming weekend. Link to comment Share on other sites More sharing options...
eld10 Posted October 28, 2013 Share Posted October 28, 2013 (edited) Thanks to your tutorial, Amineri, my Long War mod now works as intended! Here's my summary of the steps I took to edit the class-defining perks: ----------1. Run HxD or any other hex editor.----------2. Open up XComStrategyGame.upk within:[\Steam\steamapps\common\XCom-Enemy-Unknown\XComGame\CookedPCConsole]----------3. Search for the hex string [0A DC 00 24 03]. This is the sniper assignment string.----------4. Now search for other hex blocks near it that look like this:0A xx xx 24 yy0A = case statementxx xx = some jump offset (ignore this)24 = byte-constantyy = the perk number associated with this particular classe.g., the Sniper class is defined by perk 03 (squad sight), so to locate the hex block for the class definition, search for 0A xx xx 24 03. By changing 03 into some other value, we can make a different perk be the defining perk for snipers.----------5. Now we want to use Toolboks (thanks, bokauk!) to import these specific changes into the game file. To do this, create a text file with blocks of hex changes and then use Toolboks to install these blocks. A hex change block looks something like this:UPK_FILE=XComStrategyGame.upk{The defining perk for Assault class is: 22 Close & Personal; originally 06}OFFSET=3906428[MODDED_HEX]22The file to mod is identified: [uPK_FILE=XComStrategyGame.upk]A comment on the change follows.The offset of the byte to mod is defined:Switch HxD to view Offset Base in Dec, then click on the byte we want to change to see its offset value in the bottom left corner of HxD.Finally, the value to place into the byte of interest:In this case, I want perk 22 (Close and Personal) to be the defining perk of the Assault class; this byte was 06 (Run and Gun) in the original Long War mod, so we replace byte 06 (found in the given offset position) with 22.----------6. Once the text file with all the entries has been created, we can use Toolboks to import it as a custom mod. Done! I've tested this in a game and confirmed that my soldiers promote to the correct classes and gain the correct weapon proficiencies. :D Didn't know about that requirement... But it looks very simple and straightforward to make the perk editor take care of it automagically. Will most likely take care of it during the coming weekend. That would be pretty neat! Edited October 28, 2013 by eld10 Link to comment Share on other sites More sharing options...
Bertilsson Posted October 28, 2013 Author Share Posted October 28, 2013 (edited) Am I the only one always ending up taking identical perk-paths for all soldiers of each class? While I am a big fan of options, I am not a big fan of keeping track of individual soldier details which is why I make identical soldiers of each class. So for me personally it would actually be better if there were only one perk per rank and class. That way I would never have to bother selecting perks, I would just press the abilities button to select class and then afterwards all perks would be auto selected for me. If anyone has been thinking in a similar way (or is just good at selecting sensible paths for each class) please feel free to share link from the tool to pre-made decisions for all classes and I will add them to the "inspirational menu". Edited October 28, 2013 by Bertilsson Link to comment Share on other sites More sharing options...
eld10 Posted October 28, 2013 Share Posted October 28, 2013 (edited) Am I the only one always ending up taking identical perk-paths for all soldiers of each class? I'm kinda like you in that I have a few class paths planned out and I stick religiously to those. This was the original reason I began altering the Long War perk trees - so that I could just go straight down a line of perks rather than have to keep checking my Excel spreadsheet. Of course, once I got started with your builder I found myself tweaking and then completely changing the trees to better fit my ideas of how to play... and now I have 16 classes very different from the Long War originals. I haven't had a chance to play test them properly yet and so can't be sure that they aren't over- or under-powered, but as a thought exercise they seem like they would work fairly well in heterogenous groups, and different mission types would seem best attempted by different class combinations. FWIW, here're my 16 classes: http://hem.bredband.net/bertrich/XCOM/ExtendedPerkGenv097.htm?seed=00,03,23,00,10,0f,5f,08,05,0b,21,1f,0a,32,23,05,2f,5b,02,11,20,01,22,0a,36,0e,0d,17,00,1b,12,00,15,01,1d,2f,2f,5b,16,05,21,20,14,10,2b,11,5d,11,25,5e,5e,2b,19,24,19,36,00,06,22,00,20,23,05,06,32,1f,28,27,2f,31,20,23,21,05,11,29,2b,29,0a,01,1a,24,36,0e,00,30,18,00,35,13,2d,67,1f,2c,35,11,38,5c,25,08,23,38,52,2b,21,34,05,22,37,31,5e,0d,00,45,00,46,00,47,48,00,49,00,4a,00 And here are the changes that have to be made to XComStrategyGame.upk: MOD_NAME=XCOM New Class Defining PerksAUTHOR=meDESCRIPTION=New class-defining perks for Toolboks by bokauk UPK_FILE=XComStrategyGame.upk{The defining perk for Assault class is: 22 Close & Personal; originally 06}OFFSET=3906428[MODDED_HEX]22 UPK_FILE=XComStrategyGame.upk{The defining perk for Infantry class is: 06 Run & Gun; originally 1a}OFFSET=3906474[MODDED_HEX]06 UPK_FILE=XComStrategyGame.upk{The defining perk for Gunner class is: 1b Extra Conditioning; originally 15}OFFSET=3906519[MODDED_HEX]1b For the Sniper/Scout, the perk1 and perk2 choices are meant to go with Squad Sight. The other groups are split down the middle, with the 2 leftmost paths for one sub-class and the 2 right-side trees for a second sub-class. To explicate, my 16 classes are as follows: Assault 3:The Berserker is an alpha-strike soldier with little defence meant to eliminate a cluster of enemies in one breath. Assault 2:The Ironwall is a defensive unit that prevents the enemy from advancing towards your rear line. Assault 1:The Flanker can hit fairly hard if allowed to circle around and expose a target. Assault 0:The Rifleman is made to exchange medium-range fire with entrenched foes. Heavy 3:The Reaction Tank is primarily an overwatch machine but also has a single rocket to fall back on for one big attack. Heavy 2:The Rocketeer has limited combat ability but can deliver powerful explosive payloads from long range, Heavy 1:The Heavy Gunner is a damage dealer with some survivability. Heavy 0:The Suppression Tank is meant to lock down a tight group of enemies. Sniper 3:The Scout's role is to locate and pin down enemy forces. Sniper 2: (Squad Sight rather than Lightning Reflexes)The Gunslinger stays in the thick of the action and uses a pistol as primary weapon; the sniper rifle is an auxilliary. Sniper 1:The High Ground Sniper is meant to multi-kill from the edges of the battlefield. Sniper 0:The Mobile Sniper travels a few tiles behind the rest of the team and provides fire support. Support 3:The Engineer is primarily useful only for capturing aliens and supporting SHIVs. Support 2:The Grenadier is good for destroying enemy cover and Flushing targets from hiding. Support 1:The Guardian is a proactive medic, with smoke, suppression, and holo-targeting as primary tools. Support 0:The Healer is a reactive medic who is able to quickly and safely dash to the side of an injured team member. I should also note that I have made several major changes to my weapons that should greatly affect how these 12 classes play. Notably:Laser weapons have +15 Aim, -15 Crit chance, unlimited ammo. Plasma weapons have -10 Aim, +15 Crit chance, less ammo. The AR, heavy cannon, and sniper rifle (and alien analogues) do splash damage. LMGs do splash damage.While some classes prefer plasma weapons, others do better sticking with lasers. Dunno at the moment if these changes are too drastic. Will need to play more to find out. Edited October 28, 2013 by eld10 Link to comment Share on other sites More sharing options...
Bertilsson Posted October 28, 2013 Author Share Posted October 28, 2013 (edited) Thank you!I will definitively play my next game with those classes (or a subset of them) :smile: Edit: Have you got any name for this perk setup? 16 classes something by Eld10? Edited October 28, 2013 by Bertilsson Link to comment Share on other sites More sharing options...
eld10 Posted October 29, 2013 Share Posted October 29, 2013 Hm... I actually don't have a name for this set-up. Maybe Eld's Long War 16? Or Eld's Specialised 16? Here's the Excel file I used to plan out stuff. The Game Guide tab is what I consult when picking soldiers for a mission. The class names all have pop-up comments when you hover the cursor over them, and you can click on any class in the top half to jump to the relevant entry in the bottom half.http://www.mediafire.com/view/ftglqxif6f4haa6/my_longwar_classes.xlsxMind you, all these are very much works in progress, so please don't bite me if your game becomes too easy or too hard, your computer gains sentience, or your dog runs away with the neighbour's cat. >_> Link to comment Share on other sites More sharing options...
Bertilsson Posted October 30, 2013 Author Share Posted October 30, 2013 I have now updated the Long War version of the tool so that it automatically assigns correct case values for identifying sub-classes based on squaddie rank perks. I have also added "Eld's 16 virtual sub-classes 1.0 for Long War mod" and "Long War mod v2.12 Beta4 by JohnnyLump" to the inspirational menu. For future reference these are the XComStrategyGame.upk bytes that identifies each sub class:3906221 + 146 = 3906367 Sniper3906221 + 192 = 3906413 scout3906221 + 207 = 3906428 Assault3906221 + 253 = 3906474 Infantry3906221 + 298 = 3906519 Gunner3906221 + 344 = 3906565 Rocketeer3906221 + 400 = 3906621 Medic3906221 + 408 = 3906629 Engineer I have not tested to actually use a mod generated with the above updates, but I never ever make any mistakes so it should be absolutely safe to use :sleep: Link to comment Share on other sites More sharing options...
eld10 Posted November 2, 2013 Share Posted November 2, 2013 Nice work, man! And thank for giving us the sub-class bytes. :D I have not tested to actually use a mod generated with the above updates, but I never ever make any mistakes so it should be absolutely safe to use :sleep: Hehe! Link to comment Share on other sites More sharing options...
eld10 Posted November 6, 2013 Share Posted November 6, 2013 Hi, JL and Amineri, I'm not 100% sure, but might it be that the squad selection screen uses a separate reference to soldier class than the other screens do? In the attached screenshot, my soldiers are listed as class x/y rather than class x or class y alone.(I'm asking this here because I suspect Bertilsson will want to make further changes to his web tool once we know which hex values we need to edit.) Link to comment Share on other sites More sharing options...
Recommended Posts