Ragnarok Server Guide
Ragnarok Server Guide
User Friendly
Judas Bible
Table of Contents
i)
ii)
iii)
iv)
v)
vi)
vii)
viii)
ix)
x)
xi)
xii)
xiii)
xiv)
xv)
xvi)
xvii)
xviii)
xix)
xx)
xxi)
xxii)
xxiii)
xxiv)
xxv)
xxvi)
Pre-requisites (Windows)
Setting up your server (Windows)
Compiling (Windows)
Client Side Settings (Diff/Hex/Data/Lua/Lub)
Server Side Settings
Custom Window Title
Custom Login Screen
Custom RO Icon
Adding GMs to clientinfo.xml
Making a GM Account SQL
Compiling GRF
Setup Patcher (Cheap Webhost | Thor)
Making/Uploading Patches via Thor (GRF)
Installing Flux CP (Disable _M/_F | Using Same Cheap Webhost)
Making your Server Online | Port Forwarding |
Troubleshooting
Adding Custom Auras
Adding Custom Maps
Adding Custom Items RagRE (Long Way)
Adding Custom Mobs RagRE
Adding Custom NPCs RagRE
Adding Custom Weapons
Adding Custom Pets
Adding Custom Diffs Manually (Custom Source Mods)
Enable Custom Palettes
Adding Loading Screens and Logo
i)
Pre-requisites:
Once you have installed tortoiseSVN, you will be prompted to restart your PC, so make sure to restart
your computer once it prompts you to.
Once your PC has restarted, when you right click, you will see a new addon that lets you checkout svn
with tortoiseSVN.
Now, we will checkout a Ragnarok Server Revision. This is up to you. The options below are available
to you:
eAthena (No Third Jobs Currently):
SVN Repository: http://eathena-project.googlecode.com/svn/trunk/
SVN Changes: http://code.google.com/p/eathena-project/source/list
3CeAM (Old RO Mechanics - Has working Third Jobs):
SVN Repository: http://3ceam.googlecode.com/svn/trunk/
SVN Changes: http://code.google.com/p/3ceam/updates/list
ReAM (Renewal Mechanics Third Jobs Buggy but there are still updates going on):
SVN Repository: http://ream-project.googlecode.com/svn/
SVN Changes: http://code.google.com/p/ream-project/updates/list
rAthena (Starting Third Jobs/Renewal/Non-Renewal Mechanics) [Some bugs and still working on
implementing third jobs fully] || [May or may not support TXT in the future]
SVN Repository: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/
SVN Changes: http://sourceforge.net/apps/trac/rathena/timeline
Eidolon Package (Renewal Mechanics Has working Third Jobs|200 Customs (Optional) |Clean Src)
Paid: PM me on the forums (http://www.supportmii.com/board) or message me on Hotmail
([email protected])
Once you have chosen which svn to checkout, copy the SVN REPOSITORY link you have chosen and
create a new folder on your desktop and name it whatever you want. For this tutorial, I will just use
the default New Folder on my desktop and checkout eAthena. Right-click the newly created folder
and click svn checkout and hit ok. It will start to download the branch of the server you have
chosen. Once it finished press ok to close the window and now you have your server files inside
your newly created folder.
Lets switch gears and move over to the Client Side pre-requisites. You will need Ragray and install it
into a clean folder. Below are some alternatives to Ragray which will include everything you need for
a clean RO folder.
Ragray Renewal - http://ragray.net/
From the website, there are many alternatives to download Ragray. Either through Torrents or
Direct Download via Rapidshare/FileServe.
Once you have installed Ragray, patch fully by clicking on the ragray.exe.
ii)
Now, its time to install MYSQL Server and MYSQL GUI tools. These programs can be downloaded and
installed by the links below:
MYSQL SERVER - http://www.supportmii.com/ro1/tools/mysql-5.1.46-win32.msi
MYSQL GUI TOOLS - http://www.supportmii.com/ro1/tools/mysql-gui-tools-5.0-r17-
win32.msi
Now, we will install these packages to get it working with our server files.
Install MYSQL 5.1.46
Click Next
Click Typical
Click Next
Click Install
Choose Skip Sign-Up and click Next
Just enter the password you wish to use for root and MAKE SURE YOU REMEMBER IT!
Click Next
Just click the Execute button and when done, just click Finish.
Now Install MYSQL GUI TOOLS.
Click Next
Accept Terms and click Next
Click Next
Click Complete and click Next
Click Install
Click Finish
Now, start MYSQL Administrator and it will prompt a window
Fill in Host Name, Username, and Password
Leave the other fields blank
It should look like the following:
Stored Connection: (Just Leave Empty)
Server Host: localhost
Username: root
Password: (Enter the password we created for root | The one I said not to forget!)
Port: 3306
Note: These are default settings for easy setup which I will be using. If you wish to be a little
more secure, change these to different credentials and remember to change them since I will
be using ragnarok credentials for this entire guide.
When you are done, then just click Apply changes and exit MYSQL Administrator.
Start MYSQL Query Browser and it will prompt a window that looks like MYSQL Administrator
except there is a new field called Default Scheme. It should look like this:
Additional SQL Injections & (If encounter login issues and see weird stuff in the map console):
3CeAM | Additional Injections:
Item_db.sql
Item_db2.sql
mob_db.sql
mob_db2.sql
upgrade_svn14672.sql
upgrade_svn14700.sql
upgrade_svn14797.sql
3CeAM_svn320.sql
3CeAM_svn491.sql
3CeAM_svn506.sql
3CeAM_svn519.sql
3CeAM_svn_elemental.sql
3CeAM_svn_update_item_db2.sql
eAthena/ ReAM |Additonal Injections:
Item_db.sql
Item_db2.sql
mob_db.sql
mob_db2.sql
upgrade_svn14672.sql
upgrade_svn14700.sql
upgrade_svn14797.sql
Note: If you see an error, saying duplicated entry in the Query Browser then ignore it since that
means that the sql-file is already in the database.
Once that is done we will switch back to MYSQL Administrator
In the menu of Query Browser, click Tools>MYSQL Administrator
Go to User Administration and click the ragnarok user.
Now, go to Schema Privileges tab and click once on the ragnarok database/schema and click the <<
button and then click Apply changes. Do the same with the log database/schema.
We are now done setting MYSQL server and our database. We will now be configuring our ragnarok
server files to be able to connect to the MYSQL server. This is where we will need those credentials
for the user/pass and as well as the database/schema name, and also the login table credentials.
Head to the server files you checked out and double click on conf/map_athena.conf [Edit with
notepad]
map_athena.conf:
Now open char_athena.conf and we will do the same as we did for the map_athena
iii)
Compiling (Windows)
Below are some options for you to compile under Windows. Mainly I will be using Visual Studio
2010. I will not bother using cygwin to compile our server files.
Visual Studio 2010 Trial http://www.microsoft.com/visualstudio/en-us/try
Visual Studio 2010 Ultimate Unlocked http://www.mediafire.com/?x71bzq7dibfer
Once you have installed the whole package fully, restart your PC to finish the installing changes.
Once restarted, in your server files, click on solution file 10 and the solution will open in Visual
Studio 2010. However, if you use my special complete modified packages then use solution file 9 (In
this case, it isnt released unless I get some donations to host a vps for compiling test/stability.)
Visual Studio Compiling:
Open your solution file up with Visual Studio and follow the pictures.
[Right Click for the options]
iv)
There are different ways to diff your client for your server. First we must make sure you are using the
right client for your server. In your server files folder, navigate to src>common>mmo.h and open it in
visual studio 2010. You must have a client that corresponds with the packetver. Also for clientside
you must use lub settings that corresponds to your packetver as well. For simplicity, we will be using
client date 20110118. So in mmo.h make sure the packetver is set to 20110118 and recompile to
save your settings. Make sure in src>map>clif.h, the packet is also set at 26 as well and recompile.
Finally, make sure db>packet.db is set to 26.
NOTE: Any changes to source code src you must recompile with Visual Studio 2010.
The easiest tool to diff clients is to use Shinyos Diff Patcher.
Shinyo Diff Patcher http://www.eathena.ws/board/index.php?showtopic=269382&hl=
Checkout out the diff patcher by copying the link below:
https://subversion.assembla.com/svn/weetools/trunk/ShinsDiffPatcher/
The following patches are what I recommend for GRF/DATA type servers. Clients that are made must
be executed in a clean RO folder dedicated for your server ONLY to avoid any conflicts. Select Patch
It! When you are done adding your diffs to patch your client.
Type : [UI]
Group :
Name : Allow Chat Flood
Description : Allows you to repeat the same line n-times.
Value : 30
Note :
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Allow Multiple Windows
Description : Allows your to start more than one client at the same time.
Value :
Note :
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Always Call SelectKoreaClientInfo()
Description : Calls SelectKoreaClientInfo() always before SelectClientInfo() allowing you to use
features that would be only visible on korean service type.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Chat @-Bug
Description : Allows you to use the @ symbol without changing shortcuts.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Custom Window Title
Description : Changes the window title to a custom one.
Value : chronicdestiny.xlcnetwork.com - SupportMii
Note :
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Disable 1rag1 & 1sak1
Description : Allows you to start the client without 1rag1 & 1sak1 as command line parameters.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Disable Hallucination Wavy Screen
Description : Tells the client to ignore the wavy screen effect.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Disable HShield
Description : Prevents AhnLabs HackShield from beeing loaded during client start up.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Add]
Group :
Name : Disable Nagle Algorithm
Description : The Nagle Algorithm delays packet transfer by combining small packets into a large one
reducing bandwidth while increasing latency.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Disable RagexeRE Filename Check
Type : [Add]
Group :
Name : Enable DNS Support
Description : Allows the client to read fully-qualified host names inside the clientinfo xml file.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Data]
Group :
Name : Enable Multiple GRFs
Description : Tells the client to load grf files based on a list within data.ini.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Enable Title Bar Menu
Description : Changes the window style to display all buttons (minimize, maximize, close) and the
icon in the title bar.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Enforce Official Login Background
Description : Forces the client to use kRO login backgrounds on all langtypes.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Extended Chat Box
Description : Increases max input chars of main/battle chat box from 70 to 88.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Extended Chat Room Box
Description : Increases max input chars of chat room boxes from 70 to 88.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Extended PM Box
Description : Increases max input chars of PM boxes from 70 to 88.
Value :
Note :
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : HKLM to HKCU
Type : [UI]
Group :
Name : Increase Zoom Out 75%
Description : Allows you to zoom out 75% further from the ground.
Value :
Note :
PL Author : Shinryo
====================
Type : [Data]
Group :
Name : Load LUA Before LUB
Description : Allows you to load LUA files before LUB files are being loaded.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Only First Login Background
Description : Displays always the first login background.
Value :
Note :
PL Author : Shinryo
====================
Type : [Data]
Group :
Name : Read Data Folder First
Description : Attempts to read files inside the data folder prior to those in grf archives.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Data]
Group :
Name : Read msgstringtable.txt
Description : Allows you to read the message string table on all languages.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [Data]
Group :
Name : Read questid2display.txt
Description : Allows you to read the quest table on all languages.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Remove Gravity Ads
Description : Removes advertisements from the login interface.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Remove Gravity Logo
Description : Removes gravitys logo from the login interface.
Value :
Note :
PL Author : Shinryo
====================
Type : [Fix]
Group :
Name : Restore Login Window
Description : Tells the client to use the old login interface prior to Gravitys new token based login
system.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Skip License Screen
Description : Jumps directly to the login interface without displaying the license screen.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Skip Resurrection Buttons
Description : Skips the ressurection button whenever you die or use Token of Siegfried.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Skip Service Select
Description : Jumps directly to the login interface without asking to select a service.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Translate Client Into English
Description : Translates hardcoded text inside the client into english.
Value :
Note : Recommended
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Use Arial On All Langtypes
Description : Changes the default font to Arial on all language types.
Value :
Note :
PL Author : Shinryo
====================
Type : [UI]
Group :
Name : Use Ragnarok Icon
Description : Tells the client to use the default Ragnarok icon.
Value :
Note :
PL Author : Shinryo
Open the data folder and right-click and edit the clientinfo.xml
To test it out on your test server, leave the settings as it is. If you are putting your server online,
replace localhost/127.0.0.1 with your WAN IP. This will be discussed later in the guide.
For simplicity the correct lua files have been placed in the JUDAS AIO PACKAGE for the 20110118
client. Leaving files in lua format will be easier to test your customs and make changes easier. In
essence, it will work out of the box.
Latest Lua files can be accessed at the link below:
Latest Lua http://svn6.assembla.com/svn/ClientSide/Lua_Project/
Note: Lua Rev at the moment is 125, if any changes you must update it by checking out the branch as
we did before. But in this case copy the link above and create a new folder and check out using that
info!
v)
This section will focus on the settings you can make to customize your server. The first few changes
we will make will be in the source files so it will make things easier when we modify files outside
the src files. REMEMEBER ANY SRC CHANGES MEANS WE HAVE TO COMPILE USING VISUAL
STUDIO 2010.
The first src file we will edit is the mmo.h. Open the file in visual studio. mmo.h is located in server
files>src>common.
If you are using a default revision, you will find this
#define MAX_CHARS 9
This means that you will enable 9 available character slots that can be made by your players. You can
increase it to any amount of slots you want as long as it is a multiple of 3. For example,
9,12,15,18,21,24,27,30..
Input your value and save your changes.
Next,
#define MAX_STORAGE 600
#define MAX_GUILD_STORAGE 600
These values should ideally stay the same to avoid any overflow errors to your consoles. If you had
enabled 1000 storage/gstorage and reduced it you would lose your players items.
#define MAX_PARTY 12
Put in a value if you wish to increase the amount of people in the party.
#define MAX_FRIENDS 40
Put in a value if you wish to increase the amount of friends that you can make.
Now save.
Close mmo.h and open src>map>map.h
#define MAX_LEVEL 99
Change this value to 1000 so anytime you wish to change levels, you will only have to make changes
to the exp.txt file.
Note: In the db folder, make sure to rename the original exp.txt to exp_old.txt.
Rename exp2.txt to exp.txt.
This change will allow us to make level changes from 1-1000, so we can choose easier!
#define MAX_VENDING 12
Changing this value will allow you to vend more than 12 items if you wish.
Save changes and open src>map>pet.h
#define MAX_PET_DB
300
Change the value to 900 so if you wish to add any custom pets, you wont have console errors.
Save changes and open src>map>mob.h
#define MAX_MOB_DB 4000
Change this value to 10000, so any custom monsters, or mobs you add will still be able to be read by
the console/server.
Save changes. And we are done with source edits for now. So that means RECOMPILE YOUR SERVER
WITH VISUAL STUDIO 2010.
vi)
vii)
Usually splitting your image into 12 individual pieces can be confusing to new-comers, and even the
php file to extract it can also be confusing. So the tool below will be able to cut your login screen in
12 pieces with ease.
1024x768 Login Screen Splitter
http://www.supportmii.com/ro1/tools/ROLSG%5b1024x768%5d.exe
Note: Image must be 1024x768, usually better quality is when there is solid color and when you cut the
pieces, make sure you cut each time in all 4 settings, which will override any default Gravity Screens!
Additional Notes (If not yet specified):
Anyway load your JPG or any other format with this tool. The size should be exactly 1024768 for this to
work. Anyways, after it is loaded, hit Convert and select 1, and then you will see 12 parts of your
images sliced. Copy those files into the root of texture// folder and you will see your
custom login screen when you load up your client.
NOTE: Some users reported that if you dont use a solid color, the image will become distorted in such a
way that the image quality is loss. Also, make sure you diff your client with Only use First Login
Background and Enforce Official Login Background. If options are not available then the above saying
that cutting the 12 pieces under each option (1,2,3,4) will usually work as well
viii
Custom RO Icon
Note:This section includes a PDF and tools to create a new Icon image for your diffed client.
Custom RO Icon + Guide - http://www.supportmii.com/ro1/tools/RESHACKER%20-
%20ICON_BUI.7z
Custom RO Icon Images to Use
http://www.supportmii.com/ro1/tools/Custom%20Icons.7z
xi
This will show you how to add your GMs to the clientinfo to make them show up with GM clothes
and a Yellow Name/Chat.
Open up clientinfo.xml in the data folder with notepad
Then once finished, you should have a GM account, with GM clothes and Yellow Text. And at the
moment, there is no way to make a GM with yellow text without GM clothes.
Note: You must remember to distribute/patch this file so other players can see the GM changes.
Open up MYSQL Query Browser, and enter your credentials to access your ragnarok database
Double click ragnarok
Double click login table
Double click login table again to expand it into the Query Browser
Create a New Account by clicking the edit button
Right-Click on a new Row and click add Row
To make this account with GM powers/commands, click the edit button, and in the level column put
in the level you want. For example, put in 99 for all GM powers/commands. Click on save changes to
save your settings.
To make this account have GM clothes and Yellow text, remember/copy down the Account ID, which
in this case is the 25000000.
Now return to your clientinfo.xml and input the Account ID like show below.
Xi
Compiling GRF
This section will focus on compiling your own grf to work for your server. Ideally, your data folder
will be the one that will be turned into the GRF file. Below is a separate guide and tools to build your
own servers grf file.
Gryff Builder - http://www.supportmii.com/ro1/tools/gryff.7z
Gryff PDF - http://www.supportmii.com/ro1/tools/Compile%20GRF.pdf
Usually to make changes to your GRF, one will have to patch in changes. This will be explained later
in the tutorial.
Xii
Usually a free webhost would work, but they are limited on how much space and bandwidth you can
take up. It causes eA boards and other people problems when you are using a free webhost which might
now support patching files. So for this guide, I will be using a cheap webhost to set up the patcher.
Webhost http://www.hostbig.com
Download Thor Patcher from the link below:
Thor Patcher - http://thor.aeomin.net/Thor_Patcher%5b2.6.1.66%5d.7z
Extract the contents somewhere on your PC. In my case, I created a folder called Thor, and extracted the
contents into that folder
For this guide, I will be using hostbig.com details to fill out the settings for the patcher to be able to
patch files to my grf.
After paying for hostbig.com, (I did the Exite Plan, and with registering the domain, the total cost is $22
without any addons)
After payment, after couple of hours, they will send you your webhosting information.
You want to scroll down to
#3 FTP Uploading your website
The client we will use to connect is Filezilla which can be downloaded below:
Filezilla Client - http://filezilla-project.org/download.php?type=client
Go ahead and download and install it.
After installing it, open the program up
Enter your credentials in Filezilla
Host: Host Address, Given in email
Username: Given in email
Password: Given in email
Once connected go to www shortcut
Create a new folder called thor
Now go back to your Thor folder with our patch utilities and navigate to Thor>Web
Edit plist.txt, and remove the two entries
Save and close the file.
Edit notice.html with notepad++ and edit to your liking
Save and close the file
StatusFile='test.dat'
DefaultGRF='mytest.grf'
ClientEXE='mytest.exe'
If you wish to add BGM when the user is patching then fine these lines
[Config:BGM]
Directory=
The Patcher and bgm folder you name has to be in the same directory as each other.
I will create a new folder on my desktop and call it bgmcust.
So it will look like this
[Config:BGM]
Directory='bgmcust'
The format of the bgms you use have to be mp3 format
Find
Title='Thor Patcher'
Change it to the title of your server
Title='Making a Thor Patcher'
Finally, find
URL='http://127.0.0.1/opatch/Notice.html'
We are done for the most part, once you packed your config file test out the Patcher.
Xiii
You must have changes ready to make a patch. So for example, I created a document called test.txt
Note: That when you add files to make patches, they must be in the right structure where you want to
update your files. Since this is just a test document when we patch it into our grf, it will just go into the
root of our grf. So to make it clearer, if we wanted to added textures, they would have to go in our data
folder in the structure data\texture\ \
Now, in the Thor folder we made with all the contents of the package, navigate to Thor>Tools>Thor
Generator.exe
Under Output, click select, and enter an output filename for your patch.
For this guide, I will call my output filename testing.
It will have an automatic extension of .thor
So the complete output filename is testing.thor
In the box, where it says File, change it to RO-GRF
In the type in box, enter the name of your servers GRF
So if my servers grf was called Judas
In the type in box, I would put Judas.grf
Close it, and filezilla will ask you to save the file, so please do.
You are now done! You have uploaded and made your first patch file!
Test it out by starting your Patcher.
If the patch doesnt work it may be because the file we used is just too trivial.
Xiv
We will be using the same webhost to install FluxCP. You can download the Flux CP files here
Flux CP - http://code.google.com/p/fluxcp/downloads/detail?name=fluxcp-1.0.0.962.rar&can=2&q=
Create a new directory called cp in your ftp
www shortcut>cp
Drag the contents of the FluxCP archive into this directory
=> 'localhost',
=> 'http://supportmii.com',
=> '',
=> '/cp',
These settings are good for now, we can update it anytime we want by just making changes and when
asked to update just press update via the CP installer.
Now save the file and close it
Drag the file back into the cp>config folder and say yes to overwrite when asked
Now we have to drag cp>config>servers.php onto our desktop
Open the file with notepad++
Find: 'ServerName'
To: 'ServerName'
=> 'FluxRO',
=> 'SupportMiiRO',
We will now setup the rest of the file using our cpanel info
This information again is #2 Master Account information
IP Address, Username, and Password
Now before doing this, go back to your cpanel and go under the Databases
Select MySQL Databases
I will now create a new database called ragnarok in this case the prefix is support_ragnarok
Click create database
Once done, go back to cpanel and go under the Databases and Select phpMyAdmin
It will open a new page
http://supportmii.com/cp
Which will bring up the installation page
Click on All Privileges, and hit make changes to save it. Now, go back and edit the servers.php
Go back to these settings: (Use localhost instead of your domain ip)
Username would be the user you created
Password would be the password for the user you created
Database would be the database we created in mysql database
'Hostname' => 'localhost',
'Username' => 'supportm_root',
'Password' => 'root',
'Database' => 'supportm_ragnarok',
Do the same below.
Like so:
The rest is self-explainatory You can edit the message by going to that directory in our filezilla, and
opening it via notepad++ to change it.
If any of the tabs error, it means you didnt execute the needed sql-files like item_db/mob_db sql files.
You will notice the Whos Online you will have to change the settings in servers.php to show online when
the server is online. You would replace it with your servers IP
// Login server configuration.
'Address' => 'localhost',
'CharServer' => array(
'Address' => '127.0.0.1',
'MapServer' => array(
'Address' => '127.0.0.1',
So again, you would replace the 127.0.0.1 with the WAN ip or the vps ip. Once done, when the server is
online it will show green.
If when you put in your vps ip and it is offline, then check with your webhost to see if the necessary ports
are open5121,6121,6900
If hosting from home, and using the webhost as a database for mysql/cp, then forward ports by going to
http://portforward.com/english/routers/port_forwarding/routerindex.htm
Select your routerselect the game, and follow directions
Brand such as Linux, netgearetc
Find:
// Can you use _M/_F to make new accounts on the server?
new_account: yes
Change To:
new_account: no
You should be all set, being able to register from the control panel and refusing to register via _M/_F
Go back to your cPanel and select phpmyadmin, and select your ragnarok database
Scroll down and select login (left hand side)
You will see
Now, open up server files>conf>inter.athena.conf so we can input our credentials to connec to the mysql.
This is needed only if you decide not to host on a home based computer. Meaning your MYSQL is being
hosted on cPanel. So there are two ways using a webhost or using a webhost. Most preferably is using the
webhost. So dont get confused on the previous tutorial on setting mysql on homebase.
Find:
// Global SQL settings
Now change your configurations to look like the following: (replace with your values)
sql.db_hostname: domain ip given
sql.db_port: 3306
sql.db_username: userwecreated
sql.db_password: passforuserwecreated
sql.db_database: databasewecreated
sql.codepage:
Do the same for the two below since they are exactly the same
// MySQL Log SQL Database
log_db_ip: domain ip given
log_db_port: 3306
log_db_id: userwecreated
log_db_pw: passforuserwecreated
log_db_db: databasewecreated
log_codepage:
Xv
Xvi
Troubleshooting
Incompatible lua files, char info errors You must have lua files corresponding to
your client date, and not anything below it.
Setup.exe pops up You applied the HKLM to HKCU diff patchDownload the
patched setup.exe here (Rename it setup.exe) and overwrite the original
Xvii
http://www.supportmii.com/ro1/tools/Trans%20Job%20Custom%20Aura%20%20Demo.7z
3rd Job Custom Aura Demo -
http://www.supportmii.com/ro1/tools/3rd%20Job%20Custom%20Aura%20%20Demo.7z
Custom Aura PDF -
http://www.supportmii.com/ro1/tools/Add%20Custom%20Aura_BUI.pdf
Notes: ~ Forgot to mention that the emp shock.tga file is the one that shoots out of the aura and also
is used as the /aura ~
~ The 3rd Job Custom Aura by shadowe is in the Demo Package and is much cleaner than the
default one which was annoying~
~ More auras can be found in the graphic section on the eA boards~
Xviii
~Below, is a guide that will show you the steps clearly, with pictures on how to add custom maps to your
server!
Adding Custom Maps PDF|Tools -
http://www.supportmii.com/ro1/tools/Add_Custom_Map_BUI.7z
Xix
For this section we will concentrate on adding custom items for RagRe the long way for now, so you
know how implementing customs in RagRE is like. Sometime in the future, I will incorporate a new
section for the easy way to add multiple customs fast. Remember, for this tutorial, we are dealing
with lua files, so there is no reason to compile into lub files.
Too make this guide to add customs easy, we will be using an example since its easier to learn with
examples!
Download the Custom item Example we will use to add to your server/client files below:
Custom Item Example - http://www.green-peach.com/download.php?file=Wings%20%20Fairy_Wings%20[ToZorMan]
The above link we will use to add just one item from the pack, since the rest are just recolors. The one
we will use for this guide will be Black_Fairy_Wings
Next, we will add the texture, item icon and collection icon into our client files.
Now navigate in our data folder to data>texture>
Create a new folder called item and another new folder called collection
So we should have directories for
data>texture>>item and
data>texture>>collection
Now, switch to our custom and copy the image from the collection folder into the collection folder in
our data folder, and do the same for the item
We are done with that, now go to the sprite folder again, data>sprite and create a new folder called
_Black_Fairy_Wings.spr
_Black_Fairy_Wings.act
into the data>sprite>>
And copy the
_Black_Fairy_Wings.spr
_Black_Fairy_Wings.act
into the data>sprite>>
Once done with that, we can finally start working on the text documents to add the custom in.
We will first edit the idnum2itemdesctable.txt located in the root of your data folder. This
document deals with adding descriptions for your custom item, when you right click your item
ingame, the description will show.
Now first, choose an ID you wish to give this custom item. I would recommend anything from
18000-30000.
For this guide, I will be using 18000 for the Black_Fairy_Wings
Go ahead and open the idnum2itemdesctable.txt file
And your custom will look like the following:
For this guide, we will just use standard descriptions, and leave out formatting of weight or color.
Also do the same for num2itemdesctable.txt. Meaning that it should look similar to the
idum2itemdesctable.txt file.
Close those two files, and open up, idnum2itemdisplaynametable.txt. This file deal with the name of
the item you wish to see ingame. For example, if I wish to give the ID 18000 the name Judas Rocks,
then I would put in Judas_Rocks, and in game the name of the wings would be called Judas Rocks.
Anyway, the syntax is ID#NAMEofITEM#
Save and close both those files, and open up our last text file to edit which is
idnum2itemresnametable.txt. This deals on how the custom items sprite is read by the client. So
this is VITAL to get this right.
Save both these files and close them. We are finish with editing these text files.
Next up, are the lua files. Navigate to data>lua files>datainfo
For this section, we will be using the lua files that came with the Renewal Data Folder
You can open lua files with notepad if you wish
However, I would recommend downloaded notepad++ to edit better because of the formatting
Notepad++ - http://download.tuxfamily.org/notepadplus/5.9/npp.5.9.Installer.exe
Open up, accname.lua and scroll to the end of the document
Copy the last entry and paste it so it will look like the following:
And now, we will substitute our custom in place of that like so:
Note: For this guide, I will use Custom view ID 1000, for precaution in case KRO catches up and we
lose that free ID space. In addition when you diff your client, you can specify how many custom view
ids you need, which I would recommend around 3000-4000.
Remember the view id for this custom which is 1000, you will need it when we add it to the
item_db2.txt file to add it to our server.
Save this file and close it.
Navigate to your server folder and go to server files>db and open item_db2.txt
Scroll to the bottom of the document and copy this line:
We will be using the Valkyrie Helm as a dummy entry for our custom:
Paste this line near the bottom of your item_db2.txt as follows
5171,Valkyrie_Helm,Valkyrie Helm,5,100000,,1000,,5,,1,0xFFFFFFFE,2,2,256,,0,1,225,{ bonus
bMdef,5; if(isequipped(2357,2421,2524)) bonus bAllStats,1; },{},{}
As you can see, we change the first entry to 18000 which was the ID we chose for this item. So if
you did @item 18000 ingame when you started your server of did @reloaditemdb you would get
the item.
Also the 1000 is our viewID, meaning that 1000 is the sprite view of the Black Fairy Wings that
we decided in the accessoryID.lua file.
Save this file and close it. We are done with adding our very first custom!
Start your server up, and see if it works!
You should now be comfortable on adding more custom items.
NOTE: From the Black Fairy Wings entry you can see a 1 before the 0xFFFFFFFE. That 1
represents the number of slots. So at the moment this custom has 1 slot. Changing it to 4 would mean
that the item will have 4 slots.
Also, to see the number of slots ingame, you will have to edit the itemcountslottable.txt and follow
the syntax. For example, to have 4 slots appear for this custom (You still have to define in the
item_db2.txt that the custom is capable of having 4 slots) the syntax would look like the following:
18000#4#
Save the file, and once you start your server, and client again, you will see 4 card slot shadows
available.
NOTE 2: The 256 in the custom item entry refers to the location of the custom item. Right now it is
set at Upper Headgear. You can replace this number with the following if you wish to have it
equipped on another location on your character:
512 = Middle Headgear
256 = Upper Headgear
1 = Lower Headgear
16 = Armor
2 = Weapon
32 = Shield
4 = Garment
64 = Footgear
8 = Accessory 1
128 = Accessory 2
Xx
For this section, we will be adding one custom mob. Once done, you should be able to add as many
custom mobs as you want.
We will be adding a Boss Monster from Trickster Online
Captain Skull - http://www.green-peach.com/download.php?file=Mob%20%20Captain_Skull%20[ToZorMan]
Once downloaded, extract it onto your Desktop
Delete the image called Mise en Bouche
Delete the folder called gif anime (We dont need that)
Delete the Card folder as well. (In this tutorial we wont focus on adding custom illustration of
cards)
Now we should have contents like this:
Save this file, and close both lua files. Navigate to your server files
Server files>db>mob_db2.txt
Scroll to the end of the document, and for this mob, we will be using the MVP Drake as a dummy in
place for our custom mob
1112,DRAKE,Drake,Drake,70,326666,0,28600,22880,1,1800,2100,20,35,85,80,49,75,79,50,10,12,1,1,
29,0x37B5,400,620,420,360,14300,10000,504,5000,719,500,0,0,1127,600,1125,950,1135,150,1128,
400,5019,350,985,3200,1189,100,0,0,0,0,4137,1
As you can see, the main thing that is VITAL is the first number which is the mobID sprite which we
decided in npcidentity.lua file. The Three names are which they are referred to. Usually it is set so
you can do @spawn better, or look up their info easily with @mi
// Monster Database
// Structure of Database :
ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,I
NT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,ExpPer,
MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id
,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop
8per,Drop9id,Drop9per,DropCardid,DropCardper
Xxi
For this guide, we will be adding a custom npc sprite, Agav Dead. Once completed with this section,
one will know how to add as much custom npcs.
Agav Dead NPC - http://www.green-peach.com/download.php?file=NPC_Agav_Dead%20[ToZorMan]
Extract the package onto your desktop.
In your data folder navigate to data>sprite>npc
Create the a new folder called npc if you dont have it
Once done, navigate to data>lua files>datainfo and open the jobname.lua file
Navigate to the bottom of the document and copy and paste the last entry onto the next row.
We will now substitute that entry for our Dead Agav npc sprite.
We will now substitute that entry for our Dead Agav npc sprite.
NOTE (From Ai4rei): There is only one catchYou cannot use IDs 126~400.
Also, you need to use an ID beyond the latest npc ID currently 568, before 700
Beware of putting sprites after 568, since KRO custom npcs may be released which will force you
too redo the lua files.
NOTE 2: You should now be able to use the npc, as well as @disguise into that NPCID you chose.
In this case @disguise 600 will disguise me into Agav Dead.
Xxii
We will be using an example, since after adding one custom weapon it should be easier to add as
many as you want!
Custom Weapon Example -
http://www.supportmii.com/ro1/tools/Custom%20Bow%20Archer.7z
We will also need referenceusing the sprite bible at ratemyserver
Sprite Bible Reference - http://ratemyserver.net/index.php?page=riot_bible_section§ion=6
So we are adding a custom weapon for the archer branch. I recommend the following diffs NOT to be
checked
Ignore Errors..(Think there are 3 of them or 2) [When you start your client ignore any errors, or
cancel when it says setup has changed.] What we want to look for is if we equip the weapon will
errors be reported when we try to attack.
AnywayExtract the contents onto your desktop
Now, we refer to the sprite bible site to look for the archer name.
__1710
* Refers to the archer name
Now that we know this, we need to find some free ids. Normally I look for entries
after the weapon type.
For example, open server files>db>item_db.txt
Search for // Bows
We see that 1749 hasnt been used yet. (I havent really tested out what happens if
you dont use a freeID outsite of the bow area)
Now, remember lets copy an entry to use as a dummy
We will use the ordinary bow
1701,Bow,Bow,4,1000,,500,15,,5,3,0x000A0848,7,2,34,1,4,1,11,{},{},{}
and add the entry
1749,Custom Bow, Custom Bow,4,1000,,500,15,,5,3,0x000A0848,7,2,34,1,4,1,11,{},{},{}
*Just for people who dont know, by looking at this, it has 3 slots, only useable by archer branch
*To show slots remember to add it to the itemslotcounttable.txt in the syntax 1749#3#
Now that we have that, return to the Custom Bow Archer folder and lets rename our files.
Rename like shown, I created a new folder called item, because you cant have two files in the same
directory having the same name.
Now, navigate to your data folder, and add these entries into your text files
idnum2itemdesctable
idnum2itemdisplaynametable
idnum2itemresnametable
num2itemdesctable
num2itemdisplaynametable
num2itemresnametable
It will be mostly 1749#1749# for most of them.
For the displaynametable it would be 1749#NameYouWantOfWep#
Once done editing all those files, save and close them
Now navigate to texture>>item and paste the 1749.bmp into that folder
Now navigate to texture>>collection and paste the 1749.bmp into that folder
Now navigate to data>sprite> and drag the the two drop files 1749.act/spr into it
Now navigate to data>sprite>
Remember from the sprite bible:
Directory: /data/sprite//
Archer weapons
Meaning we create a new folder called
Now, go inside the folder, and drag the female and male sprites inside
We are now done adding your first custom weapon for archer. Go ingame and test it out
@item 1749. Remember you must be an archer branch to use these items.
Make sure the sprite/collection/drop sprite/item is working correctly.
Email me if you have any problems with the guide.
Xxiii
For reference, it should look similar to what the default mob_db.txt file in the Pet Creator folder looks
like.
For this guide, we will be implementing only the custom mob we created in the previous
sectionCaptain Skull
So the copy of the mob_db2.txt should look like this
Rename mob_db2 Copy.txt to mob_db.txt and copy and paste it and overwrite the file in the Pet
Creator
Now open up Pet Creator.exe
NOTE: THE FOLLOWING IMAGES SHOULD HAVE CREATE PATCH TICKED
Under Tools click Load Mob Db and select the mob_db in your Pet Creator that we overwrited
For this guide I will start Tame ID at 25000 and start Egg ID at 26000
Now go to the New Pets folder that the documents were exported to.
Open up eggs_db.txt
Add the entry inside our item_db2.txt file (server files>db>item_db2.txt)
Navigate to the bottom of the file and paste the entry inside the eggs_db.txt into the item_db2.txt file.
Open up tames_db.txt
Add the entry inside our item_db2.txt file (server files>db>item_db2.txt)
Navigate to the bottom of the file and paste the entry inside the tamess_db.txt into the item_db2.txt
file.
However, looking at the others, you must add an extra ,{} to complete the syntax.
It will look like the following:
Custom Eggs: ##
Custom Tames: ##
Paste these lines for each incorrect entry in these text files below:
idnum2itemresnametable.txt
num2itemresnametable.txt
Now, you are able to add as many custom pets as you want as long as its within 900 which was
defined in the src>pet.h.
NOTE: To change attributes for the pet, look in server files>db>pet_db.txt.
Near the top, you will see the syntax for what each entry in the column affects.
Pets are also affected by the server files>conf>battle>pet.conf file.
In there, you can change how the pet behaves, like is it able to attack without an item equipped ot the
pet.
Xiv
For this tutorial, we will be adding a simple source mod. This source mod will be @identifyall.
Usually its easier to just apply tortoisesvn to apply the diff. But here, I will show how to manually
add it so you know what you are doing. Open atcommand.c since that is the file that the code will be
placed in since it says
Index: src/map/atcommand.c
Index: src/map/atcommand.c
===================================================================
--- src/map/atcommand.c (revision 14676)
+++ src/map/atcommand.c (working copy)
@@ -8609,7 +8609,29 @@
return 0;
}
+//Identifies all items [Heaven]
+ACMD_FUNC(identifyall)
+{
+ int i,indentify;
+ struct item it;
+ nullpo_retr(-1,sd);
+
+ for(i=indentify=0;i < MAX_INVENTORY;i++){
+
if(!sd->status.inventory[i].identify && sd->status.inventory[i].nameid){
+
memset(&it,0,sizeof(it));
+
it=sd->status.inventory[i];
+
pc_delitem(sd,i,it.amount,0,0);
+
it.identify=1;
+
pc_additem(sd,&it,it.amount);
+
indentify++;
+
}
+ }
+ clif_displaymessage(fd,(indentify) ? "All items was identified" : "Any item was identified");
+ return 0;
+}
+
+
/*==========================================
* atcommand_info[] structure definition
*------------------------------------------*/
@@ -8914,6 +8936,8 @@
{ "delitem",
60,60, atcommand_delitem },
{ "charcommands",
1,1, atcommand_commands },
{ "font",
1,1, atcommand_font },
+// Heaven MODs
+ { "identifyall",
1,60, atcommand_identifyall },
};
When you open a .diff file or see syntax that looks like this, usually you want to look at which lines
are added, or which lines are removed if any.
- Means that the line will be deleted
+ Means that the line will be added
For @identifyall, this part:
nullpo_retr(-1,sd);
for(i=indentify=0;i < MAX_INVENTORY;i++){
if(!sd->status.inventory[i].identify && sd->status.inventory[i].nameid){
memset(&it,0,sizeof(it));
it=sd->status.inventory[i];
pc_delitem(sd,i,it.amount,0,0);
it.identify=1;
pc_additem(sd,&it,it.amount);
indentify++;
}
}
clif_displaymessage(fd,(indentify) ? "All items was identified" : "Any item was identified");
return 0;
We would want to find a line that has similar syntax, with ACMD_FUNC(x), where x is a command like
storage/go
For this guide, we will add the source mod under storage code in atcommand.c
So search for:
ACMD_FUNC(storage)
And we will paste the source mod after:
return 0;
}
To paste these lines without error into the visual studio 2010, you must remove the + for each line
The end result should look like this. I included the storage part just for reference
40,40,
atcommand_mapmove },
We are now done. So make sure to recompile using visual studio 2010.
Next, add the command into server files>conf>atcommand_athena.conf
The command was match atcommand_identifyall
It will look like the following:
Meaning that, the commands are usable only with people with a Level 1 Gm account, and Level 99 gm
account is able to use #identifyall on a person if they wish.
So this should explain a little bit on how to add a custom diff with source code into your source files
and server.
Xv
If you downloaded the data folder, you will have complete hair style and palette pack working for all
classes. You just need to enable it.
Go to your server files>conf>battle>client.conf
Find:
Xvi
<image>Loading04.jpg</image>
<image>Loading05.jpg</image>
<image>Loading06.jpg</image>
<image>Loading07.jpg</image>
<image>Loading08.jpg</image>
<image>Loading09.jpg</image>
<image>Loading10.jpg</image>
<image>Loading11.jpg</image>
<image>Loading12.jpg</image>
<image>Loading13.jpg</image>
<image>Loading14.jpg</image>
<image>Loading15.jpg</image>
<image>Loading16.jpg</image>
<image>Loading17.jpg</image>
<image>Loading18.jpg</image>
<image>Loading19.jpg</image>
<image>Loading20.jpg</image>
<image>Loading21.jpg</image>
<image>Loading22.jpg</image>
<image>Loading23.jpg</image>
<image>Loading24.jpg</image>
<image>Loading25.jpg</image>
<image>Loading26.jpg</image>
<image>Loading27.jpg</image>
<image>Loading28.jpg</image>
<image>Loading29.jpg</image>
</loading>
<aid>
<admin></admin>
</aid>
</connection>
</clientinfo>