Jump to content
  • 1

Client-side guide


Freya

Question


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.01
  • Content Count:  120
  • Reputation:   53
  • Joined:  02/12/17
  • Last Seen:  

 

Hello everyone, this is a continuation for my Server-side guide, however, this time, this is a client-side guide instead. No virus can be located at any link located in download spoiler section.
So first, before we begin, I would like to tell you that I will not be accompanying you while making a client. Again, this guide is quite long and I expect you to read and absorb it properly. I would be very disappointed and will IGNORE if you have an error that is stated just below. Anyway, moderators, or etc. may change/edit it freely and any suggestions/reports/etc. are highly suggested or required. Again, I will have an example of my own, thus you do not need to follow it. If you find this helpful, see my signature (Not the PayPal, instead the reputation etc. and please don't make a bad thought about it, it's just for some reasons for the others to know that it is working.) Anyhow, this guide WILL WORK at any CLIENT and is not a one-sided client guide only.

 

What to download:

Spoiler

I.Client folder  - https://github.com/zackdreaver/UnpackedkROclients (PHASED OUT)
II. Data folder - https://github.com/zackdreaver/ROenglishPRE (for Pre-RE)
                         - https://github.com/zackdreaver/ROenglishRE (for RE)
III. NEMO - https://rathena.org/board/topic/90204-nemo/
IV. kRO - http://ratemyserver.net/index.php?page=download_kROLinks (You don't have to download this, but I prefer you to download this, though.)
(Optional) Client used for this guide - https://mega.nz/#!w84jRRjZ!iWjU1Qfsez_3nbTtqQuFWHsbda2IglPi7TBnzZWmJtI

In this guide, I assume that you already have the files needed and that you have extracted the data folder and the kRO. Also, I assume that you have all the .dlls and all the required or needed files to run Ragnarok.

FAQ:
What should I do with my data folder - Place it in your "server" name folder and leave it be. This is the folder where your client will read.
What is a client - The medium to allow your players to experience the feature of your server and to allow them to play.
What is a data folder - This is the heart of your client. This is where it reads the datas, such as your item descriptions and mainly focuses more on in-game features and such. However, effects, rates and such are not related to data folder.
What is NEMO - A setting for your unpacked clients.
Use of client dates - Clients have different dates. It means that if you choose an earlier (2010 below) clients then there will be some features in later clients (2010 above) that will not be present on the earlier client (2010 below). Some clients contain bugs, and these bugs are fixed on the later client; so I would be very pleased if you do a research on your own. However, if you choose some "best" renewal/pre-renewal client then there is a search function in rAthena, search for it.

 

Old rev :

Spoiler

 

I. Configuring your server-side (packet_db.txt) to listen to your client.

Spoiler

1. Go to your rAthena file (or where your files are) and click the db folder and find packet_db.txt 1.png.a23fdf431cab99ab1aaf28a5b62ead3a.png
2. Open your packet_db using any word text such as WordPad, Microsoft or Notepad or Notepad++. No need to download the mentioned applications Notepad is enough if you have them.
3. When you open them, something will pop-up and you will find these lines.
3.png.5072895c2fa077da76c4e9fd6e611420.png
4. Search for these lines
2.png.efeca3474af8f365e917bf3abe9f74e6.png
3.png.b7815e8f07a6bb1532f2e94194f05c08.png
4. Uncomment the "//" beside packet_db_ver (they are called comments in which, they will not be read.).
3.png.1f4d4b85b1aa4674d26952b50b96d2a6.png
5. Now, use Ctrl+F (or Find) then place your client-date on the "Find what:" area. So if you have a 2015-11-04 (MY EXAMPLE) or any client date then place it.
4.png.6ccce91cbecf8fe81e6a0060ddcb4f61.png
6. Once you have found the client-date, look below it and you will see a bunch of commented and uncommented lines lines.
5.png.f60e5ee955548ddd9bde650239f5ef14.png
7. Look at the "packet_ver" and you will see a number which is 55
6.png.6214e95acd7aa33f45046fe5934745b5.png
8. Now, since you have your packet_ver copy the number (or simply memorize it) then paste it at packet_db_ver which you found on top.
7.png.6bfdabfdb77609478a37cd162e41a7ba.png
9. Save it or Ctrl+S.

FAQ:
What if I don't have the correct version of packet_db_ver - Your packet_db_ver must always be correct. If not, then you will have some complications on your server such as unable to move your character, unable you to type, Failed to connect (since it does not match on the packet_db, then of course, it will not connect. Packet_db_ver must have the client's date packet_db to let the client and the server itself listen to each other.), and others. Thus, if you have any problems, then check your packet_db_ver.

What is the packet_keys_use - As far as I read, the packet_keys_use is somewhat a security in your server (There are some clients that does not support packet_keys_use, so it's your decision.). If you wish to have them then look at the packet_keys on Step 7 and copy paste on your packets_keys_use. Make sure to remove the default and the comments.

II. Configuring your server-side(mmo.h) to listen to your client.

Spoiler

1. At the same rAthena folder, go to your "src" folder and proceed to the "common" folder. Search for "mmo.h" and open it using any word-program, such as Notepad or etc. Again no need to download it.8.png.78f4b89ebe0432b74257764705877365.png 9.thumb.png.b0b26b0a0bc2672a6ac53a830e3867ef.png
2. Search for the #define PACKETEVER and the next to it you will see a date. 10.thumb.png.c76ae5a77f743a8be05f9f9edc27a4ad.png
3. Erase the "20130807" or whatever is place on your mmo.h file and replace it with your CLIENT'S DATE. (In my example, I am using 2015-11-04 so I'll be replacing 20130807 to my own client's date which is 20151104. P.S. There is an easier way for the people who'll follow my example, but let's just do the proper way for now, in case you'll be changing some clients lower than the latest or this 20151104.)
11.png.e02404bec001e5943e833cb9d3695438.png
4. Save it or Ctrl+S and close.
5. [If you have read my guide, then you already know that "anything that has been edited to the src files must be recompiled using the Microsoft Visual.)] Once you're done, recompile your server using the rAthena-XX where XX stands for the year.

III. Setting your Client using NEMO

Spoiler

1. Go to your directory of your NEMO and open the application NEMO. (PLEASE DON'T TELL ME YOU DON'T KNOW THE DIRECTORY OF YOUR NEMO FOLDER.)
12.png.3fca213a482a8cb2d3b3a52918245508.png
2. Go to "Browse".
13.png.9eb11b55ca384408b0f2a0d6b0379cee.png
4. Locate your unpacked client which you just downloaded in the download spoiler.
14.png.411c82d1f4e503f4dcac630ddd0de2b4.png
5. (In my example, I used 2015-11-04, again you can use any client you want as long as that client date and version is what you input in your packet_db_ver and in your mmo.h.) Open it, and something will pop up, click on "Yes" and click "Load Client".

15.png.6d79a7dec744f81b61356cd4c2aede5a.png
6. You will see a bunch of words and try to read them if you have time to understand more. Putting that aside, press on "Select Recommended". You will see some bunch of pop-ups such as "DATA.INI" and such, just press OK however, again if you have time, READ.
16.png.32c1fef9486c7f00694d3a1d857adf1a.png
7. Now, skim on to it, and press the things you want to apply, however, before that, check "Read Data Folder First" and "Use Ragnarok Icon".
17.png.ca9dd0335354f2cd1ed2d4fd52b36c31.png18.png.e7d7e5b314045dcfd32fcfd81a76c9f9.png (It must be red if you did not press it and turns green if you press it)
8. Now that you have skimmed on it and pressed the things you want to apply to your client then click on "Apply Selected", as obvious it may be, it means that it will apply what you have selected in the NEMO Patcher. And you will see your own Client in the directory where your Output Patched directs. You can also change this by clicking the Browse to direct the client there.
9. Copy and paste your client to your "servername" file -- NOT THE rAthena files.

FAQ:
What is Read Data Folder First - This will read your data folder (remember when I told you that the data folder is the heart of your client?) first instead of the GRF -- thus if you want to change something on your server, you can just go to the data folder and make changes to any category you wish to change. However, if you wish to change something through the GRF then uncheck "Read Data Folder First" you'd be needing a GRF Reader and Editor.


Detail:
- The Read Data Folder First allows your client to simply read the folder instead of the GRF. Notice that when you play a released online Ragnarok server, the biggest or the heaviest component is the file the ends with .grf? This is because they have turned their Data Folder into a GRF and turned off the Read Data Folder First. The most fitting reason as to why they convert the Data Folder into a GRF is to show professionalism and security. The Data Folder holds a lot of information about your server, such as, your server I.P address, your Ragnarok client and so many more. The Data Folder must be secured (decisive and wise server owners would pay for a third-party security to maintain peacefulness and maximize the protection to their servers) and should always be secured.


What is Use Ragnarok Icon - Your Icon will show up as the original ragnarok icon.


It won't turn green! My Read Data Folder First - IMPOSSIBLE! (Sarcasm.)
Why are there some errors on some etc. - That means your client file is not an UNDIFF CLIENT. The difference between diffed client is that, it is already SET UP and will limit your freedom to choose which settings you want. However, the undiff client is where you can freely set up your own settings. Such as if I want my chat flood to limit when it reaches 5 then I could freely do that in an undiff client WITHOUT problem, however if it is a diff client and the one who diffed (person) it diffed (client) the client then chances are, you cannot change it.

 

Proceed to "Letting your client listen to the server and to the client itself."

 


New rev:

Spoiler

COMING SOON!!!

 

I. Letting your Client listen to the server and to the client itself.

Spoiler

1. Open your data folder (PLEASE DON'T ASK ME WHERE, YOU KNOW WHERE IT IS.). 19.png.5a658db0242d15260967c44030558b78.png
2. Search for Clientinfo.XML and open it using any Word application. Again, no need to repeat it.
20.png.c0f5054d830ffcbd0a06ac1864cf2852.png
3. Now for some explanation.
Leave your <servicetype> the same as it be and your <servertype> might be quite different on what client you are using.
<display> is where you'll see when choosing a server (multiple server in one client -- such as two map servers, two character servers BUT only connects to ONE login server). Such as 
High Rate
Low Rate
Again, experiment if you have time.
<balloon> is where if you hold on your cursor on the <display> in game for a long time, that will show. (I am not sure, am I right?)
<desc> I don't actually know what this is, I left mine the same as it is.
<address> this must be 127.0.0.1 or in simpler terms, your LAN.
<port> if this is 6900, leave that be (-- if you have not changed your login port then change the <port> to the login_port's port -- for starters, don't read this.)
<version> this one is the medium for the server and the client to listen, so whatever you PLACED in YOUR packet_db_ver that will also be what you place on this one. In my example, my packet_db_ver is 55, thus my <version> in my clientinfo.xml would be "<version>55</version>
<langtype> experiment on this one. too hard to explain, or if you want me to explain lazily, this is a font.
<registration> when you press register, this will lead to the link that is input between them.
<aid> under it you will see <admin> this means that THIS WILL BE THE ACCOUNT ID'S (which you place in your MySQL) who will be wearing Game-Master Clothing. As you can see, there is only one, so you will only be seeing one player wearing a Game-Master clothing. Of course if you place two, then common sense? But if they're just a normal player (example 200002 is a normal player) and his/her account id is placed on that <admin> then of course, that normal player will be wearing a Game-Master Clothing but will not inherit the Game-Master's commands and features vice versa. Their group id (group.conf) will follow on what you just placed on the login table group_id in MySQL. Default player's group_id would be 0 and 99 for the administrators.
<loading> self-explanatory. This will show up the loading screen etc.
So the only thing you'll be changing would be between the <version> </version>, <display> </display> (if you desire), and <address> </address> depending if it's not 127.0.0.1, and <langtype> </langtype> depending on the situation.
21.png.5b20412583fc3ae3fd1ec1687dd5cfda.png

4. Save or Ctrl+S, then exit.


How to run your server:

Spoiler

1. Go to your rAthena files and open your runserver.bat to run the mapserverloginserver, and charserver. These three must listen to each other for the client to run successfully. When these three programs are running, open your .exe or your client and login using your account which you have created in the MySQL (Not the account you've placed in your char_athena.conf). It must run successfully.



FAQ:

Spoiler

My server will not go in, it says Failed to Connect to Server - Please check your packet_db_ver has the same version of your client, and your mmo.h has the same client date and make sure you have recompiled it. Once you're done recompiling it, make sure to check your clientinfo.xml <version> is the same with the version in your packet_db.txt. 

It says character size: XX - Please check your mmo.h, make sure your client date is the same on what you've placed on your mmo.h.

Where can I find my data folder - I am a straightforward and a frank person so, where can I find your brain?

When I place my username and password, it says unregistered - Check your username and your password in your MySQL login. Make sure you place aside your stupidity on this one please. Trying once is not a reason for you to tell me this guide is not working.

How to let my friends connect to my server - This is a client-side guide for a LAN-type server, for short, a test server on your own. So which part of this does not let you get what I mean? Go use the search function.

Where to download ???? - Read from the top please.

Item-description has weird characters - Please see my topic, and by the way, this problem can be located in your data folder.


Now you're done. Again, if you have any questions regarding this, please kindly do so, or if you have any suggestions or request to change kindly do so.
Again, I really recommend if you follow my server-guide which is stated above.
Anyway, good luck on making your server. I hope you'll be able to help the Ragnarok Community. Long live Ragnarok!

Best Regards,
Freya


Edited 22/08/2018: Slashed out one website ; Placed more details.

Edited by Freya
  • Upvote 12
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  1137
  • Reputation:   290
  • Joined:  04/29/13
  • Last Seen:  

hay there! nice guide 
just a small suggestion This font is so small, actually it giving me hard time when i am trying to read from IOS device , 

Link to comment
Share on other sites

  • 0

  • Group:  Developer
  • Topic Count:  50
  • Topics Per Day:  0.02
  • Content Count:  763
  • Reputation:   227
  • Joined:  02/11/17
  • Last Seen:  

Very Detailed guide Thumbs up :D

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.01
  • Content Count:  120
  • Reputation:   53
  • Joined:  02/12/17
  • Last Seen:  

59 minutes ago, Cyro said:

hay there! nice guide 
just a small suggestion This font is so small, actually it giving me hard time when i am trying to read from IOS device , 

Thank you for the suggestion @Cyro, will be changing it! Thanks!
 

 

57 minutes ago, crazyarashi said:

Very Detailed guide Thumbs up :D

Thank you very much @crazyarashi!

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.01
  • Content Count:  220
  • Reputation:   251
  • Joined:  04/08/13
  • Last Seen:  

Good job Freya~

Spoiler

thumb-up-gif_zpsae4f01a5.gif

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  399
  • Reputation:   69
  • Joined:  12/26/15
  • Last Seen:  

i really think this guide should be include in rathena wiki at github.. very usefull especially for beginner...

  • Love 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  109
  • Reputation:   2
  • Joined:  06/04/13
  • Last Seen:  

Hi! Question, why is it Nemo's Patcher got an error in patching the recommended patches? I used 2015-05-13 client.. Like there's a lot of error.. I tried to ignore all of them so when i tried to use the diffed client, it says that the client is not a valid Win32 application..

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  1137
  • Reputation:   290
  • Joined:  04/29/13
  • Last Seen:  

which version of NEMO are you using?

and check if you using already diffed file or something!

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  05/08/13
  • Last Seen:  

On 4/19/2017 at 7:57 AM, MusiLiciouS said:

Hi! Question, why is it Nemo's Patcher got an error in patching the recommended patches? I used 2015-05-13 client.. Like there's a lot of error.. I tried to ignore all of them so when i tried to use the diffed client, it says that the client is not a valid Win32 application..

 

On 4/19/2017 at 8:41 AM, Cyro said:

which version of NEMO are you using?

and check if you using already diffed file or something!

Go to this link and download this Nemo, everything should work fine.

https://github.com/MStr3am/NEMO

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.01
  • Content Count:  141
  • Reputation:   24
  • Joined:  01/19/12
  • Last Seen:  

Thank for this guide /awsm

I think you need small updates.

- Link to your Server-side guide: 

 

- On this part:

On 4/18/2017 at 9:41 PM, Freya said:

II. Configuring your server-side(mmo.h) to listen to your client.

 

With newest  rAthena version we need define PACKETVER in file /src/config/packets.h

https://github.com/rathena/rathena/blob/master/src/config/packets.h#L12

Hope I'm correct on this part /heh

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  8
  • Reputation:   0
  • Joined:  07/30/17
  • Last Seen:  

Thank you for the guide. The wiki is terribly out of date. One thing I needed to do was set my client to load the lua (itemInfo.lua) as well so that everything was in english.

 

 

EDIT: Please disregard below, but I'll leave it up in case anyone wants to know what a successful Debain configuration looks like - I didn't SAVE my damn clientinfo.xml. Once I saved it with the correct IP and server name it worked.

Any idea why when I try to connect with the recommended diff client version you're using it points me to a Local server? I put my server name and external IP in data/clientinfo.xml but it doesn't seem to be working.

 

 

 

My server confs are as follows (Debian):

import/char_conf.txt:

userid: *intercomuser*
passwd: *intercomuserpass*
char_ip: MY WAN IP
login_ip: 127.0.0.1
pincode_enabled: no
server_name: *MyServerName*
start_point: izlude,192,210:izlude_a,192,210:izlude_b,192,210:izlude_c,192,210

import/login_conf.txt:

userid: *intercomuser*
passwd: *intercomuserpass*

import/map_conf.txt:

userid: *intercomuser*
passwd: *intercomuserpass*
map_ip: MY WAN IP
char_ip: 127.0.0.1

import/inter_conf.txt:

use_sql_db: yes

// MySQL Login server
login_server_ip: 127.0.0.1
login_server_port: 3306
login_server_id: DBuser
login_server_pw: DBuserpassword
login_server_db: DBschemaname
login_codepage:
login_case_sensitive: no

ipban_db_ip: 127.0.0.1
ipban_db_port: 3306
ipban_db_id: DBuser
ipban_db_pw: DBuserpassword
ipban_db_db: DBschemaname
ipban_codepage:

// MySQL Character server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: DBuser
char_server_pw: DBuserpassword
char_server_db: DBschemaname

// MySQL Map Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: DBuser
map_server_pw: DBuserpassword
map_server_db: DBschemaname

// MySQL Log Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: DBuser
log_db_pw: DBuserpassword
log_db_db: DBschemaname
log_codepage:
log_login_db: loginlog

lsof -i output:

login-ser 5392        root    3u  IPv4  28606      0t0  TCP localhost:49072->localhost:mysql (ESTABLISHED)
login-ser 5392        root    4u  IPv4  28610      0t0  TCP localhost:49074->localhost:mysql (ESTABLISHED)
login-ser 5392        root    5u  IPv4  28614      0t0  TCP localhost:49076->localhost:mysql (ESTABLISHED)
login-ser 5392        root    6u  IPv4  28616      0t0  TCP *:6900 (LISTEN)
login-ser 5392        root    7u  IPv4  28633      0t0  TCP localhost:6900->localhost:54174 (ESTABLISHED)
char-serv 5394        root    3u  IPv4  28619      0t0  TCP localhost:49078->localhost:mysql (ESTABLISHED)
char-serv 5394        root    4u  IPv4  28622      0t0  TCP *:6121 (LISTEN)
char-serv 5394        root    5u  IPv4  28632      0t0  TCP localhost:54174->localhost:6900 (ESTABLISHED)
char-serv 5394        root    6u  IPv4  28635      0t0  TCP localhost:6121->localhost:40570 (ESTABLISHED)
map-serve 5396        root    3u  IPv4  28625      0t0  TCP localhost:49080->localhost:mysql (ESTABLISHED)
map-serve 5396        root    4u  IPv4  28627      0t0  TCP localhost:49082->localhost:mysql (ESTABLISHED)
map-serve 5396        root    5u  IPv4  28629      0t0  TCP localhost:49084->localhost:mysql (ESTABLISHED)
map-serve 5396        root    6u  IPv4  28631      0t0  TCP *:5121 (LISTEN)
map-serve 5396        root    7u  IPv4  28634      0t0  TCP localhost:40570->localhost:6121 (ESTABLISHED)

 

Edited by Hamburglin
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  24
  • Reputation:   1
  • Joined:  10/28/17
  • Last Seen:  

Thanks very much for the detailed guide!

 

But there's a question:

How can I find this file to fit the client version :

packet_db_ver

It seems that there's no this file in the newest rathena version.

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  12
  • Reputation:   6
  • Joined:  03/01/16
  • Last Seen:  

On 6/11/2018 at 8:59 PM, Terminalia said:

Thanks very much for the detailed guide!

 

But there's a question:

How can I find this file to fit the client version :

packet_db_ver

It seems that there's no this file in the newest rathena version.

 

1

For the new version, you can find the commend in packets.hpp

#ifndef PACKETVER
	/// Do NOT edit this line! To set your client version, please do this instead:
	/// In Windows: Add this line in your src\custom\defines_pre.hpp file: #define PACKETVER YYYYMMDD
	/// In Linux: The same as above or run the following command: ./configure --enable-packetver=YYYYMMDD
	#define PACKETVER 20151104
#endif

And it requires you to add a line for clarifying the client version in src\custom\defines_pre.hpp.

For example
 

// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef _CONFIG_CUSTOM_DEFINES_PRE_HPP_
#define _CONFIG_CUSTOM_DEFINES_PRE_HPP_

/**
 * rAthena configuration file (http://rathena.org)
 * For detailed guidance on these check http://rathena.org/wiki/SRC/config/
 **/

#define PACKETVER 20180605 // <----------------- declear the client version here

#endif // _CONFIG_CUSTOM_DEFINES_PRE_HPP_

And it seems that we don't need to modify the packet_ver_db in the new version.

  • Upvote 2
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  13
  • Reputation:   0
  • Joined:  05/24/18
  • Last Seen:  

@Freya Links dont work ;(

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...