If anyone knows how to find player coordinates let me know!
(Google translation)
In the player’s structure, health is located at offset “+22” (you know this), and nearby, at offsets “+50”, “+54” and “+58” are the player’s coordinates. Data type "word".
If anyone knows how to find player coordinates let me know!
(Google translation)
In the player’s structure, health is located at offset “+22” (you know this), and nearby, at offsets “+50”, “+54” and “+58” are the player’s coordinates. Data type "word".
what you mean? i never found player structure I only searched the values to hack. also I found coordinates are 2 bytes values and seem to be level specific.
If anyone knows how to find player coordinates let me know!
(Google translation)
In the player’s structure, health is located at offset “+22” (you know this), and nearby, at offsets “+50”, “+54” and “+58” are the player’s coordinates. Data type "word".
upon further investigation only 54 and 58 work. the offset 50 for up and down doesn't work for all levels there is some weird shit happening with unaligned addresses here because offset 57 kinda worked but values were all over the place.
If anyone knows how to find player coordinates let me know!
(Google translation)
In the player’s structure, health is located at offset “+22” (you know this), and nearby, at offsets “+50”, “+54” and “+58” are the player’s coordinates. Data type "word".
what you mean? i never found player structure I only searched the values to hack. also I found coordinates are 2 bytes values and seem to be level specific.
(Google translation)
In your table in the first script you use the assembler command
The rax register contains the base address. The memory at address [rax+22] contains the player's health value. And in memory at the address [rax+50], [rax+54] and [rax+58] there are the coordinates of the player. You can easily get them from the same script or from the health value address.
I would also recommend that you specify the exact byte size of the data you write to memory to avoid possible crashes in the game.
Note the original assembler command in your "Infinite Health" script
This command reads 2 bytes from memory and writes them to the ebx register with a signed extension, since the health value in the game takes up 2 bytes.
And this is the command you use to write the health value to memory:
This command overwrites 4 bytes in memory, of which 2 bytes are not related to the health value. If these “extra” 2 bytes contained any game values, they will be reset to zero.
In the player’s structure, health is located at offset “+22” (you know this), and nearby, at offsets “+50”, “+54” and “+58” are the player’s coordinates. Data type "word".
what you mean? i never found player structure I only searched the values to hack. also I found coordinates are 2 bytes values and seem to be level specific.
(Google translation)
In your table in the first script you use the assembler command
The rax register contains the base address. The memory at address [rax+22] contains the player's health value. And in memory at the address [rax+50], [rax+54] and [rax+58] there are the coordinates of the player. You can easily get them from the same script or from the health value address.
I would also recommend that you specify the exact byte size of the data you write to memory to avoid possible crashes in the game.
Note the original assembler command in your "Infinite Health" script
This command reads 2 bytes from memory and writes them to the ebx register with a signed extension, since the health value in the game takes up 2 bytes.
And this is the command you use to write the health value to memory:
This command overwrites 4 bytes in memory, of which 2 bytes are not related to the health value. If these “extra” 2 bytes contained any game values, they will be reset to zero.
so how do you write only 2 bytes? also wtf is happening with coords offset 54? it just doesn't effect lara at all!
In the first option, when writing a value to memory, we specify the exact size in bytes. In the second option, we use the bx register, which the program itself defines as 2 bytes.
In the first option, when writing a value to memory, we specify the exact size in bytes. In the second option, we use the bx register, which the program itself defines as 2 bytes.
Thank You!
AlexS wrote:
The offset "+54" is the vertical coordinate, this is the height at which Lara is located.
This value only seems to work when on a slope cuz on flat ground its just 0 and changing it does nothing but when on a slope it suddenly has a value and changing causes lara to actually jump and move to new height and fall back down.
This value works anywhere and in any mode.
You can see this if Lara jumps into the water. When Lara is underwater, try changing the value to offset +54 and you will see that Lara's dive depth will change. On land this value also works, but unlike underwater, where Lara can be at any depth, on land Lara can only be on the surface of the earth.
Of course, you can outsmart the game and make Lara run at any height without falling.
For example, in the "Palace Midas" level, in a difficult room with lights, Lara calmly runs under the ceiling of the room past the burning lights:
Spoiler
Or here is Lara running high above the valley with dinosaurs:
Spoiler
But this requires a code change.
This value works anywhere and in any mode.
You can see this if Lara jumps into the water. When Lara is underwater, try changing the value to offset +54 and you will see that Lara's dive depth will change. On land this value also works, but unlike underwater, where Lara can be at any depth, on land Lara can only be on the surface of the earth.
Of course, you can outsmart the game and make Lara run at any height without falling.
For example, in the "Palace Midas" level, in a difficult room with lights, Lara calmly runs under the ceiling of the room past the burning lights:
Spoiler
Or here is Lara running high above the valley with dinosaurs:
Spoiler
But this requires a code change.
there is one important detail you aren't taking into account and thats the fact that you can only get this to work when you are not at the base height where the value becomes 0 because when that happens the changes don't take effect and lara is glued to the ground!!!
there is one important detail you aren't taking into account and thats the fact that you can only get this to work when you are not at the base height where the value becomes 0 because when that happens the changes don't take effect and lara is glued to the ground!!!
(Google translation)
This works at any altitude.
Here is a screenshot from the game, a level with dinosaurs, where the “zero height” is approximately the height of the destroyed bridge. Lara stands at "zero" height:
Spoiler
Lara can go below this height or go higher.
This is the screenshot I already showed, Lara running high above the destroyed bridge, well above the “zero” altitude:
Spoiler
We must remember that changing the numerical value of the vertical coordinate acts in the opposite way to what we see on the screen. In other words, if this value is reduced, Lara's height will increase, and vice versa.
P.S. I would recommend that you remove residual data structures from the tables you host to significantly reduce the size of the tables. This is a requirement of the forum administration. For example, your last table takes up almost a megabyte. After removing the structures, its size is only 60 kB.
there is one important detail you aren't taking into account and thats the fact that you can only get this to work when you are not at the base height where the value becomes 0 because when that happens the changes don't take effect and lara is glued to the ground!!!
(Google translation)
This works at any altitude.
Here is a screenshot from the game, a level with dinosaurs, where the “zero height” is approximately the height of the destroyed bridge. Lara stands at "zero" height:
Spoiler
Lara can go below this height or go higher.
This is the screenshot I already showed, Lara running high above the destroyed bridge, well above the “zero” altitude:
Spoiler
We must remember that changing the numerical value of the vertical coordinate acts in the opposite way to what we see on the screen. In other words, if this value is reduced, Lara's height will increase, and vice versa.
P.S. I would recommend that you remove residual data structures from the tables you host to significantly reduce the size of the tables. This is a requirement of the forum administration. For example, your last table takes up almost a megabyte. After removing the structures, its size is only 60 kB.