 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
ChainRule Cheater
Reputation: 1
Joined: 21 Jan 2008 Posts: 40
|
Posted: Thu Dec 31, 2015 3:39 pm Post subject: One Piece Pirate Warriors 3 Help [Learning] |
|
|
Hey guys, I am cheating (obviously) and have encountered some problems. I have found the address to store the Kill Count and have discovered that changing that value won't do anything as it is simply a copy of the value that is used to display the UI instead of the actual value. Digging deeper, it would appear that it is calculated and then stored in EAX. I found the instruction that basically moves it into the UI system:
oppw3.exe+FBCAB - 89 43 4C - mov [ebx+4C],eax
Changing the value of EAX to say FFF will make the UI update (one by one) animating to the FFF value. What I'm trying to do next is to find who writes the result to EAX. How can I do that? Is that even the right path to find the true value?
Thanks! |
|
| Back to top |
|
 |
Gniarf Grandmaster Cheater Supreme
Reputation: 43
Joined: 12 Mar 2012 Posts: 1285
|
Posted: Thu Dec 31, 2015 8:11 pm Post subject: Re: One Piece Pirate Warriors 3 Help [Learning] |
|
|
| ChainRule wrote: | | Changing the value of EAX to say FFF will make the UI update (one by one) animating to the FFF value. What I'm trying to do next is to find who writes the result to EAX. How can I do that? | Basically you look at the instructions above the "mov [ebx+4C],eax" until you find something that mentions eax. This is called backtracing and it is usually painful so we avoid it whenever we can.
| ChainRule wrote: | | Is that even the right path to find the true value? | Probably not, backtracing from display value to real value is a last resort when you absolutely can't find the real value through scanning.
I'd recommend scanning for unknown initial value with type=all, kill a mod, filter with increased by 1,etc... Keep in mind that you may have a different counter for each enemy type. Or if the kill counter is reset when changing levels/maps, then maybe the game counts the number of mobs remaining on the map.
If that fails, maybe the game uses encryption (unlikely) in which case you should scan with type=4bytes, unknown initial value, and only filter with the changed or unchanged options. _________________
DO NOT PM me if you want help on making/fixing/using a hack. |
|
| Back to top |
|
 |
ChainRule Cheater
Reputation: 1
Joined: 21 Jan 2008 Posts: 40
|
Posted: Thu Dec 31, 2015 9:41 pm Post subject: |
|
|
@Gniarf after doing what you suggested, I have found a weird value that's always being increased the same amount as the actual kill count but it is much larger. Looking at what writes to the address, I found the following:
oppw3.exe+203089 - 8B 84 1E C07C0200 - mov eax,[esi+ebx+00027CC0]
oppw3.exe+203090 - 40 - inc eax
oppw3.exe+203091 - 3D A0860100 - cmp eax,000186A0
oppw3.exe+203096 - 0F43 44 24 18 - cmovae eax,[esp+18]
oppw3.exe+20309B - 57 - push edi
oppw3.exe+20309C - 8D 8B D86B0200 - lea ecx,[ebx+00026BD8]
oppw3.exe+2030A2 - 89 84 1E C07C0200 - mov [esi+ebx+00027CC0],eax
The above line mov [esi+ebx+00027CC0],eax essentially copies eax into the value I see and looking above, it is loading it and increasing it by one and then do some compare and move it back in. If I want to make this value large instead of inc eax, what should I do here?
I tried modifying the value at eax but it doesn't seem to do anything. I've tried to change it to 99,999 which is one short of 000186A0 (100,000) and when I see my increase kill count in game, nothing special happened either. I am a bit lost.
Thanks! |
|
| Back to top |
|
 |
Gniarf Grandmaster Cheater Supreme
Reputation: 43
Joined: 12 Mar 2012 Posts: 1285
|
Posted: Fri Jan 01, 2016 12:19 am Post subject: |
|
|
| ChainRule wrote: | | If I want to make this value large instead of inc eax, what should I do here? | Quick 'n' dirty way to overwrite with a large integer: overwrite with esp. ie: replace mov [esi+ebx+00027CC0],eax with mov [esi+ebx+00027CC0],esp .
| ChainRule wrote: | | I tried modifying the value at eax but it doesn't seem to do anything. I've tried to change it to 99,999 which is one short of 000186A0 (100,000) and when I see my increase kill count in game, nothing special happened either. I am a bit lost. | First freeze the value or manually set it to a different value through CE's main window. If and only if it has a confirmed effect on killcount ingame, then start messing with the assembly code. Otherwise you haven't found the real value yet and you're just wasting your time.
(Note: you might need to kill one thing for the game to refresh the killcount display)
EDIT 1:Looking at videos and the developper, it looks like this game is a reuse of the old dynasty warrior/samurai warrior/warrior orochi engine, so I took out an old samurai warrior and found out a variable that was capped at 99 999 which is my character's xp. That's probably what you found. (If you set this to 99 999 you level up at every kill).
EDIT 2: as for ko count, it is present in 5 copies (all 4 byte integers holding the value you see onscreen), 3 of them are increasing independently, and the remaining 2 are just copies of one of the first 3.
Forgive the dumb question but what is supposed to change when you increase killcount? There is the endgame rating, anything else? _________________
DO NOT PM me if you want help on making/fixing/using a hack. |
|
| Back to top |
|
 |
ChainRule Cheater
Reputation: 1
Joined: 21 Jan 2008 Posts: 40
|
Posted: Fri Jan 01, 2016 2:19 am Post subject: |
|
|
Thanks for digging into the game! Basically there is a kill count, and a special move kill count they call "!". I simply want to make it so that I can change these values easily so that I can get a "S" score. I still need to figure out how to do that for the time variable as well.
I did find multiple copies of the variable that holds the kill count value. But changing all of them and go back to the game would result in them reverted to their original value. What's causing this?
EDIT 1: How did you find out they are increasing independently? |
|
| Back to top |
|
 |
Gniarf Grandmaster Cheater Supreme
Reputation: 43
Joined: 12 Mar 2012 Posts: 1285
|
Posted: Fri Jan 01, 2016 2:51 am Post subject: |
|
|
| ChainRule wrote: | Thanks for digging into the game! Basically there is a kill count, and a special move kill count they call "!". I simply want to make it so that I can change these values easily so that I can get a "S" score. I still need to figure out how to do that for the time variable as well.
I did find multiple copies of the variable that holds the kill count value. But changing all of them and go back to the game would result in them reverted to their original value. What's causing this? | This company doesn't usually use fancy tricks, so encryption is very unlikely, but the game could store for example the global killcount and the regular killcount, and the special killcount would be calculated on the fly from the other 2 (or global could be deduced from regular+special, you get the picture). That would explain the reverting.
If that doesn't work, try scanning for float or doubles just in case, but I don't see any reason why they would suddenly decide to store this on anything other than an integer.
| ChainRule wrote: | | EDIT 1: How did you find out they are increasing independently? | When you have 5 copies of your score and want to know which one is the true one, you give each a different value, kill something ingame, and everything should become true_value+1.
In the case of samurai warrior I set them to 50,60,70,80,90 and at the end I got 51,61,71,71,71, which means that the first 2 are increasing independently instead of copying the 71. _________________
DO NOT PM me if you want help on making/fixing/using a hack. |
|
| Back to top |
|
 |
ChainRule Cheater
Reputation: 1
Joined: 21 Jan 2008 Posts: 40
|
Posted: Fri Jan 01, 2016 4:16 pm Post subject: |
|
|
| So the KO count can be modified like the way you described but the special KO count cannot. I am guessing this value is calculated from another value? What should I do here? |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|