 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
sch7777 Newbie cheater
Reputation: 0
Joined: 04 Mar 2011 Posts: 21
|
Posted: Sat Apr 20, 2013 10:23 pm Post subject: I Got A Question about carry things from level to level |
|
|
I am playing ArcaPinball Wacky Worlds, Thanks to Cheat Engine, I made a few scripts to make lives go up when you die. Make the ammo increase on any weapon as you shot. Last to keep the barrier after the ball hits it and to increase the number of barriers everytime you get another. Dark Byte CE is the ?!@# I am not the brightest bulb to all this pointer and script and assembly stuff. Give me a toaster, I’ll tear it apart and put it back together like new. Give me a Cheat Engine and all this killer stuff and I am what the !@#$, what the !@#$ Here is a screenshot of the game below:
Description: |
|
Filesize: |
169.28 KB |
Viewed: |
5817 Time(s) |

|
Description: |
|
Filesize: |
123.66 KB |
Viewed: |
5817 Time(s) |

|
Description: |
My question is how would you go about carrying over something you got in one level to the next level or throughout the game play?
Would this be something to do with a pointer or a script or what?
Lost, dumbfounded I am.
Cheat Engine 6.1 is what I am |
|
Filesize: |
112.87 KB |
Viewed: |
5817 Time(s) |

|
|
|
Back to top |
|
 |
jucce Advanced Cheater
Reputation: 1
Joined: 02 Apr 2013 Posts: 99
|
Posted: Mon Apr 22, 2013 10:28 am Post subject: |
|
|
Well if you have an inventory try to find which values change when you acquire certain items. For example I have seen a simple bitmap where one bit changes from 0 to 1 when the player has the item. Save, pick up the gun, scan for changes and repeat that process. You should see a flag or some value change back and forth.
However the game may be constructed in such a way that some items are specific to certain levels. It is not certain that there is a general inventory space that is the same over all levels. Instead a 1 for a specific bit in level 1 may mean that the player has the rocket gun but a 1 in level 2 that the player has the laser. In that case it would take much more work and probably require modding the entire game.
|
|
Back to top |
|
 |
sch7777 Newbie cheater
Reputation: 0
Joined: 04 Mar 2011 Posts: 21
|
Posted: Mon Apr 22, 2013 4:16 pm Post subject: |
|
|
Quote: | Well if you have an inventory try to find which values change when you acquire certain items. For example I have seen a simple bitmap where one bit changes from 0 to 1 when the player has the item. Save, pick up the gun, scan for changes and repeat that process. You should see a flag or some value change back and forth.
However the game may be constructed in such a way that some items are specific to certain levels. It is not certain that there is a general inventory space that is the same over all levels. Instead a 1 for a specific bit in level 1 may mean that the player has the rocket gun but a 1 in level 2 that the player has the laser. In that case it would take much more work and probably require modding the entire game.
No there is no inventory in the game. It is all about finding some kind of pointers which i did i think, i'm trying to get some pictures of how i am going about finding these pointer so maybe someone here can point me in the right direction of what i am doing wrong, thanks for your input |
|
|
Back to top |
|
 |
Rectangle Advanced Cheater
Reputation: 1
Joined: 23 Feb 2013 Posts: 73
|
Posted: Mon Apr 22, 2013 10:53 pm Post subject: |
|
|
If the game's source code was not written to allow for some sort of "inventory" (whether you can graphically see one or not, it doesn't matter), and if normally you could acquire a weapon in one level which is not obtainable in another level, then there is no way to change this without changing the way the source code itself behaves.
This is because, as jucce has said, some games are written in a way where the level itself stores a boolean (0 or 1) which states whether or not you have a weapon at all, as opposed to which weapon you have.
So if the game has been coded in this manner, then the best that you could do is to find this value and set it to 1, so that the player always has a weapon.
But again, this does not necessarily mean that you can change that weapon, since it might be hard-coded into the level itself (and other weapons might not even be loaded into the game's memory until you load that weapon's associated level).
Honestly, it's hard to know for sure without actually having played that game, though.
|
|
Back to top |
|
 |
sch7777 Newbie cheater
Reputation: 0
Joined: 04 Mar 2011 Posts: 21
|
Posted: Tue Apr 23, 2013 5:57 am Post subject: |
|
|
Yes, Rectangle, i do believe the game has a boolean (0 or 1) in each level. And you have to find that address for each level and all the weapons and acid balls and all that stuff is in every level which are random. So i've been trying to learn about the CE pointer scan and how it wokes and i feel pretty much brain dead. sort a speak..LOL!!! What is really crazy about each level, the address can change. For example, you get the magnet and then the time runs out and you get another one and the address you found on the first one you got doesn't alway work for the next one. And if you quit the game and then come back to it, any addresses you've found don't work. I had to do a script for lives and ammo and the barrier wall. Which all of those were not so bad to do. Yet don't get me wrong i still don't quite understand how they work. But i am learning. I believe the game jumps around in the memory so it's about learning how the pointer work and using them. But that leads to how to turn any pointer into a code injection or script? I am most likely learning all this stuff on a well writen game or something.
Any really good advice dark byte so someone like me who is a true beginner to all this stuff.
|
|
Back to top |
|
 |
Rectangle Advanced Cheater
Reputation: 1
Joined: 23 Feb 2013 Posts: 73
|
Posted: Tue Apr 23, 2013 7:45 am Post subject: |
|
|
In order to fully grasp the concept of pointers, it helps to understand how an application manages it's memory...
More often than not, your operating system will keep track of which addresses in RAM are marked as readable, writable, allocatable, executable and so forth...
and with the help of developer runtime libraries (such as msvcr110.dll) an application will store itself wherever it can fit and is allowed to run.
However, there are 2 basic types of memory spaces available for developers to store their data in:
- The Stack, where local and more immediate variables and functions can be stored/referenced/manipulated, and...
- The Heap, where things are more like a giant cloud of blocks of information which stays in memory until being manually released or moved elsewhere.
That being said, with all this traffic always coming and going and moving and shuffling about, there will almost NEVER be a "dedicated" address for any one application or any of it's data.
The only slight exception here is when an application allocates data at a constant offset from it's base address (which is the address where the application has been assigned to). These are known as static addresses.
Also, some code/data (such as device drivers and system libraries) requires protected areas of memory in order to execute properly, and might ask for a more dedicated range of memory.
Aside from those, memory management is virtually dynamic, and therefore requires an easy way for developers to access their data. One of the easiest and most popular ways to do this is through the use of Pointers...
Pointers literally "point" to an address in memory where a value (or set of values, or a function, or generally just any size block of data) can be manipulated through a named variable --
allowing developers to literally allocate, deallocate and manipulate any data they wish in nearly the same way they would use any basic data type (char, boolean, integer, float, etc).
The use of pointers are the de facto standard of simple memory management, and CE is basically able to scan through blocks of memory to see which addresses "point" to others, picking up on some patterns along the way (such as offsets from the base address, etc).
So, the reason that some data exists in one memory location for one level, and then changes to another after that level, is because the application (or it's associated libraries) deallocates and reallocates new memory addresses (or pointers) to store it's data.
The same goes for when you quit an application... The operating system flags that memory as "usable" for other running processes, and assigns a new space in memory for your game upon relaunching it.
So with this information on hand, you should check out the tutorials section on pointers, and also check out some tutorial videos such as this one to get you on your way.
|
|
Back to top |
|
 |
sch7777 Newbie cheater
Reputation: 0
Joined: 04 Mar 2011 Posts: 21
|
Posted: Wed Apr 24, 2013 8:13 am Post subject: |
|
|
Thank You Everyone for helping me figure the pointers out video tutorial help out a bunch. Thanks again
|
|
Back to top |
|
 |
|
|
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
|
|