ColdKeyboard How do I cheat? Reputation: 0
Joined: 24 Aug 2011 Posts: 3
|
Posted: Sat Oct 04, 2014 2:12 pm Post subject: Wasteland 2 - Don't use AP and don't use bullets |
|
|
Hello everyone,
I'm working on a trainer for Wasteland 2. I tried to find pointers, fixed addresses etc. but all of this failed.
Then, I found out that there are 7-8 instructions that decrease action points specifically, and ever and each one looks exactly like mov [eax+000000AC],ecx.
So when I do a search, and replace every array of bytes in the result window from 89 88 AC 00 00 00 to 90 90 90 90 90 90 i get the desired result.
I also noticed that from 7-8 instruction, all do the same thing but one decreases action points after moving, another after shooting, after reloading, after unjamming weapon and etc.
My problem is that I can't find a way to replace every occurrence of the 89 88 AC 00 00 00 array of bytes by script. Is there a way to do this all at once or even array of bytes by array of bytes?
I tried using something like this but I failed miserably :\
Code: |
[ENABLE]
aobscan(ap0, 8B 45 08 89 88 AC 00 00 00)
aobscan(ap1, 8B 4D 18 89 88 AC 00 00 00)
aobscan(ap2, 2B CA 89 88 AC 00 00 00)
aobscan(ap3, 41 89 88 AC 00 00 00)
label(_ap0)
registersymbol(_ap0)
label(_ap1)
registersymbol(_ap1)
label(_ap2)
registersymbol(_ap2)
label(_ap3)
registersymbol(_ap3)
ap0:
_ap0:
db 8B 45 08 90 90 90 90 90 90
ap1:
_ap1:
db 8B 4D 18 90 90 90 90 90 90
ap2:
_ap2:
db 2B CA 90 90 90 90 90 90
ap3:
_ap3:
db 41 90 90 90 90 90 90
[DISABLE]
{
ap0:
_ap0:
db 8B 45 08 90 90 90 90 90 90
ap1:
_ap1:
db 8B 4D 18 89 88 AC 00 00 00
ap2:
_ap2:
db 2B CA 89 88 AC 00 00 00
ap3:
_ap3:
db 41 89 88 AC 00 00 00
unregistersymbol(_ap0)
unregistersymbol(_ap1)
unregistersymbol(_ap2)
unregistersymbol(_ap3)
}
|
I have found out what instruction decreases bullets (mov [eax+18],ecx) so I did a search for this command (with aobscan()) and few commands above it, replaced the command with nops and it works like a charm. But the problem still remains when I have 7-8 same arrays of bytes occurring at different addresses :\
My code for infinite bullets looks something like this
Code: |
[ENABLE]
aobscan(nobullets, 74 0C 8B 45 08 8B 40 34 8B 4D 0C 89 48 18)
label(_nobullets)
registersymbol(_nobullets)
nobullets:
_nobullets:
db 74 0C 8B 45 08 8B 40 34 8B 4D 0C 90 90 90
[DISABLE]
_nobullets:
db 74 0C 8B 45 08 8B 40 34 8B 4D 0C 89 48 18
unregistersymbol(_nobullets)
|
And it works for me perfectly.
p.s. This is my first time using assembly scripting in cheat engine :\
|
|