Hello, I have learned how to do this months ago and am now deciding to share this for the community. I am still very new to assembly as my specialty is in web development, but hopefully I can learn more into this in the future. So first is first, this is very basic and requires very little knowledge with assembly/cheat engine.
Requirements:
- Cheat Engine
- Test Server
- Brain.exe
First, we obviously need to open cheat engine and attach it to our ps_game.
Like so:
After we do that, we need to find the correct address for our ps_game in regards to adding kills to our character.
Here's what I am going to do to find this information.
So In order to do this, We will need 2 characters and we are going to kill each other and track each kill we get. (Alternatively you could just set your changed kills with a gm toon)
So as you can see below, I have 1 kill. I am going to search for one kill.
Now we're going to keep track of our character kills, so after i killed someone, i now have 3 kills. that's what i'm going to search for. Keep doing this until you find the right addres that tracks your kills.
Shouldn't take long. this is the address that i found: double click on it and add it to the bottom.
Now that we have our address, I'm going to press f5 on it to find what accesses it, our we can just right click on it and press that option.
Now that we have that window open, we are going to kill our character again.
You should see something like this:
this is whats adding our kills to our character.
Now before we actually start making the script, we need to find out the offset which finds our map. to do this we are going to need to find the base address for our edi value. If you still have the window open where we initially found the correct address you should see at the bottom:
this is the address we are going to use to find it.
Select this option in tools:
Now if we go back to our add offset it shows:
add [edi+148]
so we are going to add +148 to our address pointer that we found.
and that is going to be the address we put into the address option in dissect.
like so:
choose this option.
you can name it whatever you like.
Now it should show the structure and we need to find the value of our map id.
Now i see that 18 is the correct offset because I know that i am on map 86 and it's showing the correct value.
So this is all we need, now we can get to making the script.
so what we need to do now is to make an assembly script.
Select it, go to tools at the top bar and press "auto assemble".
Like so:
then we are going to click on the template dropdown at the top again, and choose cheat table framework code. this is how we get the enable/disable part.
then we are going to to choose the code injection under template again.
It should automatically find the address to the address we found, if not you can find it by right clicking on it and clicking "go to address" and that should tell you the address for it.
You can also find it right here:
So our template should look something like this:
Now i'm going to define 4 new map ids.
After that, we will write our new code.
We are going to cmp the map id, so we say like: if map id then we will add kills.
if not, we return kinda thing.
I don't want to go over what each op code means google would be your friend for that. I'm just going to explain how it works.
This is the final code after i finished writing it:
So as you can see in the code, we are saying if map 1 is map id 18 as an integer, we will add 2 kills plus the original amount, which in my server is 2, so they will get a total of 4 kills on map id 18. and it will also go to map_2,map_3 and then map_4 and it will do the kills and such and then finish.
I really hope this helps anyone interested in learning how things like this works as you can see it is quite simple. I hope you can understand it.
I tested this and it works perfectly.