View previous topic :: View next topic |
Author |
Message |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sun Dec 18, 2022 4:34 pm Post subject: Dmg reflect? |
|
|
Can i change with CE the ingoing and outgoing Packets?
Example:
Player 100 Life
Boss 100 Life
Boss attack Player, 4 Dmg
Player Life 96
Can i change to followed?
Boss attack Player, Player become 0 Dmg, Boss become 4 Dmg
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sun Dec 18, 2022 5:32 pm Post subject: |
|
|
Yes. There may be different ways to go about it.
Depending on the game and how the data is being handled, you may need multiple injection points.
You will need at least one injection point that handles health (or damage). This injection point can act as a filter and a check. The filter will differentiate player from boss, and the check will determine if player is taking damage (or boss is dealing damage), and if so, set a flag to redirect that damage to boss (and possibly a way to store the damage amount). If separate instructions exist for handling player health and boss health, then you may need to have multiple injection points for this.
You may also need an injection point to determine who is attacking (or when), so that you can determine where the damage is coming from (so that you can tell the program where the damage should be redirected). This is assuming that multiple entities can receive damage besides player and boss.
If you want to simplify things, you can just create a script that deals damage to all enemies whenever the player is supposed to receive damage (while cancelling out player damage). You might still want to include a check or a way to store the damage amount so that it is accurate. Or, simply assign a fixed value, or even a random value for damage.
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sun Dec 18, 2022 8:55 pm Post subject: |
|
|
My question is how to should work a Script with this? How should become the Boss the dmg? I try it on the Tutorial Game. But the Boss write to the Subtract Address from my player to reduce HP
sub [rax+60],edx <- Reduce HP on writing to this Address(Attacks etc.)
Yes, i can change to
add [rax+60],5
But i have then only unlimited life.
How should this work with random Addresses of Enemys? If its only 1 Boss, then its easy to become the Address from him. But with random enemys idk which Address i should take for the Script
Can you give me a example Code?
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Fri Jan 06, 2023 10:15 pm Post subject: |
|
|
So if anyone can help me. I have the Dmg Adress from the Boss. I have a Script, this change the Boss dmg to Heal, so i become not -4 but +4 HP. But this is not my Problem
My problem is the outgoing Dmg from me to the Boss, if the Boss attack me.
|
|
Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sat Jan 07, 2023 12:10 am Post subject: |
|
|
You need to figure out who is doing the damage. Then decrement their health instead of your own. Could be as simple as changing the player entity pointer to the boss entity pointer if you find the right values in the current function.
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sat Jan 07, 2023 11:38 am Post subject: |
|
|
cooleko wrote: | You need to figure out who is doing the damage. Then decrement their health instead of your own. Could be as simple as changing the player entity pointer to the boss entity pointer if you find the right values in the current function. |
Yes, this is a good method for a Player versus Boss Method. But it should work to all Monsters. Every Monster has a another Adress, so its useless to search the Boss Health, they are over 5000 Monsters in the game. And i have no time to create a Script for everyone monster
|
|
Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sat Jan 07, 2023 4:28 pm Post subject: |
|
|
You have to figure that part out for yourself. Somewhere the game knows who is attacking. Then calculates the damage, identifies the victim's hp and decreases it. If that function contains both the attacking entity and defending entity's structures (which it should since it is determining how much damage is done by the attack which likely needs stats from both entities), all you have to do is swap the attacking entities address for yours. Then they always attack themselves.
You first have to find your HP, find the function that decrements it on attack, and trace that function to see where the attack damage is calculated.
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sat Jan 07, 2023 5:53 pm Post subject: |
|
|
cooleko wrote: | You have to figure that part out for yourself. Somewhere the game knows who is attacking. Then calculates the damage, identifies the victim's hp and decreases it. If that function contains both the attacking entity and defending entity's structures (which it should since it is determining how much damage is done by the attack which likely needs stats from both entities), all you have to do is swap the attacking entities address for yours. Then they always attack themselves.
You first have to find your HP, find the function that decrements it on attack, and trace that function to see where the attack damage is calculated. |
I try it on the Tutorial Game.
sub [rax+60],edx <- Reduce my Life and Boss Life
My HP Adress 0166A3A0
Boss HP Adress 0166A580
How can i change my Adress with the from the Boss?
|
|
Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sat Jan 07, 2023 6:34 pm Post subject: |
|
|
Hmm, I went to help but it looks like break and trace is gone? Breakpoints give the stack, but I was expecting a popup with all the values so I could trace the function calls and see if the projectiles had an origin to them. Since friendly fire is not part of the game I am expecting that the origin isn't recorded here so the only way to implement what you want is to 1) write a script that filters out your character and scrapes the opposition. Then when you are supposed to be damaged, run the list of entity addresses you have scraped.
You can do it with AA template for "sub [rax+60],edx"
Create a list, add the address of enemies to that list (preferably once you hit them), then anytime you are targeted rerun the code for each entity in the list you created.
I didn't look further, but there is very likely an easy way to get the enemy list without building it yourself if you look around a bit. My suggestion ^ is just the easiest to get what you want but it will only work after you have hit each enemy and added their address to the list. Then when their HP is zero you can remove their address from the list.
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sat Jan 07, 2023 7:04 pm Post subject: |
|
|
cooleko wrote: | Hmm, I went to help but it looks like break and trace is gone? Breakpoints give the stack, but I was expecting a popup with all the values so I could trace the function calls and see if the projectiles had an origin to them. Since friendly fire is not part of the game I am expecting that the origin isn't recorded here so the only way to implement what you want is to 1) write a script that filters out your character and scrapes the opposition. Then when you are supposed to be damaged, run the list of entity addresses you have scraped.
You can do it with AA template for "sub [rax+60],edx"
Create a list, add the address of enemies to that list (preferably once you hit them), then anytime you are targeted rerun the code for each entity in the list you created.
I didn't look further, but there is very likely an easy way to get the enemy list without building it yourself if you look around a bit. My suggestion ^ is just the easiest to get what you want but it will only work after you have hit each enemy and added their address to the list. Then when their HP is zero you can remove their address from the list. |
You mean in a AA template for "sub [rax+60],edx" ?
Change the [rax+60] to the enemy address over Auto Assemble?
So "sub 0166A580,edx" ?
|
|
Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sat Jan 07, 2023 10:03 pm Post subject: |
|
|
That would be:
Code: | mov [rax], 0166a580
sub [rax+60], edx
|
But you really want to be more advanced than that. Do you know any assembly or LUA?
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sun Jan 08, 2023 11:36 am Post subject: |
|
|
cooleko wrote: | That would be:
Code: | mov [rax], 0166a580
sub [rax+60], edx
|
But you really want to be more advanced than that. Do you know any assembly or LUA? |
The Tutorial Game crash with your code. sub [rax+60], edx Reduce my Life and the Boss Life
and 0166a580 is the Boss Life.
I think i need another Address. But sub [rax+60], edx is the only Adress that shown up after a hit from Boss, if i search for "What writes to to this Address"
|
|
Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sun Jan 08, 2023 2:32 pm Post subject: |
|
|
if *580 is the boss life, then you need to subtract 60 from it before loading it into RAX. I should have caught that before suggesting it, but I was on autopilot.
Code: | mov rax, 0166a520
sub [rax+60], edx
|
|
|
Back to top |
|
 |
Einhuhn Cheater
Reputation: 0
Joined: 06 Apr 2022 Posts: 44
|
Posted: Sun Jan 08, 2023 4:45 pm Post subject: |
|
|
cooleko wrote: | if *580 is the boss life, then you need to subtract 60 from it before loading it into RAX. I should have caught that before suggesting it, but I was on autopilot.
Code: | mov rax, 0166a520
sub [rax+60], edx
|
|
How do i know what i must change on the end of a Adress to can put in a Auto Assemble Code. Or its always subtract 60 ?
|
|
Back to top |
|
 |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Sun Jan 08, 2023 7:13 pm Post subject: |
|
|
[RAX+60] is what tells us the info. RAX isn't HP, it's the base address of the entity structure where current HP is at +60. So if you want to replace RAX with the address of the HP, you either change the code to [RAX] and risk breaking anything else that subsequently expects RAX to be the base address, or you subtract the offset of the HP and plug the base address into RAX. Naturally, we want the latter so that the game doesn't crash.
|
|
Back to top |
|
 |
|