Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[Terraria] Dissect data problem
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Sat Jun 09, 2018 9:27 am    Post subject: [Terraria] Dissect data problem Reply with quote

I have made a cheat engine thingy that find base address of player (I hope) and I use that to open up dissect data table.

Problem:
Let's say I want to change my shooting speed, once I've done it everything changes and it works as intended, then I add it to table to change it whenever and after I restart my game the value that I inserted into table appears as random numbers or 0 or ???

Question:
Does that mean that I found wrong base address, (it works perfectly with hp/mana), or is it some kind of different problem? (I tried finding offset manually, but with no success)
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Sat Jun 09, 2018 10:34 am    Post subject: Reply with quote

Maybe you are pointing to the "shooting speed" value in a wrong way.

If HP/Mana are working after you restart the game i suppose that the PlayerBase is fine.
Back to top
View user's profile Send private message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Sat Jun 09, 2018 11:47 am    Post subject: Reply with quote

LewcowVaal wrote:
Maybe you are pointing to the "shooting speed" value in a wrong way.

If HP/Mana are working after you restart the game i suppose that the PlayerBase is fine.


Well I'm pointing it the same way as to Health or Mana, using baseID and specific offset for it.
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Sat Jun 09, 2018 1:48 pm    Post subject: Reply with quote

I might try your pointer if you want.

By the way this is the wrong section
Back to top
View user's profile Send private message
Meas
Newbie cheater
Reputation: 0

Joined: 31 Oct 2015
Posts: 18

PostPosted: Sat Jun 09, 2018 3:07 pm    Post subject: Reply with quote

When you restart the game the memory won't be the same so an old pointer can easily break.

I think you mean base address as in the address that points to the player's struct/class? Those addresses can/will change after a game restart.

If you want a static address you either do a few tedious pointerscans for your address until it doesn't change anymore OR manually follow the assembler and find an address relative to the player struct that is constant across restarts (basically what the pointerscan tries to do).

An easier way is to inject additional code into the game that captures the address of the player struct whenever it is written by the game. Code is often completely static (exceptions exist) so it will work across restarts.
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Sat Jun 09, 2018 4:56 pm    Post subject: Reply with quote

Measurity wrote:
When you restart the game the memory won't be the same so an old pointer can easily break.

I think you mean base address as in the address that points to the player's struct/class? Those addresses can/will change after a game restart.

If you want a static address you either do a few tedious pointerscans for your address until it doesn't change anymore OR manually follow the assembler and find an address relative to the player struct that is constant across restarts (basically what the pointerscan tries to do).

An easier way is to inject additional code into the game that captures the address of the player struct whenever it is written by the game. Code is often completely static (exceptions exist) so it will work across restarts.


He is having no problem with HP and MANA by using the same player base tho, assuming he is using the correct one.

Even if it is always easier to look up for the instructions and allocate some memory to hold the address we want, having a static pointer comes handy in some situations.

By the way, some addresses in Terraria (e.g. Movement Speed / Melee Speed) are constantly overwritten by other instructions, therefore i think you should consider a script-type approach anyways.
Back to top
View user's profile Send private message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Sun Jun 10, 2018 12:19 am    Post subject: Reply with quote

I'm using script, but it just doesn't work the way I want to (finding the value of damage or speed or whatever, using dissect data), I tried attaching CE table but it's too big, any ideas how to reduce the size so I can attach it?
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Sun Jun 10, 2018 1:50 am    Post subject: Reply with quote

Upload on an external site and put the download link here with some spaces in it.
Back to top
View user's profile Send private message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Sun Jun 10, 2018 3:03 am    Post subject: Reply with quote

LewcowVaal wrote:
Upload on an external site and put the download link here with some spaces in it.


here, should be fine: ht tp s :/ /ufi le.i o /biq9 f
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Sun Jun 10, 2018 1:22 pm    Post subject: Reply with quote

I tried your table 3 times and everytime the damage value either was 0 or ???.


I dissected the player base and at your offsets i can only see a value that refers to the player pointing direction.

Also you are not using your allocated playerBase with your damage value. I can only see a simple pointer with a non-static base address that obviously changes everytime you run the game.


P.S: If that is MeleeDamage, you can try [playerHPMP]+390 (float). You can't edit that tho.
Back to top
View user's profile Send private message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Mon Jun 11, 2018 12:21 am    Post subject: Reply with quote

LewcowVaal wrote:
I tried your table 3 times and everytime the damage value either was 0 or ???.


I dissected the player base and at your offsets i can only see a value that refers to the player pointing direction.

Also you are not using your allocated playerBase with your damage value. I can only see a simple pointer with a non-static base address that obviously changes everytime you run the game.


P.S: If that is MeleeDamage, you can try [playerHPMP]+390 (float). You can't edit that tho.


let me explain something. I tried doing damage same as with hp or mp but I ran into a problem.
The ones I can use are these:
ht tp s: / /im gur .c om /a /s Wp B r4u

and I can't use any of those that are in ">" thingy:

h tt ps : / /i mgu r.c om/a /ZA Kt2Tb



so I tried using pointers, but that didin't workout either
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Mon Jun 11, 2018 4:57 am    Post subject: Reply with quote

I can use your base and access those addresses just fine. Look:




You must use the first offset by summing and the others with the CE add offset feature, according to your script.

Everytime you use the "add offset", the pointer evaluates the address pointed. You don't want to do that with the first offset.
Back to top
View user's profile Send private message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Thu Jun 14, 2018 12:32 am    Post subject: Reply with quote

LewcowVaal wrote:
I can use your base and access those addresses just fine. Look:


You must use the first offset by summing and the others with the CE add offset feature, according to your script.

Everytime you use the "add offset", the pointer evaluates the address pointed. You don't want to do that with the first offset.


Thank you, you're literally god.
Back to top
View user's profile Send private message
LewcowVaal
Advanced Cheater
Reputation: 0

Joined: 30 Dec 2017
Posts: 59

PostPosted: Thu Jun 14, 2018 4:55 am    Post subject: Reply with quote

Merhurijus wrote:
LewcowVaal wrote:
I can use your base and access those addresses just fine. Look:


You must use the first offset by summing and the others with the CE add offset feature, according to your script.

Everytime you use the "add offset", the pointer evaluates the address pointed. You don't want to do that with the first offset.


Thank you, you're literally god.


Thats not true! Very Happy You could rep me in return if you want....

Oh and keep in mind that, as i already said, most of the addresses get constantly written by multiple instructions, so you need to write a simple script for them.
For instance: Melee attack speed, get the address, find what writes to that address, locate the last instruction that writes to that address (or either the one that writes the most of the times, but it could be any instruction), do a script that change the value in the register after the found instruction is executed.
Back to top
View user's profile Send private message
Merhurijus
Newbie cheater
Reputation: 0

Joined: 09 Jun 2018
Posts: 17

PostPosted: Thu Jun 14, 2018 8:42 am    Post subject: Reply with quote

LewcowVaal wrote:
Merhurijus wrote:
LewcowVaal wrote:
I can use your base and access those addresses just fine. Look:


You must use the first offset by summing and the others with the CE add offset feature, according to your script.

Everytime you use the "add offset", the pointer evaluates the address pointed. You don't want to do that with the first offset.


Thank you, you're literally god.


Thats not true! Very Happy You could rep me in return if you want....

Oh and keep in mind that, as i already said, most of the addresses get constantly written by multiple instructions, so you need to write a simple script for them.
For instance: Melee attack speed, get the address, find what writes to that address, locate the last instruction that writes to that address (or either the one that writes the most of the times, but it could be any instruction), do a script that change the value in the register after the found instruction is executed.


I was going to rep you,but I still need to level up or something to rep people.
But if I will be using a script does that mean I won't be able to change it to the number I like?
And aren't I using a script to find a base address already?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites