| View previous topic :: View next topic |
| Author |
Message |
TheHitchhiker How do I cheat?
Reputation: 0
Joined: 01 Apr 2020 Posts: 4
|
Posted: Mon Jun 08, 2020 2:47 pm Post subject: Seeking advice for designing a complex trainer. |
|
|
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 and ? 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 |
|
 |
ParkourPenguin I post too much
Reputation: 153
Joined: 06 Jul 2014 Posts: 4734
|
Posted: Tue Jun 09, 2020 9:56 am Post subject: |
|
|
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 |
|
 |
Csimbi I post too much
Reputation: 98
Joined: 14 Jul 2007 Posts: 3356
|
Posted: Tue Jun 09, 2020 10:35 am Post subject: |
|
|
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 |
|
 |
TheHitchhiker How do I cheat?
Reputation: 0
Joined: 01 Apr 2020 Posts: 4
|
Posted: Wed Jun 10, 2020 3:59 pm Post subject: |
|
|
| 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 |
|
 |
ParkourPenguin I post too much
Reputation: 153
Joined: 06 Jul 2014 Posts: 4734
|
Posted: Wed Jun 10, 2020 4:15 pm Post subject: |
|
|
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 |
|
 |
|