View previous topic :: View next topic |
Author |
Message |
uchiwaobito How do I cheat? Reputation: 0
Joined: 20 Sep 2016 Posts: 5
|
Posted: Tue Sep 20, 2016 6:58 am Post subject: [Help]How to Freeze a Values no longer pointed |
|
|
In my table I have a static pointer on selected character's health. So when I freeze the value it freezes the health of the selected character but only when he's selected.
What I want is to keep frozen all the characters health I selected and froze their health
Last edited by uchiwaobito on Tue Sep 20, 2016 4:27 pm; edited 1 time in total |
|
Back to top |
|
|
kuntz Cheater Reputation: 0
Joined: 29 Aug 2016 Posts: 44 Location: Canada
|
Posted: Tue Sep 20, 2016 1:23 pm Post subject: |
|
|
You need to find the correct memory address for the player's health. What you have found is just the address for the Font/Text portion of the game code, not the actual players health.
|
|
Back to top |
|
|
uchiwaobito How do I cheat? Reputation: 0
Joined: 20 Sep 2016 Posts: 5
|
Posted: Tue Sep 20, 2016 4:17 pm Post subject: |
|
|
kuntz wrote: | You need to find the correct memory address for the player's health. What you have found is just the address for the Font/Text portion of the game code, not the actual players health. |
That's not actually my problem because:
1- My problem is dealing with characters that each player recruit so you can have a bunch of characters in your army. They die and you recruit other characters so adding each character address to the table each time you recruit would be insane, knowing that those addresses will become useless if you get rid of the pointed character and you will have to do this for every single party
2- The pointer in the question is pointing the actual player's health otherwise I wouldn't even be able to change the health of selected character with it.
I found it using dissect data/structure on the address for the Font/Text showing the health( Found the pointer on the character data and by adding an offset I get in the right address).
3- Freezing the health is working but only on the selected character
|
|
Back to top |
|
|
kuntz Cheater Reputation: 0
Joined: 29 Aug 2016 Posts: 44 Location: Canada
|
Posted: Tue Sep 20, 2016 4:47 pm Post subject: |
|
|
Ah well then what you want to do is find the code that is subtracting the players' health and NOP it out. If it is also the code for other things (like enemy health), then instead of NOPing you'll need a script that can determine the difference between something you want to have infinite health, and what you want to take damage normally. You can go further and have 1-shot kill on enemies as well, for example.
|
|
Back to top |
|
|
uchiwaobito How do I cheat? Reputation: 0
Joined: 20 Sep 2016 Posts: 5
|
Posted: Tue Sep 20, 2016 5:34 pm Post subject: |
|
|
I already wrote a script for this and did a condition so that will affect only my characters but this is not really what I want to do since this affect the hole of my characters.
It would be great if this can only apply for the characters I select and chose to freeze
|
|
Back to top |
|
|
kuntz Cheater Reputation: 0
Joined: 29 Aug 2016 Posts: 44 Location: Canada
|
Posted: Tue Sep 20, 2016 5:48 pm Post subject: |
|
|
Hmm, well what you can try to do is modify your script so that when health is being decreased, check for a specific bit to be set in the player structure. If the bit is set, make the player invincible, otherwise the player takes damage as usual. Now find a spare bit inside the player structure, there might be padding, or some other variable that isn't used. Set up a hotkey to toggle this specific bit in the currently selected player.
|
|
Back to top |
|
|
panraven Grandmaster Cheater Reputation: 55
Joined: 01 Oct 2008 Posts: 942
|
Posted: Tue Sep 20, 2016 7:40 pm Post subject: |
|
|
A quick idea.
Try make a lua timer function,
1.the OnTimer function check a list of address,
1.1 if each addr is readable and somehow checked it is a valid address (eg. if it is a float value health address, check with float value between 0.01 and 99999 etc),
1.2.do something on individual address, (eg.check if its float value below 50 then add 100 float to the address),
1.3.otherwise remove this addr from the address list.
1.4.The more you known the object struct at the related address, more possibility.
2.Now when you pointed to the unit,
2.1.you press a hotkey to add the address into the above mentioned address list.
2.2.Then when OnTimer run, the newly add the addr together with previous collected addresses will check if still valid (ref 1.1),
2.3.and if so process the above desired action(ref 1.2) else
2.4.removed (ref 1.3).
btw, if you have an working aa script about the health/unit address, would you like to post here?
bye~
_________________
- Retarded. |
|
Back to top |
|
|
uchiwaobito How do I cheat? Reputation: 0
Joined: 20 Sep 2016 Posts: 5
|
Posted: Wed Sep 21, 2016 5:45 am Post subject: |
|
|
Thanks for the idea, I will give it a try
This is the aa script:
Quote: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov eax,[EMPIRESX.EXE+2A1808]
mov ecx,[eax+40]
mov eax,[ecx+04]
cmp [esi+0C],eax
// I compare the team of the character being hitted in "esi+0C" with my team in "eax"
jne originalcode
fst [esi+30]
fcomp qword ptr [empiresx.exe+1425F8]
jmp exit
originalcode:
// This is what calculate the decreased health of a character.
fsub dword ptr [esi+30]
fcomp qword ptr [empiresx.exe+1425F8]
exit:
jmp returnhere
"empiresx.exe"+AEA4B:
jmp newmem
nop
nop
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"empiresx.exe"+AEA4B:
fsub dword ptr [esi+30]
fcomp qword ptr [empiresx.exe+1425F8]
//Alt: db D8 66 30 DC 1D F8 25 54 00 |
|
|
Back to top |
|
|
|