Monsieur Panda
New member
Hello,
For some reason, I decided to write my own guide for super newbie people. And when I say newbie, I say REAL newbie. I will not ask you to learn anything or saying rude things like "go google ffs".
I believe people that want to create their server are not necessary interested being a linux master or whatever. Never people are saying that before leaning guitar, people should learn how string and guitar are made.
Enough talk, lets start !
Prerequisites
I. Dedicated server
A. Get your server
II. Create the Client
A. Organization
III. Finish Server configuration
A. Compile the server
IV. Player Side
A. Create a Game Master Account
V. Customize
A. Back to the N.E.M.O.
For some reason, I decided to write my own guide for super newbie people. And when I say newbie, I say REAL newbie. I will not ask you to learn anything or saying rude things like "go google ffs".
I believe people that want to create their server are not necessary interested being a linux master or whatever. Never people are saying that before leaning guitar, people should learn how string and guitar are made.
Enough talk, lets start !
Prerequisites
- Patience, meticulousness, cogitation
- kRO full client: Mirror #1 (mediafire), Mirror #2 (Direct Link from my ftp)
- kRO last actual compatible exe: Mirror #1 (mega.nz), Mirror #2 (Direct Link from my ftp)
- Setup exe: Download (Page), Mirror #1 (Direct Link from my ftp)
- N.E.M.O. Diff Patcher Download (git)
- BGM parameter files. Download (Direct Link herc.ws), Mirror #1 (Direct Link from my ftp)
- Translation Package. Download (git)
- Putty: Download (Page)
- If Putty does not work, use Kitty Download (Page)
- 1~2 hours of your time
- You cannot see password in Putty / Kitty when you type it.
- nano is a text editor. At the bottom of the screen you can see a menu. To use it, press CTRL + the option's letter
- You cannot use numeric pad in nano
- Being polite is always rewarding
I. Dedicated server
A. Get your server
- You can find very cheap solution at Kimsufi. Choose anything you want.
- I recommend you to choose Debian 8 (Jessie) for your OS.
- In Kimsufi manager, you will find your server IP.
- You have your login (root) and password in an email after installing the OS
- Start Putty and enter server's IP address
- Connect with root then type the password you got by email. (You wont see " * " when you type)
- To change your password enter the following line
passwd
- Install required package by enter this (copy this and paste it with a right-click):
apt-get install git make gcc mysql-server libmysqlclient-dev zlib1g-dev libpcre3-dev screen
- The following is meant to make a web server. Even if you don't plan to make a website, I suggest you to take it, just because phpmyadmin is easy to use. While installing phpmyadmin, select apache2.
apt-get install apache2- apt-get install php5 php5-cli libapache2-mod-php5 php5-mysql
- apt-get install phpmyadmin
- ln -s /usr/share/phpmyadmin /var/www/html/
- Because hercules doesn't work if you use root login, we will create a new user.
useradd ragnarok- passwd ragnarok [choose_a_password]
- Connect to phpmyadmin and login with the information you chose at this address: http://your_server_ip/phpmyadmin
- Create a new database ragnarok and choose utf8_unicode_ci as collation
- Create another database and name it ragnarok_log with same collation
- Click on the tab Users (top of the page), Add User and fill the form.
- Username: ragnarok,
- password: [choose_a_assword],
- Click on Check All in the privilege group. (or if you know what are you doing, select options you need)
- Now you can log out from your server in Putty
logout
- Login again in Kitty with the new user ragnarok
- Download Hercules emulator
git clone https://github.com/HerculesWS/Hercules.git ~/Hercules
- We will need to reach the database installation folder:
cd Hercules/sql-files/
- We will now import tables in the database. You will have to write your mysql password each time (set in step B.4).
mysql -u ragnarok -p ragnarok < main.sql- mysql -u ragnarok -p ragnarok_log < logs.sql
- mysql -u ragnarok -p ragnarok < item_db2.sql
- mysql -u ragnarok -p ragnarok < mob_db2.sql
- mysql -u ragnarok -p ragnarok < mob_skill_db2.sql
- if you want to make a PRE-RENEWAL server, enter also this
mysql -u ragnarok -p ragnarok < item_db.sql- mysql -u ragnarok -p ragnarok < mob_db.sql
- mysql -u ragnarok -p ragnarok < mob_skill_db.sql
- If you want to make a RENEWAL server:
mysql -u ragnarok -p ragnarok < item_db_re.sql- mysql -u ragnarok -p ragnarok < mob_db_re.sql
- mysql -u ragnarok -p ragnarok < mob_skill_db_re.sql
- It is required to set up a server login and password for char-server, map-server and the login database. It can be done by editing few files and the table login.
- Start by editing conf/inter-server.conf.
cd ../- nano conf/inter-server.conf
- Find the line sql.db_username and fill it with the user and password we created in step B.10. fill also the database name with ragnarok
- As the same time, you will need to edit conf/import/inter_conf.txt.
- nano conf/import/inter_conf.txt
- sql.db_username: ragnarok
sql.db_password: your_sql_password
sql.db_database: ragnarok - log_db_id: ragnarok
log_db_pw: your_sql_password
log_db_db: ragnarok_log
- now edit conf/import/char_conf.txt and fill it with this following text
- nano conf/import/char_conf.txt
- // Server Communication username and password.
userid: [new user]
passwd: [new password]
- Do the same to conf/import/map_conf.txt with the same userid and passwd.
- nano conf/import/map_conf.txt
- // Server Communication username and password.
userid: [new user]
passwd: [new password]
- You will need to update the login table from ragnarok database. Connect again to your phpmyadmin (I.B.7)
- Find the table login and edit the only row available.
- userid must have the same value as [new user]
- user_pass must have the same value as [new password]
- char-server.conf
- nano conf/char-server.conf
- server_name: [your_server_name]
- wisp_server_name: Admin
- For some reason, you must reboot your server.
- reboot
- Close the Terminal and connect again after a minute.
- Now you will need to work on your server ports
- iptables -I INPUT 1 -p tcp --dport 6900 -j ACCEPT
- iptables -I INPUT 1 -p tcp --dport 5121 -j ACCEPT
- iptables -I INPUT 1 -p tcp --dport 6121 -j ACCEPT
- iptables save
- We are done with the server for now. You can log out if you want. Lets prepare our client!
II. Create the Client
A. Organization
- Extract the full client in C:\ro_client\RO\ and launch update with rsu-kro-renewal-lite.exe or rsu-kro-rag-lite.exe if you set a pre-re server.
- Extract the Ragexe.exe in C:\ro_client\fresh\
- Extract data and System folders from the translation Package in C:\ro_client\fresh\
- Extract the opensetup.exe in C:\ro_client\fresh\
- Extract Mssfast.m3d and Mp3dec.asi from BGM.zip in C:\ro_client\fresh\
- Extract N.E.M.O. content in C:\ro_client\NEMO\
- Once Step 1 is DONE:
- Copy All *.dll and *.INI files from C:\ro_client\RO\ to C:\ro_client\fresh\
- Copy BGM and savedata folders from C:\ro_client\RO\ to C:\ro_client\fresh\
- Copy rdata.grf and data.grf files from C:\ro_client\RO\ to C:\ro_client\fresh\
- Launch N.E.M.O. and load 2015-05-13aRagexe.exe
- Hit "Select Recommended"
- Confirm DATA.INI
- Rename iteminfo.lub to iteminfo_n.lub
- Now search "Read Data Folder First" and check it
- Hit "Apply Selected" and you will have a new 2015-05-13aRagexe_patched.exe file.
- You should "Save Profile" now, because you will probably want to edit again your client later
- Rename C:\ro_client\fresh\System\itemInfo.lub to iteminfo_n.lub
- You might need to rename C:\ro_client\fresh\data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\ folder to 유저인터페이스 later, but for now, just skip this step (not sure if you encounter this problem).
- Open C:\ro_client\fresh\data\clientinfo.xml with a text editor (I recommend Notepad++)
- Update the address with your server IP
<address>[ip_address]</address>
- Done with the translation. Now we will say to the server, which client players are using.
III. Finish Server configuration
A. Compile the server
- Launch Putty again and login to your server. We will compile Hercules. It will take time so be patient.
cd ./Hercules- ./configure --enable-packetver=20150513
- make clean
- make sql
- once it is done, you can verify if the version has been properly set.
nano src/common/mmo.h
- Find following lines
- #ifndef PACKETVER
#define PACKETVER
- #ifndef PACKETVER
- Change #define PACKETVER to #define PACKETVER 20150513 if not done yet.
- If you did change something in mmo.h, you need to recompile again. Process again the step III.A.1
- To start the server, you simply need the following line (while being in Hercules folder)
./athena-start start
IV. Player Side
A. Create a Game Master Account
- Go to your phpmyadmin (step I.B.7) and find again the login table.
- Hit the Insert tab
- userid: [login_nickname]
- user_pass: [login_pass]
- group_id: 99
- gender: M or F
- You have now your Game Master Account
- Launch C:\ro_client\fresh\2015-05-13aRagexe_patched.exe
- Login with your newly created game master account
- Process thru in game.
- type @go 0
- Be happy.
V. Customize
A. Back to the N.E.M.O.
- This Diff patcher is really cool, be aware of that. You can now edit again your client.
- repeat the step II.B.1
- Hit "Load Profile" and choose the previous file you created in step II.B.7
- Check the list and hit option you want.
- repeat step II.B.6 and 7
- Remove the Pin Secure Code
- Be sure to always be in Hercules folder ( cd ./Hercules)
- ./athena-start stop
- nano conf/import/char_conf.txt
- add this line: pincode_enabled: 0
- process to step III.A.1
- To edit clientinfo.xml, I suggest you to check the wiki page
- if you can't see in game button
- Changing starting point
nano conf/import/char_conf.txt- add start_point_re: prt_fild08,170,365
- Changing starting items
nano conf/import/char_conf.txt- add start_items: 2393,1,0,5055,1,0,569,20,1
- Changin starting Zeny
nano conf/import/char_conf.txt- add start_zeny: 5,000
- == More options to come, just reply to this topic if you can't find how to do what ==
- NPC
- Add your script in npc/custom/your_script_name.txt
- Edit npc/script_custom.conf and add the following line:
npc: npc/custom/your_script_name.txt
- ITEM
- Read the wiki about custom item (Link)
- System/iteminfo_n.lub
[<item id>] = {
unidentifiedDisplayName = "My custom Item", // Or "Accessory" or "Headgear" if it is an equipment
unidentifiedResourceName = "my_custom_item", //This will set the sprite you will use (ex: my_custom_item.spr / actmy_custom_item.act)
unidentifiedDescriptionName = {
"Unknown Item, can be identified by using a ^6666CCMagnifier^000000."
}, //Or basically juste { }, if it is not an equipment.
identifiedDisplayName = "My custom Item",
identifiedResourceName = "my_custom_item",
identifiedDescriptionName = {
"Bleh this item is a custom item.",
"Bleh this is a second line"
}, // Description of your item.
slotCount = 0,
ClassNum = 0 // Read the wiki page for the list.
},
- Sprites.
- Drop item sprite (also the same as click and drag) must be in:
data/sprite/¾ÆÀÌÅÛ/my_custom_item.spr / my_custom_item.act
- Drop item sprite (also the same as click and drag) must be in:
- Inventory texture (24x24 size 256 bit bmp) must be in:
data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/item/my_custom_item.bmp
- Headgears: Copy the headgear in:
data\sprite\¾Ç¼¼»ç¸®\¿©\¿©_my_custom_item.spr / ¿©_Helmet.act for Female- data\sprite\¾Ç¼¼»ç¸®\³²\³²_my_custom_item.spr / ³²_Helmet.act for Male
- Collection picture (75x100 [SIZE=12.8px]256 bit bmp) must be in:[/SIZE]
data/sprite/¾ÆÀÌÅÛ/collection/my_custom_item.bmp
- MAP
Cient side- Your map file name and ID cannot be longer than 13 caracters.
- my_map.gat, my_map.gnd, my_map.rsw, my_map.extra must be in data/ folder (inside grf)
- Additional textures (bmp) must be in data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/map/
- BGM must be in BGM/ folder.
- Add the bgm in data/mp3nametable.txt (ex: my_map.rsw#bgm\\44.mp3#)
- Add following lines to data/resnametable.txt my_map.gnd#my_map.gnd#
my_map.gat#my_map.gat#
my_map.rsw#my_map.rsw#
- Add this line to data/mapnametable.txt
- my_map.rsw#Title of my Map#
- Server Side
- Add the following line to db/map_index.txt
my_map
- Add the following line to db/map_index.txt
- Add the following line to conf/maps.conf
- map: my_map
- Cache
- Create a map.grf and include a folder data/. Add inside your map files (gat, rsw, gnd, extra)
- Create a folder grf/ in your server root (Hercules/) and upload map.grf inside grf/ folder.
- Connect via ssh (putty) to your server and log in.
- Stop your server ./athena-start stop
- Edit conf/grf-files.txt
- nano conf/grf-files.txt
- Add the following line, save and close.
- grf: grf/map.grf
- Do the following command
- ./mapcache
- start your serveur
- ./athena-start start
Last edited by a moderator: