Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Shaiya > Shaiya Private Server > Shaiya PServer Guides & Releases
You last visited: Today at 02:23

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Guide] Killcount for specific maps

Discussion on [Guide] Killcount for specific maps within the Shaiya PServer Guides & Releases forum part of the Shaiya Private Server category.

Reply
 
Old   #1
 
Velocity.'s Avatar
 
elite*gold: 0
Join Date: Jul 2016
Posts: 237
Received Thanks: 323
[Guide] Killcount for specific maps

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.
Velocity. is offline  
Thanks
29 Users
Old 03/30/2019, 07:56   #2
 
elite*gold: 220
Join Date: Jul 2018
Posts: 85
Received Thanks: 22
Awesome, I think it was missing the download, it would make it much easier, anyway thanks
ShaiyaIwanttolearn is offline  
Old 03/30/2019, 08:28   #3
 
Blober's Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 194
Received Thanks: 67
Removed
Blober is offline  
Old 03/30/2019, 11:10   #4
 
Blober's Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 194
Received Thanks: 67
Removed
Blober is offline  
Old 03/30/2019, 15:27   #5
 
oldjayy's Avatar
 
elite*gold: 16
Join Date: Jun 2011
Posts: 63
Received Thanks: 159
I could be wrong, but 2nd jne originalcode after the first one won't be read since the code will jump to first address given.

A simpler solution could be something like this, but havent tested it anywhere:
oldjayy is offline  
Old 03/30/2019, 17:08   #6
 
Velocity.'s Avatar
 
elite*gold: 0
Join Date: Jul 2016
Posts: 237
Received Thanks: 323
Quote:
Originally Posted by oldjayy View Post
I could be wrong, but 2nd jne originalcode after the first one won't be read since the code will jump to first address given.

A simpler solution could be something like this, but havent tested it anywhere:
Well there's more than one way of doing it, right? This way has always worked without any problems, multiple testing and seems that it's going through all of the code. but of course you could do it like that aswell.

You could do something like this, which is just about the same as what you mentioned:


Again, as i mentioned I don't study much of this stuff, mostly web development so If at any point I'm wrong just feel free to correct me.
Cheers.

Quote:
Originally Posted by vinnystyler18 View Post
to facilitate your understanding, this is the guide code above.
Also, by the way this is quite incorrect,

This is your code:



First we are going to map 2 on our first code, right? that's correct.

Once we are on map 2, you are saying you want to go back to map 2? how does that make sense? your code will never reach map 3, it will just go on continous loops to map 2.
same thing on map 3, and on map 4 I believe you don't need to jne originalcode.
This script that you made will most definetly cause a few errors, possibly even crash your server.
Velocity. is offline  
Thanks
3 Users
Old 03/31/2019, 11:14   #7
 
Blober's Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 194
Received Thanks: 67
Removed
Blober is offline  
Old 04/02/2019, 12:48   #8
 
elite*gold: 220
Join Date: Jul 2018
Posts: 85
Received Thanks: 22
Quote:
Originally Posted by vinnystyler18 View Post
I just wanted to make life easier for the guy, he can edit this script, yes I already did the steps of the guide, it works perfectly for me, maybe in the near future, I'll be using it on my server




Maybe he had no idea how it would be to put the function inside a CT file, I just published an example, I do not know why you're so bothered about it

The download posted by you was useful, made easy, made some adjustments and works for me.

I avoid asking for help in this community because of people like @ who thinks he is superior and always responds with arrogance, Whatever it is, I thank him
ShaiyaIwanttolearn is offline  
Old 04/02/2019, 13:10   #9
 
Blober's Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 194
Received Thanks: 67
I just have a brain. Of curse enough to read and apply the guide without asking for download. That's all.

If you don't know how to use CE take a look on google.

And i'm not superior.

Thanks.
Blober is offline  
Old 04/02/2019, 20:49   #10
 
elite*gold: 220
Join Date: Jul 2018
Posts: 85
Received Thanks: 22
Quote:
Originally Posted by Blober View Post
I just have a brain. Of curse enough to read and apply the guide without asking for download. That's all.

If you don't know how to use CE take a look on google.

And i'm not superior.

Thanks.

He's looking like an idiot with ridiculous arguments, I know how to use CE
ShaiyaIwanttolearn is offline  
Old 04/03/2019, 07:24   #11
 
Blober's Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 194
Received Thanks: 67
Quote:
Originally Posted by ShaiyaIwanttolearn View Post
I know how to use CE
I'm really happy for you dude
Blober is offline  
Old 01/21/2020, 04:00   #12
 
elite*gold: 0
Join Date: Jun 2014
Posts: 134
Received Thanks: 124
what improves the code is to add offsets 148 + 18 = 160, for best practices, 148 + 18 in hexadecimal, which is equivalent to 160

Old:
cmp byte ptr [edi+00000148+18],(int)map1

New:
cmp byte ptr [edi+160],(int)map1


doesn't change anything, just to make the code cleaner


sorry for my english!
perlisson is offline  
Old 02/22/2024, 20:47   #13
 
elite*gold: 0
Join Date: Jan 2013
Posts: 449
Received Thanks: 552
Hello, I'm trying this script for a single map and i get:

"not all script can be injected
error on line 16 add[edi+00000148],(int)2"

what is wrong?

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
define(map1,60)

newmem:

cmp byte ptr [edi+160], (int)map1
je kc_map1
jne originalcode

kc_map1:
add[edi+00000148],(int)2
jmp exit

originalcode:
add[edi+00000148],ecx

exit:
jpm returnhere

"ps_game.exe"+67DC0:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"ps_game.exe"+67DC0
add[edi+00000148],ecx
//Alt: db 01 8F 48 01 00 00
beetols is offline  
Old 02/22/2024, 23:47   #14
 
[ADM]Beno™'s Avatar
 
elite*gold: 0
Join Date: Dec 2016
Posts: 237
Received Thanks: 115
Quote:
Originally Posted by beetols View Post
Hello, I'm trying this script for a single map and i get:

"not all script can be injected
error on line 16 add[edi+00000148],(int)2"

what is wrong?

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
define(map1,60)

newmem:

cmp byte ptr [edi+160], (int)map1
je kc_map1
jne originalcode

kc_map1:
add[edi+00000148],(int)2
jmp exit

originalcode:
add[edi+00000148],ecx

exit:
jpm returnhere

"ps_game.exe"+67DC0:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"ps_game.exe"+67DC0
add[edi+00000148],ecx
//Alt: db 01 8F 48 01 00 00
There's a typo in the line jpm returnhere. It should be jmp returnhere.

The line add[edi+00000148],(int)2 is incorrect. The correct syntax should be add [edi+148], 2 since you're adding an immediate value of 2 to the memory address [edi+148], you don't need to specify (int)
[ADM]Beno™ is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Release]Killcount Changer
05/17/2020 - Shaiya PServer Development - 30 Replies
Hello, here a little Tool to change the killcount rate on your Server. How to use: Put it on your Server, start it, change the Value of kill count and click the apply button. Max. possible Value is 99. http://img52.imageshack.us/img52/2482/killratecha nger.jpg MD5 : 522c855f0951be533ac9000cd16251a8
[Buying] WTB Specific Account - DK / Paladin Account - With specific things on it.
03/04/2016 - World of Warcraft Trading - 0 Replies
SKYPE : cristian.puf21 - SKYPE : mishap87 http://www.eu-accounts.com/resources/static/image s/logo.png Hello, I'm looking for a specific account which must have all of the listed things below: -Plate class: DK/Pala with warrior TIER 3 (BMAH Preffered) -CM 17 with at least one FOS best realm time in WOD
[RELEASE]Killcount
12/06/2012 - Metin2 PServer Guides & Strategies - 21 Replies
Ich Release mal ein kleinen Killcount, habe die sufu benutzt aber nichts gefunden und da ich eh Langeweile habe teile ich mit euch diese quest. Zur Quest. Sie startet ab lvl 1 und zählt jedesmal wenn der Spieler was killt, bei den selben Spieler im Reich wird der dazugehörige reichscounter auf 1 runtergesetezt(kommt drauf an wv er kill)und eigenkills erhöht. quest killcount begin state start begin when login with pc.get_level()>=1 begin send_letter("Killcount") setstate(info)
Changeing Colour Of Superman Killcount Numbers
10/31/2008 - Conquer Online 2 - 5 Replies
Well after being away from Conquer for a year so much has changed, Bots are auto clicker etc. I downloaded ELSEPath V 1.7 which in all is a good bot how ever I 1 problem, XP skill superman is activated & off the bot gose tryin to click the red killcount numbers above its head. I looked into changeing the colour of these said numbers however I can't find them :(. If anyone can point me in the right direction to do this that would be great, If anyone has done this already and would'nt mind...



All times are GMT +2. The time now is 02:23.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.