 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Fri Jan 31, 2014 3:42 am Post subject: how to use a compare condition in two different codes |
|
|
See the problem is as follows:
i use the following code for comparing player or enemy while cheating for health:
but i want to compare player or enemy in my code for teleport too otherwise the same code sometimes teleports enemies too so can i use the same condition, if yes how????
|
|
Back to top |
|
 |
STN I post too much
Reputation: 43
Joined: 09 Nov 2005 Posts: 2676
|
Posted: Fri Jan 31, 2014 3:57 am Post subject: |
|
|
It depends on the game but if the co-ords structure is close or related to your health structure you can use that as a compare(offsets etc.). In other cases, a register will contain your health structure near the area where your co-ords modification takes place. A good example of this is in some unreal games.
If the co-ords structure is located at a completely different address space than your health then you can look for player identifiers in the co-ords area like you do for health. Or find an address which accesses your player co-ords only.
Its all very game dependent so which game are you trying to do this on ?. We can better answer if we know which game it is.
_________________
|
|
Back to top |
|
 |
omoe Grandmaster Cheater
Reputation: 8
Joined: 11 Jun 2013 Posts: 547
|
Posted: Fri Jan 31, 2014 5:20 am Post subject: |
|
|
Use structure spider .
_________________
Hey! , Rep++ . |
|
Back to top |
|
 |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Fri Jan 31, 2014 11:27 am Post subject: |
|
|
It's for assassin's creed 1...
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Fri Jan 31, 2014 1:03 pm Post subject: |
|
|
You do not need a compare for Infinite Sync/Health. However, if you are also incorporating Fall Protection, then you will need a filter. I used this:
Code: | push ebx
mov ebx,[eax+C4]
mov ebx,[ebx+2C]
mov ebx,[ebx+0C]
cmp ebx,71935F3E
pop ebx
jne enemy |
This same filter can also be used for teleportation since fall protection is part of the coordinates structure. Obviously, you may have to change the register.
|
|
Back to top |
|
 |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Fri Jan 31, 2014 1:25 pm Post subject: |
|
|
Didn't understand this filter and by the way problem is that when i use teleport people other than me are teleported and i am left behind then when i press 3 to 4 times then i am teleported but each time i press button someone is teleported other than me.....
This is obviously not intended by the script so i think i have to add something that restricts the script to player only....
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Fri Jan 31, 2014 1:42 pm Post subject: |
|
|
Yes. The instruction that you are using for teleportation is handling everyone's coordinates...not just yours. So, you must filter them out so that only you are teleported.
This filter makes use of a pointer tree, which is why it looks like this. You may even be able to use it for your filter, but you may have to change the register (see comment below):
Code: | newmem:
push ebx
mov ebx,[eax+C4] /////////////////////may have to change eax
mov ebx,[ebx+2C]
mov ebx,[ebx+0C]
cmp ebx,71935F3E
pop ebx
jne originalcode |
|
|
Back to top |
|
 |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Sat Feb 01, 2014 1:52 am Post subject: |
|
|
I am attaching my cheat table please see to it.....
++METHOS by the way my blend option is also not working and crashes the game if you can correct it too...
I haven't added the filter yet as i didn't understand it fully yet....
so, perhaps you can add it and send the updated table....
Description: |
|
 Download |
Filename: |
AssassinsCreed_Dx10.CT |
Filesize: |
132.38 KB |
Downloaded: |
700 Time(s) |
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sat Feb 01, 2014 4:05 am Post subject: |
|
|
This is what I have for stealth:
Code: | //Author: +METHOS
//Target: Assassin's Creed v1.02
//Script: Stealth
[ENABLE]
aobscan(aobstealth,8B510485D2750532C0)
alloc(newmem,2048)
label(returnhere)
registersymbol(aobstealth)
newmem:
mov [ecx+04],2
mov edx,[ecx+04]
test edx,edx
jmp returnhere
aobstealth:
jmp newmem
returnhere:
[DISABLE]
dealloc(newmem)
aobstealth:
mov edx,[ecx+04]
test edx,edx
unregistersymbol(aobstealth) |
I did not check your teleport script, but you can try updating it with this and testing it:
Code: | newmem:
push ebx
mov ebx,[eax+C4]
mov ebx,[ebx+2C]
mov ebx,[ebx+0C]
cmp ebx,71935F3E
pop ebx
jne originalcode
cmp [s_enable],1
je save_coord
cmp [l_enable],1
je load_coord
cmp [u_enable],1
je undo_coord
jmp originalcode |
|
|
Back to top |
|
 |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Sat Feb 01, 2014 8:01 am Post subject: |
|
|
the filter didn't work the game crashes as soon as i enable teleport script after adding this filter to it.....
also i didn't understand this filter and tell me anything you can about aobscan command as i don't know anything about it.....
Please do explain rather than only telling the method....
As only then i will be able to learn something and i will be really greatfull for that...
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sat Feb 01, 2014 12:19 pm Post subject: |
|
|
I prefer to explain things so that people will learn, as opposed to just doing the work for them. That said, it is up to you to ask questions about things that you do not understand. A lot of what you ask will yield responses that have already been published. However, I do not mind explaining them so long as you demonstrate a willingness to learn. Also, a lot can be learned by analyzing code, only.
If your game is crashing now, but didn't before, then the offsets that we are using for the compare are no good for the version that you are using. Can you please tell me which version of AC you are running? Also, can you tell me which copy you are runing (e.g. retail, reloaded, skidrow etc.)?
Regarding the filter, when you check to see which instruction is accessing/writing your base coordinate, you get this:
movaps xmm0,[eax+30]
:this is the instruction that you are using for your injection point. With that information, we know that if we dissect data structures on our coordinate base address, we will have to remember to subtract the +30 offset.
So, using this as an example...
X coordinate address = 011E4780
Z coordinate address = 011E4784
Y coordinate address = 011E4788
...we know that 011E4780 is our base coordinate. We need to right-click this address in our cheat table and select 'browse this memory region'. Then, in the memory viewer window, we select 'tools' from the drop-down menu, and click on 'dissect data structures'. By doing this, you will notice that CE will automatically add our address to the DDS window. Here, we simply subtract the offset and write it like so:
011E4780-30
Now, when we dissect data structures on this address, we can see that some of the offsets contain pointer trees. You can look inside these pointer trees to see more values. Pointer trees can also contain more pointers (hence the name pointer tree)...leading to a deeper offset for our compare:
Code: | push ebx
mov ebx,[eax+C4] ////////C4 = original pointer address
mov ebx,[ebx+2C] ////////2C = pointer address inside C4 pointer
mov ebx,[ebx+0C] ////////0C = offset inside 2C pointer containing our compare value
cmp ebx,71935F3E
pop ebx |
When you start analyzing your coordinates structure, you will start to get a better idea about what I am explaining. If you do not understand how to use these features, I recommend completing the CE tutorial by studying guides/videos so that you have a better understanding.
AOB stands for Array of Bytes. By incorporating AOBscan in to our script, we are able to run the same script on different versions of the target, regardless of code shifting, by having our script 'scan' for that particular byte pattern of hexadecimal code that we assigned in our aobscan so that a proper injection point can be found. So, even if the address/location of our instruction/injection point changes, we can still find it by scanning for the actual bytes that make up the instruction. You can learn more about AOB by reading this forum.
By the way, does my stealth script work on your version?
|
|
Back to top |
|
 |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Sat Feb 01, 2014 12:42 pm Post subject: |
|
|
Thanks so much for your help........
Your script for stealth is working absolutely perfect on my game...
I'm using AC v1.0.0.1 and it's ripped by skulltura...
i wanted help that even after i have the script for teleport do i need to find the address for coordinates again or i can use something to directly find it.....
according to my disset data i checked that inside c4 offset inside 2c offset inside 0c is the value 71935F3E so that is why your filter should work but still it's crashing the game i don't understand why????
Last edited by Ayush on Sat Feb 01, 2014 1:03 pm; edited 1 time in total |
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sat Feb 01, 2014 12:54 pm Post subject: |
|
|
Thanks for letting me know about the working script. As a side note, this is an example of how we can use AOB to work with both of our games...even though we are running different versions and the locations of our instructions differ. Obviously, in this case, the instruction was also different, but you get the idea. I originally searched for your instruction in my version, using your address, and it was not the same...indicating that our versions/copies were different.
skulltura 1.0.0.1? I haven't seen that one floating around. I may have a hard time finding it.
Regarding coordinate addresses, I assume you mean that you have to search for them each time the game restarts? If so, you can use either the pointer scanner or injection. There are videos on youtube that explain how to use the pointer scanner. For injection, refer to some of my older posts (with example tables). You will see that it is relatively easy once you have a proper instruction to work with. In your case, you should be able to find an instruction that ONLY accesses your hero coordinates (and nothing else)...which, by the way, you can use for your teleport script to avoid having to find a proper filter. The reason I didn't use one of them, is because I wanted something that was being accessed several times per second and would initialize instantaneously... ...that, and I incorporated a vac cheat and a kill-all cheat that made use of the coordinate structure.
|
|
Back to top |
|
 |
Ayush Newbie cheater
Reputation: 0
Joined: 25 Jan 2014 Posts: 24
|
Posted: Sat Feb 01, 2014 1:15 pm Post subject: |
|
|
also i found that [eax+3C] is always equal to 1 for my player but when i am using this condition it always jumps to originalcode and not to teleport code....
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sat Feb 01, 2014 1:25 pm Post subject: |
|
|
Make sure you are comparing against the proper value type.
|
|
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
|
|