 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
rafnmike How do I cheat?
Reputation: 0
Joined: 11 Feb 2023 Posts: 2
|
Posted: Sat Feb 11, 2023 10:28 pm Post subject: [Help] drift score multiplier for racing game |
|
|
Hello, pardon my ignorance as I am fairly new to cheat engine and scripting as a whole. I am trying to add a multiplier to a drift score in an old racing game, Need For Speed Underground 2. (Assuming it'll be easy because it's old, I can't figure it out lol) I can find flag values, static pointers, health, vehicle vel, money, etc. but I am still pretty inexperienced. Anyways, here is the code I have currently, attached below. I read and used a template as an idea from another post on here, but I have also tried to use movss, mov, add, fmul, and I can't seem to get it to work in any variation I add it in, even with code injection or AOB injection. I am a hands on learner, if I see how to do it, I repeat it myself over and over until it is stuck in my head, and use that knowledge for other things. But I have no found any type of information for multipliers that seems to work.
When "find out what writes to this address" I get 2 options. The first one appears once I start drifting and achieve any type of score, the second one appears once the score is set and stored. I chose to use the address that first appears, when getting the score as I drift.
The current code immediately crashes the game when activating. I can change the score manually in the cheat table, but I want to add a multiplier to it, for learning purposes. Any and all tips / information will be appreciated, as well as constructive criticism.
| Description: |
|
| Filesize: |
49.71 KB |
| Viewed: |
4508 Time(s) |

|
_________________
Newbie learning to cheat! |
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4724
|
Posted: Sun Feb 12, 2023 2:02 am Post subject: |
|
|
| Code: | | fld dword ptr [SPEED2.EXE+16E9E7] | The address `SPEED2.EXE+16E9E7` is the injection point. The only thing there is code- it's certainly not a float value.
It looks like esi+24 is the address of the value you want to modify, and the value itself is already on the fpu stack. Just fmul would work.
Also, the jump from the injection point jumps to newmem. However, there isn't code at newmem: it's the float value 3.0f. Maybe you meant to use DriftMultStart instead?
| Code: | ...
newmem:
fmul dword ptr [DriftMultFloat]
code:
fstp dword ptr [esi+24]
cmp dword ptr [esi+14],01
jmp return
newmem+500:
DriftMultFloat:
dd (float)3.0
DriftMult:
jmp newmem
nop 2
return:
... |
Tip: register the symbol DriftMultFloat and you can modify it from the address list. Add a new record, address = DriftMultFloat, type = float, click+drag it onto the script's memory record (append as child memrec), right click script memory record, and set "Group config -> Hide children when deactivated"
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
ragnaroks Newbie cheater
Reputation: 1
Joined: 30 Aug 2021 Posts: 13
|
Posted: Sun Feb 12, 2023 2:06 am Post subject: |
|
|
add a label:
delete code、DriftMultFloat、DriftMultStart and modify newmem:
| Code: |
newmem:
fld dword ptr [SPEED2.exe+16E9E7]
fmul dword ptr [multiple]
fstp dword ptr [SPEED2.exe+16E9E7]
fstp dword ptr [esi+24]
cmp dword ptr [esi+14],01
jmp return
multiple:
DB 40 40 00 00
|
| Quote: |
after my post,i see the others post,and he is right
|
|
|
| Back to top |
|
 |
rafnmike How do I cheat?
Reputation: 0
Joined: 11 Feb 2023 Posts: 2
|
Posted: Sun Feb 12, 2023 9:28 pm Post subject: |
|
|
| ParkourPenguin wrote: | | Code: | | fld dword ptr [SPEED2.EXE+16E9E7] | The address `SPEED2.EXE+16E9E7` is the injection point. The only thing there is code- it's certainly not a float value.
It looks like esi+24 is the address of the value you want to modify, and the value itself is already on the fpu stack. Just fmul would work.
Also, the jump from the injection point jumps to newmem. However, there isn't code at newmem: it's the float value 3.0f. Maybe you meant to use DriftMultStart instead?
| Code: | ...
newmem:
fmul dword ptr [DriftMultFloat]
code:
fstp dword ptr [esi+24]
cmp dword ptr [esi+14],01
jmp return
newmem+500:
DriftMultFloat:
dd (float)3.0
DriftMult:
jmp newmem
nop 2
return:
... |
Tip: register the symbol DriftMultFloat and you can modify it from the address list. Add a new record, address = DriftMultFloat, type = float, click+drag it onto the script's memory record (append as child memrec), right click script memory record, and set "Group config -> Hide children when deactivated" |
Thanks for the information! I couldn't make it work with what you've provided, again it's more than likely error with me. I will do more research on cheat engine and how it works, and come back to this a little later. Might not be informed enough to try Thank you for responding with great detail, I appreciate it!
_________________
Newbie learning to cheat! |
|
| 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
|
|