Connectivity Guide: Difference between revisions
Technology (talk | contribs) mNo edit summary |
(TODO: Write about serverTypes (i really have no idea what are them), maybe add information about the other servers.txt entrys (gameguard, storageEncryptKey, secureLogin, paddedPackets, recvpackets)) |
||
Line 1: | Line 1: | ||
This guide | OpenKore comes with a large list of server information. But some servers are not in the list, and sometimes the server information changes (for instance, when a server changes IP address or upgrades the server software). This guide teaches you several ways to figure out the (new) server information. Read this guide completely and carefully! If you encounter problems, finish reading this guide first before asking questions on the forum or IRC! | ||
But before you do that, read the list of [[unsupported servers]]. Your server may not be supported at all - in that case reading this guide would be a waste of time. | |||
[[ | |||
==WPE | OpenKore needs the following information about the Ragnarok Online server before it can login: | ||
[[ | |||
[[ | *The server name. | ||
[[ | *The server's address (IP address or host name) and port number. | ||
[[ | *The server's master version number. | ||
[[ | *The server's server version number. (not the same as the master version number) | ||
*The server's character encoding. | |||
*The server's type version. | |||
==Getting Server Information== | |||
There are two ways for getting them, which is using [http://wpepro.net WPE] or [http://www.wireshark.org Wireshark]. WPE is the easiest one, because most ragnarok players are familiarized with it already or at least know what it does and how it works. But some servers block it's use, so you better use Wireshark. | |||
===WPE (Winsock Packet Editor)=== | |||
:'''1.''' Download and extract it. Download it [http://wpepro.net/download.html here]. | |||
::'''<span style="color:red">Before downloading, make a sure to disable your anti-virus as it can mark WPE as a virus and delete it. Also, download at your risk, we will not be resposabilized if your computer crashes.</span>''' | |||
::'''''Note.''''': You will need some programs to extract it, the common ones are [http://www.rarlab.com/ WinRAR] and [http://www.7-zip.org/ 7zip]. | |||
:'''2.''' Open your ragnarok but '''''don't login yet!''''' Leave it on the login screen and open WPE. | |||
:'''3.''' At WPE's windown, click on '''''Target Programs''''' buttom. | |||
::[[File:Targetyc.png]] | |||
::A window will open, search for your server's executable and double-click it. | |||
:::[[File:clickrag.png]] | |||
::'''''Note.''''' Some servers "hide" their executables by renaming it (like from xxxRO.exe to binadds.dll), so don't worry if your executable isn't a .exe one. | |||
:'''4.''' In the WPE's window, click on '''Play button'''. | |||
::[[File:play.png]] | |||
:'''5.''' Maximize your Ragnarok's window and login. You don't need to login to the map-server, just the login-server is enough. | |||
::'''''Note.''''' Valid login information are not needed. | |||
:'''6.''' Back to WPE's window, click on '''Stop button''' | |||
::[[File:stopjw.png]] | |||
::A window will open with some packets. Here we can find the server's '''version and master_version, IP and port'''. | |||
::The packets will be different on each server, but most of the time it will start with '''64 00'''. | |||
::These are the packets that contains the version and master_version. Write them down because they are going to be used later. | |||
:::[[File:inforb.png]] | |||
::'''Legend''': | |||
:#Version. | |||
:#IP | |||
:#Port | |||
:#Master version | |||
:'''7.''' Now, the '''version and master version''' need to be converted, because they are a hexadecimal number (base-16) and Kore expects a decimal number (base-10). Use [http://www.statman.info/conversions/hexadecimal.html this calculator]. With the numbers converted, you can now make openkore use it. See [[Connectivity Guide#Passing server information to OpenKore|Passing server information to OpenKore]]. | |||
===Wireshark=== | |||
:'''1.''' Download and install Wireshark. (Download link [http://www.wireshark.org/download.html here]). | |||
:'''2.''' Open your ragnarok but '''''don't login yet!''''' Leave it on the login screen and open Wireshark. | |||
:'''3.''' At Wireshark's window, go to '''Capture > Options''' on the upper menu or press '''Ctrl + K'''. | |||
::[[File:Capiture.png]] | |||
:'''4.''' In the "Interface" dropdown box, select an interface which you want to capture on. If you're unsure which interface to use, select the one whose IP address is equal to your ip address or is not '''''unknown'''''. Alternatively you can try all of them and use the one that records the packets. Set the others settings like the images bellow: | |||
::[[File:options.png]] | |||
:'''5.''' After configuring the options, click on '''Start button''' and go back to your ragnarok and login. Loginning to the map-server is not needed, the login-server is enough. | |||
::'''''Note.''''' Valid information are not needed. | |||
:'''6.''' After loginning, go back to Wireshark and press the '''Stop button'''. | |||
::[[File:stop.png]] | |||
:'''7.''' In the Wireshark main window you can see the TCP segments that were captured. Fill in the packet filter, but what to fill in depends on the username you used to login. | |||
::Enter this in the "Filter" text box: | |||
eth contains "xxxxxx" or eth contains xxxxxx | |||
::Replace '''''xxxxxx''''' with your username that you used to login and press enter. In my example, my username was Mushroom. | |||
:::[[File:filter.png]] | |||
:'''8.''' You will now have only one entry, click on it and you will have some information about it. This is where you are going to get the server's IP and port. | |||
::[[File:ip.png]] | |||
::: Write down your ip and port because you are going to need them later. | |||
:'''9.''' On the entry again, right-click on it and go to '''Follow TCP Stream'''. | |||
::[[File:tcp.png]] | |||
:'''10.''' A new window will open, in the bottom left, select '''Hex Dump'''. | |||
::[[File:hex.png]] | |||
:'''11.''' Now we got the login packets. Take a look at it and write down the packets that contains the '''version and master version''' numbers. They are marked on the image bellow. | |||
::[[File:packets.png]] | |||
:'''12.''' With the informations above, you have to convert them, because they're a hexadecimal number (base-16) and Kore expects a decimal number (base-10). You can use [http://www.statman.info/conversions/hexadecimal.html this calculator]. With the numbers converted, you can now make openkore use it. See the section bellow for how to use it. | |||
==Passing server information to OpenKore== | |||
OpenKore reads server information from a file named servers.txt. The file is on ''tables'' folder. | |||
If your server is not listed in the file, then add a new entry. If your server is already listed, then modify the existing entry. Here is the format: | |||
[Server's Name] -> Your server's name. Must be between '[' and ']' | |||
ip x.x.x.x -> Your server's IP. | |||
port xxxx -> Your server's port number. | |||
master_version xx -> Your server's master_version. The one that you converted from hex to decimal. | |||
version xx -> The server's version. The one that you converted from hex to decimal. | |||
serverType xxx -> Your serverType. For privates default one is 8_4. More information read bellow. | |||
charBlockSize xx -> Set this if you are getting wrong char name and job name. Default is 108. | |||
serverEncoding xxxx -> Character encoding. More information read bellow. | |||
private 1 -> Only set this if the bot connects to the wrong map server IP. Used by private servers. | |||
And here is an example: | |||
[MushroomRO] | |||
ip 127.0.0.1 | |||
port 6900 | |||
master_version 16 | |||
version 20 | |||
serverType 8_4 | |||
charBlockSize 108 | |||
serverEncoding Western | |||
After having modified servers.txt, restart OpenKore. | |||
===ServerType=== | |||
TODO | |||
===Character encoding=== | |||
The character encoding cannot be automatically detected, but here's a list of possible character encodings that you can use: | |||
{| class="wikitable" border="1" cellspacing="0" | |||
|-style=background-color:#F9F9F9; | |||
!Encoding | |||
!Language used | |||
|- | |||
|align=center|Western | |||
| English, or a language which uses a Roman-based alphabet. For example, German, French, Portuguese, etc., but also Indonesian. | |||
|- | |||
|align=center|Simplified Chinese | |||
| Simplified Chinese. | |||
|- | |||
|align=center|Traditional Chinese | |||
| Traditional Chinese. | |||
|- | |||
|align=center|Korean | |||
| Korean | |||
|- | |||
|align=center|Russian | |||
| Russian, or a Cyrillic-based language. | |||
|- | |||
|align=center|Japanese | |||
| Japanese | |||
|- | |||
|align=center|Thai | |||
| Thai | |||
|} |
Revision as of 18:41, 25 October 2009
OpenKore comes with a large list of server information. But some servers are not in the list, and sometimes the server information changes (for instance, when a server changes IP address or upgrades the server software). This guide teaches you several ways to figure out the (new) server information. Read this guide completely and carefully! If you encounter problems, finish reading this guide first before asking questions on the forum or IRC!
But before you do that, read the list of unsupported servers. Your server may not be supported at all - in that case reading this guide would be a waste of time.
OpenKore needs the following information about the Ragnarok Online server before it can login:
- The server name.
- The server's address (IP address or host name) and port number.
- The server's master version number.
- The server's server version number. (not the same as the master version number)
- The server's character encoding.
- The server's type version.
Getting Server Information
There are two ways for getting them, which is using WPE or Wireshark. WPE is the easiest one, because most ragnarok players are familiarized with it already or at least know what it does and how it works. But some servers block it's use, so you better use Wireshark.
WPE (Winsock Packet Editor)
- 1. Download and extract it. Download it here.
- Before downloading, make a sure to disable your anti-virus as it can mark WPE as a virus and delete it. Also, download at your risk, we will not be resposabilized if your computer crashes.
- 2. Open your ragnarok but don't login yet! Leave it on the login screen and open WPE.
- A window will open, search for your server's executable and double-click it.
- Note. Some servers "hide" their executables by renaming it (like from xxxRO.exe to binadds.dll), so don't worry if your executable isn't a .exe one.
- 4. In the WPE's window, click on Play button.
- 5. Maximize your Ragnarok's window and login. You don't need to login to the map-server, just the login-server is enough.
- Note. Valid login information are not needed.
- 6. Back to WPE's window, click on Stop button
- A window will open with some packets. Here we can find the server's version and master_version, IP and port.
- The packets will be different on each server, but most of the time it will start with 64 00.
- These are the packets that contains the version and master_version. Write them down because they are going to be used later.
- Legend:
- Version.
- IP
- Port
- Master version
- 7. Now, the version and master version need to be converted, because they are a hexadecimal number (base-16) and Kore expects a decimal number (base-10). Use this calculator. With the numbers converted, you can now make openkore use it. See Passing server information to OpenKore.
Wireshark
- 1. Download and install Wireshark. (Download link here).
- 2. Open your ragnarok but don't login yet! Leave it on the login screen and open Wireshark.
- 4. In the "Interface" dropdown box, select an interface which you want to capture on. If you're unsure which interface to use, select the one whose IP address is equal to your ip address or is not unknown. Alternatively you can try all of them and use the one that records the packets. Set the others settings like the images bellow:
- 5. After configuring the options, click on Start button and go back to your ragnarok and login. Loginning to the map-server is not needed, the login-server is enough.
- Note. Valid information are not needed.
- 6. After loginning, go back to Wireshark and press the Stop button.
- 7. In the Wireshark main window you can see the TCP segments that were captured. Fill in the packet filter, but what to fill in depends on the username you used to login.
- Enter this in the "Filter" text box:
eth contains "xxxxxx" or eth contains xxxxxx
- Replace xxxxxx with your username that you used to login and press enter. In my example, my username was Mushroom.
- 8. You will now have only one entry, click on it and you will have some information about it. This is where you are going to get the server's IP and port.
- Write down your ip and port because you are going to need them later.
- 9. On the entry again, right-click on it and go to Follow TCP Stream.
- 10. A new window will open, in the bottom left, select Hex Dump.
- 11. Now we got the login packets. Take a look at it and write down the packets that contains the version and master version numbers. They are marked on the image bellow.
- 12. With the informations above, you have to convert them, because they're a hexadecimal number (base-16) and Kore expects a decimal number (base-10). You can use this calculator. With the numbers converted, you can now make openkore use it. See the section bellow for how to use it.
Passing server information to OpenKore
OpenKore reads server information from a file named servers.txt. The file is on tables folder.
If your server is not listed in the file, then add a new entry. If your server is already listed, then modify the existing entry. Here is the format:
[Server's Name] -> Your server's name. Must be between '[' and ']' ip x.x.x.x -> Your server's IP. port xxxx -> Your server's port number. master_version xx -> Your server's master_version. The one that you converted from hex to decimal. version xx -> The server's version. The one that you converted from hex to decimal. serverType xxx -> Your serverType. For privates default one is 8_4. More information read bellow. charBlockSize xx -> Set this if you are getting wrong char name and job name. Default is 108. serverEncoding xxxx -> Character encoding. More information read bellow. private 1 -> Only set this if the bot connects to the wrong map server IP. Used by private servers.
And here is an example:
[MushroomRO] ip 127.0.0.1 port 6900 master_version 16 version 20 serverType 8_4 charBlockSize 108 serverEncoding Western
After having modified servers.txt, restart OpenKore.
ServerType
TODO
Character encoding
The character encoding cannot be automatically detected, but here's a list of possible character encodings that you can use:
Encoding | Language used |
---|---|
Western | English, or a language which uses a Roman-based alphabet. For example, German, French, Portuguese, etc., but also Indonesian. |
Simplified Chinese | Simplified Chinese. |
Traditional Chinese | Traditional Chinese. |
Korean | Korean |
Russian | Russian, or a Cyrillic-based language. |
Japanese | Japanese |
Thai | Thai |