| View previous topic :: View next topic |
| Author |
Message |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Wed Mar 09, 2022 12:40 pm Post subject: |
|
|
look two lines further down until after the get_magic call. I Just pressed Q to auto battle so I never saw the calls outside of end of battle.
GameAssembly.dll+3D572F: E8 EC A8 15 00 - call Last.Data.User.OwnedCharacterData.get_MagicLearningValue
// ---------- INJECTING HERE ----------
GameAssembly.dll+3D5734: 8B 56 20 - mov edx,[rsi+20]
// ---------- DONE INJECTING ----------
GameAssembly.dll+3D5737: 03 D0 - add edx,eax
GameAssembly.dll+3D5739: 45 33 C0 - xor r8d,r8d
GameAssembly.dll+3D573C: 48 8B CB - mov rcx,rbx
GameAssembly.dll+3D573F: E8 2C AB 15 00 - call Last.Data.User.OwnedCharacterData.set_MagicLearningValue
|
|
| Back to top |
|
 |
_TheDavil Newbie cheater
Reputation: 0
Joined: 14 Jan 2022 Posts: 11
|
Posted: Wed Mar 09, 2022 6:29 pm Post subject: |
|
|
So what should I do mov rsi+20,999? Or is there a better way to do that?
*edit* yep i just add a mov [rsi+20],(whatever number) in front of the other spot and it did in fact increase the value displayed but it didn't actually add the points, so it must be happening somewhere else. I really need to get better at assembly...
Thanks for the help!
|
|
| Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Thu Mar 10, 2022 2:42 am Post subject: |
|
|
Use #999 for integers instead of hex.
How do you know what the AP is? I didn't see it in the menu anywhere.
It's hard to figure things out when you have no clue what it is! I'm out of town for a week so won't be able to look into it further but don't mind checking when I get back. Since it did work in the get function for EXP I'm sure it would work the same way for AP and it likely propagates to the set function if you trace it and see what happens.
If you are looking for fun, figure out what sets [rsi+20] and change it at that source the same way we experimented here.
Easiest solution is set it in the get function.
Better solution is see if it belongs in the set function.
Best solution is to figure out the source of [rsi+20] and edit that.
There are other solutions too, so don't feel constrained to these ideas.
|
|
| Back to top |
|
 |
_TheDavil Newbie cheater
Reputation: 0
Joined: 14 Jan 2022 Posts: 11
|
Posted: Thu Mar 10, 2022 10:48 am Post subject: |
|
|
| Yea I'm going to try doing a break and trace on the rsi+20 spot and see what I can figure out from there, have a good trip.
|
|
| Back to top |
|
 |
_TheDavil Newbie cheater
Reputation: 0
Joined: 14 Jan 2022 Posts: 11
|
Posted: Sat Mar 19, 2022 11:20 am Post subject: |
|
|
| Yep still haven't figured it out, hate how they used a common engine for all these games.
|
|
| Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sun Mar 20, 2022 12:51 am Post subject: |
|
|
This one is indeed a big mess.
If you trace this function to the end you will find that there is a battle results function. This function steps through each enemy killed and adds to the EXP total the EXP of each enemy, the GIL of each enemy, the items drops, something called ABP and likely AP (but i didnt see it there explicitly). I was able to edit everything on a monster by monster basis and the end results after the accumulation.
It worked for EXP and GIL but couldn't figure out which of the 67 values attributed to a monster were AP. Didn't want to edit each value, one by one, until AP changed (many of the values are 0 and 1). You can edit the function to make it loop through the list multiple times and it will add the normal values to each (including the random drops) (instead of counting 3 kills it gives you 9, for example, so 3x the exp/gil/item drop chances).
If you want to play with that structure, you will need to look into expeditionMonsters.
Even if you find the AP value, the game doesn't allow you to earn more than 2 AP a battle at the point in the game save you sent me to. For example, even if you fight a mob that gives 1 AP, and duplicate it 5 times, it caps at 2 AP.
This explains why the first few edits we tried appeared to work, but didn't. The game, despite recognizing that 999 AP was earned, capped it. Same thing, if you dig elsewhere, you will see there is a before battle ability list and a post battle ability list. It tracks your AP progress and limits them there too. Even if you edit those values to 999 and 1001 to simulate earning 2 AP at a high number it doesn't work. So I suspect that there are at least two different checks that ensure AP isn't getting edited.
To complicate matters even further, I don't think the value it stores AP with correlates 1-to-1. It takes 128 / 0x80 as the base value for unlearned skills. I suspect that when the skill is learned, this changes to another value. I didn't trace the function calls on a turn when a skill was learned to confirm this, but it would be a good idea. If you can confirm that it sets 0x80 to 0xFF or something when it is considered learned, then you could skip to that value and simply learn every spell in one turn.
At this point I gave up. Too many consideration that will take time for a game I'm not playing. I wish you luck in digging further!
|
|
| Back to top |
|
 |
_TheDavil Newbie cheater
Reputation: 0
Joined: 14 Jan 2022 Posts: 11
|
Posted: Sun Mar 20, 2022 6:51 am Post subject: |
|
|
| Lol yea I found much of the same and pretty much came to the same conclusion. I mostly was doing this as just a project to see if I could make it work. There are paid tables out there from cheat happens so it's supposedly possible, I'm just not going to pay for it to figure out what they did.
|
|
| Back to top |
|
 |
|