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 


Seeking advice for designing a complex trainer.

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
TheHitchhiker
How do I cheat?
Reputation: 0

Joined: 01 Apr 2020
Posts: 4

PostPosted: Mon Jun 08, 2020 2:47 pm    Post subject: Seeking advice for designing a complex trainer. Reply with quote

Hello, I'm new to Cheat Engine and just put out my first serious trainer. I'm working on restructuring it, and I wanted some advice about design philosophy using cheat engine.

Currently, all of the cheats are stored as auto assembly entries in the Cheat Table, with Lua handling the UI and pretty much nothing else. To avoid issues with cheats relying on each other, I've been injecting all of them at the start, then using assembly comparisons with symbols I've registered and allocated as boolean switches. IE, a cheat will have an auto assembly
Code:
cmp eax, [mycheattoggle]
and will jump if mycheattoggle isn't eax. I'm not sure this is a good way to do things, but I've had very little experience with cheat engine coding before.

I'm planning on moving most of the AutoAssembly cheats into the lua file and activate them with autoAssemble, but I'm unsure if I should go further. For instance, should I be allocating variables with the lua functions
Code:
allocateMemory
and
Code:
registerSymbol
? Should I even be using autoAssembly to determine if cheats are on or off, or is it better to do it with lua somehow? Should I even be using cheat engine to begin with? I would provide a link to the trainer but I can't post URL's yet, so looking up the SSSiyan Collab Table on Nexusmods will get you the file and looking up Devil May Cry StriVe on youtube will give you a video that demonstrates the trainer's features.

Thank you for your time.

_________________
We do it I guess
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 153

Joined: 06 Jul 2014
Posts: 4734

PostPosted: Tue Jun 09, 2020 9:56 am    Post subject: Reply with quote

You only have to worry about two scripts interfering with each other if they use the same injection point (in the vast majority of cases). It's fine to leave them as separate AA scripts in the address list and enable/disable the memory records as needed from Lua.

It seems like you're trying to complicate things just for the sake of complicating things.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Csimbi
I post too much
Reputation: 98

Joined: 14 Jul 2007
Posts: 3356

PostPosted: Tue Jun 09, 2020 10:35 am    Post subject: Reply with quote

Why make them LUA when it works in AA?
You can build trainers using AA scripts, too.
Although LUA does give you more freedom.
But why build a trainer in the first place? Keep it as a table, more useful that way.
Back to top
View user's profile Send private message
TheHitchhiker
How do I cheat?
Reputation: 0

Joined: 01 Apr 2020
Posts: 4

PostPosted: Wed Jun 10, 2020 3:59 pm    Post subject: Reply with quote

ParkourPenguin wrote:
You only have to worry about two scripts interfering with each other if they use the same injection point (in the vast majority of cases). It's fine to leave them as separate AA scripts in the address list and enable/disable the memory records as needed from Lua.

It seems like you're trying to complicate things just for the sake of complicating things.


While that is a possibility, the issue is indeed that multiple AA scripts use the same injection point. Also, it's less about everything working (it is functional) and more about organization. There's about 40-50 scripts that have to run simultaneously for what I'm doing, and I'd like to keep things as clean as I can.

_________________
We do it I guess
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 153

Joined: 06 Jul 2014
Posts: 4734

PostPosted: Wed Jun 10, 2020 4:15 pm    Post subject: Reply with quote

I'd still recommend using Lua to enable/disable the memory records in the address list. There's little sense in changing everything if you already have something that works sufficiently well.

That is of course assuming you designed the scripts such that they could be enabled simultaneously and independently of each other. If not, then make a master script that modifies the injection point. The other scripts can tell the master script to execute their code in some manner- e.g. flags (master script has all the code), function pointers of hooks to execute in an array, some combination of them, whatever.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
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
Page 1 of 1

 
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