Make your (offline) RO server in more than 5 hours - pun intended
Hercules Link
This Guide is intended for - Windows users
windows sux, but 90% of the community still using windows, so I am targeting the majority of the members here - You want to contribute something back to the community
if you just want to have fun by yourself, of course it's fine to use that 5 minute instant noodle guide
BUT if you want to contribute to the community, you have to use LATEST server and software available
... which makes this guide outdated very fast
Prelude: Determine your Windows Operating System type a. Windows Key -> Right Click on My Computer -> Select Properties https://github.com/AnnieRuru/customs/blob/master/server setup/prelude-1.png
b. Determine your Operating System type
I'm using Windows 7 Ultimate 64-bit system https://github.com/AnnieRuru/customs/blob/master/server setup/prelude-2.png
1c. Create 2 new folders
1 for Hercules, 1 for rAthena
Right-click -> TortoiseGit -> Clone https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1c.png
1d. Download git 2.20.1
you'll get this warning message https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1d.png
Open Git for Windows Website, Download it
next... next... next.. next... next.. next.. Install !!!
1e. Reposition git.exe
This time go to TortoiseGit -> Settings https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1e.png
General tab -> Git.exe path https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1e2.png
C:\Program Files\Git\bin
1f. Download Hercules and rAthena
Right Click on the folder, TortoiseGit -> Clone https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1f.png
https://github.com/HerculesWS/Hercules
https://github.com/rathena/rathena
Problems might encounter during Step 1c,
when it ask for a git.exe, you have to go to that git for windows site, and download that thing
Problems might encounter during Step 1e,
sometimes even though you have already install git2.20.1.exe, but it still couldn't find the git.exe file
to solve it, Right-click -> TortoiseGit -> Settings, you get a warning, Click Ignore, then follow Step 1e
Step 2: Download and Install Microsoft Visual Studio 2017
Step 2a. Download Microsoft Visual Studio https://visualstudio.microsoft.com/downloads/ https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2a.png
Step 2c. Click Install Visual Studio Community 2017 https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2c.png
Step 2d. Load Hercules Project
Double click Hercules-15.sln https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2d.png
it says missing Windows 10 SDK 10.0.15063 ...
Step 2e. Install individual component
you can either let Visual Studio do its magic, or ...
manually go to visual studio downloader ... click modify https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2e.png
then select the component to install manually https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2e2.png
Step 2f. Load rAthena Project
Do the same thing by double clicking rAthena.sln,
but this time rAthena project needs Windows 8.1 SDK and Windows Universal CRT SDK
Both emulator has been compiled
Problems might encounter during Step 2c
if using Windows 7/8, after the download is complete, it install a windows update that might crash all the programs in your operating system
this Parasite MUST be remove !!
To do this, go to Control Panel -> Program and Features https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2g.png
Click View Install Update tab https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2g1.png
then find KB2882822 and remove this parasite from your computer immediately before restarting your computer https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2g2.png
IF you are the unlucky soul and you can't start any .exe file .... there's still a fix
Restart the computer in Safe Mode ...
many answer around the Internet tells you to press F8 when Windows Logo shows up, but this doesn't work for me, I have USB keyboard
so I found another method ... run System Configuration https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2h.png
Select the [Boot] tab, then select Safe Mode. https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2h2.png
this will make your windows always restart in safe mode until you turn it off
then follow the above process, uninstall that windows update, deselect safe mode, restart computer again, now it should be back to normal
Problems might encounter during Step 2f
During compiling, if you see this in your Visual Studio
fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory
this means you are missing a component Windows Universal CRT SDK https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2f.png
Step 3: Download and Install MySQL 8.0
Step 3a: Download MySQL 8.0 https://dev.mysql.com/downloads/mysql/ https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3a.png https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3a2.png
actually, you can just click this -> https://dev.mysql.com/downloads/file/?id=480824
I have 64-bit operating system, but this 32-bit installer works fine for me
Step 3b. Install MySQL 8.0
Select Custom https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b1.png
We only need 2 products, MySQL 8.0 and MySQL Workbench https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b2.png
Ready to Install https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b3.png
next... next.. Execute !! next.. next.. next.. Account and Roles, type "1234" as password https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b4.png
click [Check]... next... next.. next... DONE !!
Step 3c. Run MySQL Workbench
Welcome to MySQL Workbench
Double click the icon -> Click Connect https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3c.png
Step 3d. Create a Schema
Right click at the left side of the window https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3d.png
and create a Database call Hercules. Remember change charset/collation to utf8 https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3d2.png
Step 3e. Install SQL Script for Hercules
Set Hercules as default Schema https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3e.png
load hercules/sql-files/main.sql file https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3e2.png
copy into Query field, then Press Execute button https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3e3.png
repeat the same process again for log.sql file
Step 3f. Install SQL Script for rAthena
Set rAthena as default Schema
install rAthena/sql-files/main.sql and the log.sql
Problems might encounter during Step 3e.
If you got a warning message that `ipbanlist` table creation failed, this has been reported -> hercules & rAthena
that's why now we can only use utf8 charset
Step 4: Connect MySQL to Hercules and rAthena
Step 4a. Connect Hercules to MySQL
Copy paste the import-tmpl folder, and rename it into import https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4a.png
then open each individual files and modify each one of them
conf/import/char_server.conf
char_configuration: {
// Server name, use alternative character such as ASCII 160 for spaces.
// NOTE: Do not use spaces or any of these characters which are not allowed in
// Windows filenames \/:*?"<>|
// ... or else guild emblems won't work client-side!
server_name: "Hercules"
// Information related to inter-server behavior
inter: {
// Server Communication username and password.
userid: "qwer"
passwd: "asdf"
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: "127.0.0.1"
// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip: "127.0.0.1"
}
pincode: {
enabled: false
}
}
conf/import/map-server.conf
map_configuration: {
// Information related to inter-server behavior
inter: {
// Interserver communication passwords, set in the login server database
userid: "qwer"
passwd: "asdf"
// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip: "127.0.0.1"
// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: "127.0.0.1"
}
}
conf/global/sql_connections.conf
sql_connection: {
// [INTER] You can specify the codepage to use in your mySQL tables here.
// (Note that this feature requires MySQL 4.1+)
//default_codepage: ""
// [LOGIN] Is `userid` in account_db case sensitive?
//case_sensitive: false
// For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1.
// Under windows, you want to use 127.0.0.1. If you see a message like
// "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
// and you have localhost, switch it to 127.0.0.1
db_hostname: "127.0.0.1"
db_port: 3306
db_username: "root"
db_password: "1234"
db_database: "hercules"
//codepage:""
}
Step 4b. Change s1/p1 inter server connection password
since hercules server hates you for using s1/p1, I change it into qwer/asdf then
Here's how to do it ... Open MySQL Workbench, double click your current running MySQL connection
Type "SELECT * FROM `login`;" , edit the field s1/p1, then click [Apply] https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4b2.png https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4b3.png
Step 4c. connect rAthena to MySQL
Copy paste the import-tmpl folder, and rename it into import
then open each individual files and modify each one of them
conf/import/char-conf.txt
// Server name, use alternative character such as ASCII 160 for spaces.
// NOTE: Do not use spaces or any of these characters which are not allowed in
// Windows filenames \/:*?"<>|
// ... or else guild emblems won't work client-side!
server_name: rAthena
// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
login_ip: 127.0.0.1
// The character server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
bind_ip: 127.0.0.1
// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
char_ip: 127.0.0.1
// NOTE: Requires client 2011-03-09aragexeRE or newer.
// A window is opened before you can select your character and you will have to enter a pincode by using only your mouse.
// Default: yes
pincode_enabled: no
conf/import/inter-conf.txt
// MySQL Login server
login_server_ip: 127.0.0.1
login_server_port: 3306
login_server_id: root
login_server_pw: 1234
login_server_db: rathena
login_codepage:
login_case_sensitive: no
ipban_db_ip: 127.0.0.1
ipban_db_port: 3306
ipban_db_id: root
ipban_db_pw: 1234
ipban_db_db: rathena
ipban_codepage:
// MySQL Character server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: root
char_server_pw: 1234
char_server_db: rathena
// MySQL Map Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: root
map_server_pw: 1234
map_server_db: rathena
// MySQL Log Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: root
log_db_pw: 1234
log_db_db: rathena
log_codepage:
log_login_db: loginlog
conf/import/login_conf.txt
// The login server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
bind_ip: 127.0.0.1
conf/import/map_conf.txt
// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
char_ip: 127.0.0.1
// The map server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
bind_ip: 127.0.0.1
// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
map_ip: 127.0.0.1
Note: you can do the same for rAthena, change s1/p1 into qwer/asdf. rAthena doesn't *BEEP* when you use s1/p1 though
simply add this line in both conf/import/char-conf.txt and conf/import/map_conf.txt then change it in MySQL Workbench
// Server Communication username and password.
userid: s1
passwd: p1
Read Also: What is Import folder, just scroll down to the bottom and read it
Before going into next step, I want to stress enough and make sure you can get your server to connect to MySQL
so try running run-server.bat to connect your hercules --OR-- rathena server to MySQL https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4.5.png
if you can't do it right, Open a New Topic in General Server Support
problem might encounter during this step
[SQL]: Client does not support authentication protocol requested by server; consider upgrading MySQL client
This happens if you have previous version of MySQL installed on your computer, and upgrade into MySQL 8.0
to fix this issue, run MySQL command line Client from start menu https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4.5a.png
then run these 2 commands seperately
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
FLUSH PRIVILEGES;
https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4.5b.png
5. Download latest KRO Client and client translation files
Step 5a. Download latest KRO from http://herc.ws/board/topic/15592-collection-official-full-clients-latest-kro/ https://rathena.org/board/topic/106413-kro-full-client-2018-08-13-includes-bgm-rsu/ <-- I pick this
// ========== THIS PART IS CONTROVERSIAL ===== BUT IT WORKS FOR ME ========
Step 5b. Create another 2 folders
let's name it Asheraf and zackdreaver ... the author of making client translation https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5b.png
then download their translation files by git clone them
https://github.com/Asheraf/Translation
https://github.com/zackdreaver/ROenglishRE
Step 5c. Download GRF Editor http://www.mediafire.com/file/aflylbhblrzpz0h/GRF+Editor+v1.8.2.7.zip <-- author forgot to update in that topic, mediafire link is latest one
Step 5e. Open GRF Editor file
Navigate to the directory \GRF Editor Sources v1.8.2.7\GRF Editor\GRFEditor\bin\Release and open GRF Editor.exe https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5e.png
I also wondering why the author makes the execution files hide so deep inside
Step 5f. Drag the data folder from Asheraf client translation to new.grf https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5f.png
then save it as Asheraf.grf https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5f2.png
Step 5g. Repeat the process for zackdreaver translation
Close Grf. New -> Grf, Drag the data folder from zackdreaver/Ragnarok/data to new.grf, then save it as zackdreaver.grf
Now you have learn how to pack your own grf. You should have 2 new grf in client folder
Step 5h. open data.ini in your ragnarok client and edit DATA.INI https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5h.png
[Data]
1=Asheraf.grf
2=zackdreaver.grf
3=rdata.grf
4=data.grf
Step 5i. Replace Asheraf/system folder into client/system folder https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5i.png
// ========== CONTROVERSIAL PART ENDS HERE ===== I'm sure many client experts having your doubts why I do like this ========
A lot of problems can appear in this step, these problems also recent and changes with every client
6. Create your own patch client
Step 6a. Download latest nemo
create another folder name nemo https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6a.png
then git clone from this site
https://gitlab.com/4144/Nemo
Step 6b. Find a suitable client patches http://nemo.herc.ws/downloads/
Since I download KRO 20180813, I chose 2018-06-20eRagexeRe
Step 6c. Open nemo.exe
Click Browse to select your downloaded client patch, then select Load Client https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6c.png
Step 6d. Use Recommend Settings https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d.png
1. forget the "Always call SelectKoreaClientInfo" error https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d1.png
2. DATA.INI
3. system/itemInfo_Sak.lub <--- note: the Capital letter of Info_Sak ... nemo doesn't auto-detect capital letters https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d3.png
4. Always Load Korea ExternalSetting lua files https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d4.png
5. Read Data Folder first https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d5.png
6. Apply Selected
Step 6e. Copy 2018-06-20eRagexeRE_patched.exe to the KRO client folder
By this step, you should be able to load your own hexed client without throwing any error https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6.5.png
if you having problem in this Step 5 & 6, Open a New Topic in Client Support
rAthena -> src\config\packets.hpp <--- original directory, don't edit here
src\custom\defines_pre.hpp https://github.com/AnnieRuru/customs/blob/master/server setup/Step 7b.png
Then Compile for a Final time
After thought, there are still some minor annoyance and adjustment
client/data/msgstringtable.txt (unpack it or just put at client/data/ folder)
line 3262
Smooth#
line 3458
There was an error when loading the data account settings. (Please restart to retry.)#
change them into just a #
=General
*Added the "hesperuslit_bonus_stack" config.
+This sets if the effect bonuses requires a banding count to be equal or be
-equal to or higher then the effect number.
*party_sub_count_banding
*skill_banding_count
+Added these functions.
+These functions calculate the banding count for the number of Royal Guards in
-banding around the caster, as well as the average HP of the banding group, sets
-the HP for each banding player, and maxes out the rage spheres for those in
-banding with force of vanguard active when requirements are met.
*Made the code for chorus count checks more efficent.
=Database
*Corrected the max level for CG_MOONLIT in the skill database.
=Skills
*Chorus Skills
+The chorus count check is now limited to counting Minstrel's/Wanderer's that are
-within a 31x31 AoE around the player casting a chorus skill.
*LG_BANDING
+Recoded the skill.
+The AoE's of each Royal Guard now work seprate from each other.
+The main 7x7 AoE that moves around with the caster now only affects enemies and
-gives the status that reduces movement speed. The status is removed if the enemy
-moves out of the AoE or the AoE vanishes. This AoE doesn't require banding with
-other's to make it work. It will work for a player alone.
+A 2nd AoE is now used with the skill which generates a 7x7 splash AoE around the
-caster every 5 seconds to check for other Royal Guards near the player that are
-also in banding status and are in the same party. This is when the stored banding
-count is updated, along with the caster's ATK/DEF and also calculates the HP share.
*LG_HESPERUSLIT
+Fixed a issue where the element didn't turn to holy when banding requirement's were met.
+Now maxes out the rage sphere's for all in banding when the banding count is 7.
+Bonus effects no longer stack.
January Digest 2018
The following digest covers the month of January 1st - January 31st 2018
Team Changes
None
Development Highlights
Added support for the AllowReproduce flag in the skill DB. This supersedes the skill_reproduce_db. (#1943)
Added support for the ZC_PROGRESS_ACTOR packet. The packet is exposed to the script engine through the progressbar_unit() command (available on PACKETVER 20130821 and newer). (#1929)
Added support for the new item drop packet for the Zero clients. The packet is controlled by the ShowDropEffect and DropEffectMode item DB flags and ignored by non-Zero clients. (#1939)
Added support for the new Map Server Change packet 0x0ac7. (part of #1948)
Developmental Changes
Removed the skill_reproduce_db, now superseded by the AllowReproduce skill flag. (part of #1943)
Always enabled assertions and null pointer checks. In order to disable them (very discouraged, as it may lead to security issues), it is now necessary to edit nullpo.h. (#1937)
Disabled the address sanitizer's memory leak detector in the travis builds, since it produced failures in third libraries. (#1949, #1952)
Applied script standardization to the Nydhogg's Nest instance script. (#1871)
Split packet_keys.h into separate files for main clients and zero clients. (part of #1948)
Split packets_shuffle.h into separate files for main clients and zero clients. (part of #1948)
Replaced the custom bank unavailable error message with the actual bank check error packet. (part of #1948)
Updated and corrected the party member and party info packets. (part of #1948)
Updated README.md with more relevant badges and links (added Discord, removed Waffle, added more GitHub information). (#1951)
Bug Splat Fixes
Updated Xcode project to include the RODEX related files. (#1942)
Fixed RODEX loading mails when it requires multiple packets. (#1945, issue #1933)
December Digest 2017
The following digest covers the month of December 1st - December 31st 2017
Team Changes
None
Development Highlights
Implemented Homunculus Autofeeding, available on the 2017 clients. The feature can be disabled by flipping features.enable_homun_autofeed in feature.conf. (#1898)
Added support for the newly released Ragnarok Zero clients. The client type is controlled with the --enable-packetver-zero configure-time flag (disabled by default). (#1923)
Developmental Changes
Applied script standardization to the Old Glast Heim instance script. (#1883)
Split packets.h into two files: packets.h and packets_shuffle.h. (part of #1923)
Bug Splat Fixes
Corrected a wrong path displayed in an error message pointing to the map-server configuration. (#1913)
Fixed the natural expiration of the Poison status when under the effect of Slow Poison. (#1925)
November Digest 2017
The following digest covers the month of November 1st - November 30th 2017
Team Changes
None
Development Highlights
Added several missing members to the login interface. (Part of #1891)
Added support for colored character server population counter in the service selection list. Configurable through users_count in login-server.conf. (#1891)
Added top-level command miniboss_monster to label monsters as minibosses, and to send them as such to the client. (part of #1889)
Added support for 2017-10-25 - 2017-11-01 clients. (#1889)
Added support to display NPCs with player classes, including equipment and styles (best with clients starting from 20170726). This extends getunitdata() and setunitdata() with support for UDT_SEX, UDT_HAIRSTYLE, UDT_HAIRCOLOR, UDT_HEADBOTTOM, UDT_HEADMIDDLE, UDT_HEADTOP, UDT_CLOTHCOLOR, UDT_SHIELD, UDT_WEAPON, UDT_ROBE, UDT_BODY2. (#1893)
Added type constants for the getiteminfo() and setiteminfo() script commands. Existing third party code must be updated to use the new constants (see the pull request description and the command documentation for details). (#1902)
Added global function F_GetAmmoType(), counterpart to F_GetWeaponType() for ammunitions. Both functions have now been updated to only check the subtype if the item type is correct (IT_AMMO and IT_WEAPON respectively). (part of #1902)
Added support for the Skill Scale packet, available in client versions 20151223 and newer. (#1903)
Developmental Changes
The use of numeric type constants with getiteminfo() and setiteminfo() is deprecated. For technical reasons, no deprecation notice is displayed. (part of #1902)
The MAX_SKILL constant has been removed, in favor of the more clear MAX_SKILL_DB, to be used in all places that use the compacted Skill DB array. For use with the non-compacted clientside Skill IDs, the MAX_SKILL_ID constant is still available. (part of #1896)
Applied script standardization to the Octopus Cave instance script. (#1882)
Applied script standardization to the Ghost Palace instance script. (#1879)
Applied script standardization to the Sara's Memory instance script. (#1884)
Extended the script command setequipoption() with the possibility to remove item options from an equipment piece. (#1865)
Updated the QTYPE_* constants (questinfo(), showevent()) to support the new 2017 client icons. (#1894)
Applied script standardization to the Orc's Memory instance script. (#1872)
Applied script standardization to the Sealed Shrine instance script. (#1873)
Extended the global function F_GetArmorType() to support costumes and shadow equipment. (#1836)
Extended the script commands has_instance() and has_instance2() with suport to search instances of type IOT_NONE. (#1397)
Applied script standardization and improvements to the Endless Tower instance script. (#1862)
Cleared some confusion between skill IDs and indexes through the codebase. Rewritten Skill DB accessors in a safer, more readable way. (part of #1896)
Bug Splat Fixes
Fixed compilation warnings when compiling with gcc-7. (#1887)
Fixed the display flag for monsters labeled as boss_monster to be that of MVP monsters instead of miniboss monsters. (part of #1889)
Fixed a subtle error in case skill->unit_group_newid overflows, causing certain skill unit entries to get stuck and never get deleted correctly. This can manifest itself with some monster spawns becoming immune to certain AoE spells having the UF_NOOVERLAP flag (Storm Gust, Lord of Vermillion, etc). (#1896)
Implemented MATK support in the getiteminfo() and setiteminfo(). This functionality was previously advertised as availble in the command documentation, but was not implemented. (part of #1902)
Restored View Sprite support in the getiteminfo() and setiteminfo(). This functionality was lost with #1828. (part of #1902, issue #1895)
Reimplemented the global function F_GetArmorType() to reflect the fact that ITEMINFO_LOC returns a bitmask. The function now handles multi-slot headgears and other uncommon cases better. (part of #1902)
Corrected some incorrect data types passed to the SQL StmtBind functions, causing query errors and data loss. Said functions will now have a runtime assertion to ensure the right data type is passed. Third party code needs to be updated to reflect this stricter requirement. (#1901, issue #1531)
Corrected some RODEX related queries in case MAX_SLOTS or MAX_ITEM_OPTIONS are set to custom values. (part of #1901)
Suppressed assertions in the Skill DB accessors when called with skill_id = 0 (normal attacks). (#1910, issue #1909)
Fixed an item loading failure in RODEX. (#1917, issue #1912)
Fixed invisible NPCs (such as FAKE_NPC) being displayed as novices. (#1918, issue #1916)
October Digest 2017
The following digest covers the month of October 1st - October 31st 2017
Team Changes
None
Development Highlights
Added the script command getmapinfo(), which allows to obtain misc information about a map. (#1852)
Added an option to restrict party leader changes to characters on the same map. Controlled by the setting party_change_leader_same_map (defaults to true). (#1812)
Added initial support (shuffle packets, obfuscation keys) for clients 2017-09-27, 2017-10-02, 2017-10-11, 2017-10-18. (#1859)
Added the noautoloot mapflag, allowing to disable the @autoloot functionality on a map by map basis. (#1833)
Developmental Changes
Extended the script command logmes() with an option to log to the atcommandlog table. (#1843)
Updated RoDEX, with support for packetver 20170419 and newer. (#1859)
Updated Exp-related packets and handling functions to support values larger than 2 billions (as seen in packetver 20170830 and newer). (#1859)
Changed the diagnostic message in skill_init_unit_layout() to report the skill ID instead of its index. (#1854)
Bug Splat Fixes
Corrected the Kafra dialog in case a Doram without the Summoner's Basic Skill attempts to open the Storage. (#1864)
Changed the cell stack counting algorithm to ignore invisible NPCs, improving the Dancer Quest experience as well as other cases of hidden NPCs blocking off certain cells. (#1827)
Improved the handling of the cardfix value to make it more resistant to overflows, especially in renewal mode. Simplified the related renewal/pre-renewal conditional code. (#1825)
Fixed some compilation warnings occurring in VS2017. (#1870)
Fixed a wrong null pointer check in logmes(), which caused the command to never log and instead print debug information.
This topic about Nemo fork https://gitlab.com/4144/Nemo
Most changes present in ChangeLog
Patches reports service: http://nemo.herc.ws
For test Ragnarok zero clients need:
this nemo fork and enable at least patches from https://gitlab.com/4144/Nemo/blob/master/profiles/zero_minimal.log
this or similar clientinfo.xml https://gitlab.com/4144/Nemo/blob/master/configs/zero/clientinfo.xml
From 2018-11-14 in all clients must be enabled patch Remove hard coded address/port
For clients newer than 2018-03-09:
Need manually copy cdclient.dll from Nemo/input or enable patch "Copy patched Cheat Defender Game Guard"
Clients exe downloads: http://nemo.herc.ws/downloads/
Full client downloads: http://nemo.herc.ws/downloads/#downloadable-full-clients
=General
*Added the "shieldball"command.
+It allows you to summon Rune Knight's millennium shield's shield spheres and
-set the amount of HP for them.
*Millennium shield now manages its shields in its own unqie sphere system.
+They are refered to as shieldball and are handled this way since this is how its
-officially handled and allows better handling of its animation packets. Tho it
-still needs a server side status ID to signal when its active.
*Added the "millennium_shield_health" config to the skill config file.
=Skills
*RK_MILLENNIUMSHIELD
+Recoded the skill.
+Kyrie, Parry, and Auto Guard now take higher priority over the shields.
*WM_GLOOMYDAY
+Recoded the skill.
+The FLEE/ASPD reductions now apply to all targets no matter what skills are learned.
+Now has a small chance of giving the super gloomy status.
-The super gloomy status reduces movement speed by 50% and dismounts the player
-from its peco/gryphin/dragon. Does not dismount player's from warg or mado.
+Now increase the damage of certain skills properly.
-The formula for how much the damage is increased and how its applied is now official.
Changelog:
- Updated all Clients
- Updated twRO BGMS (3 new ones)
NOTE: to disable the Snow effect in Prontera, open your grf and navigate to data/etcinfo.txt
Then add (or edit) the following:
weather#
//prontera.rsw#
//snow#
Collection of official Full Clients. Those are vanilla, not modified in any way or whatever. They are patched up to date. Let me know if I've missed something.
Server Name
With BGM
Without BGM
BGM only
South Korea (kRO)
21. Dec. 2018
2,70 GB Mega OneDrive
2,42 GB Mega OneDrive
294 MB Mega OneDrive
South Korea (Ragnarok Zero)
21. Dec. 2018
2,22 GB Mega OneDrive
Taiwan and Hongkong (twRO)
21. Dec. 2018
2,24 GB Mega OneDrive
1,95 GB Mega OneDrive
310 MB Mega OneDrive
Japan (jRO)
21. Dec. 2018
2,23 GB Mega OneDrive
1,93 GB Mega OneDrive
311 MB Mega OneDrive
Thailland (tRO)
21. Dec. 2018
1,67 GB Mega OneDrive
1,41 GB Mega OneDrive
272 MB Mega OneDrive
International (iRO)
21. Dec. 2018
2,42 GB Mega OneDrive
2,14 GB Mega OneDrive
294 MB Mega OneDrive
Philippines (pRO)
21. Dec. 2018
1,5 GB Mega OneDrive
1,25 GB Mega OneDrive
272 MB Mega OneDrive
Indonesia (idRO)
21. Dec. 2018
1,88 GB Mega OneDrive
1,61 GB Mega OneDrive
282 MB Mega OneDrive
Brazil (bRO)
21. Dec. 2018
1,95 GB Mega OneDrive
1,69 GB Mega OneDrive
273 MB Mega OneDrive
France, Europe (fRO, euRO) 21. Dec. 2018
1,85 GB Mega OneDrive
1,59 GB Mega OneDrive
273 MB Mega OneDrive
It depends on what you want. Keep in mind that if you ask this here and in rAthena, you'll get here replies that say "Hercules is better" and in rAthena forums you'll be told that "rAthena is better". Correct reply is "Hercules is better in some ways, rAthena is better in some other ways".
We don't get any commission or whatever based on users, (unlike rAthena we don't even place adverts on our pages), but it's an administrator preference.
Here in Hercules we have the fastest and most optimized Ragnarok Online emulator to the moment and there's no possible argument to this: you can run the map server on 70 MB RAM, while rAthena consumes around 200 MB on an idle state. Anyways, this varies on the amount of maps and NPCs you load on your server, and in the amount of users you have. It's also a fact that Hercules consumes much less processing time than rAthena, but I'm not aware of how much. This also means Hercules boots faster than rAthena and has some caching system for even faster boot at the cost of some disk space. Note that these measures also vary depending on the OS you're using
Hercules has some features that rAthena doesn't, and vice versa. For example we have an anti WPE security system (depends on client version) and some unique features (some of them were also merged in rAthena). The same happens on rAthena side, but I'm not well informed on that.
Emulator stability is comparable, but since in Hercules we introduce and make more features it's quite obvious we are a bit riskier on that and may crash a bit more. Anyways, our bug fixing is way faster than rAthena. We're also comparable in emulator support, too, but I believe we've more answered topics in relation to our total amount that rAthena.
The biggest flaw I can see out there is on the scripting and db development side, since rAthena is more active than us on that side (in fact, we seriously lack on them). Anyways, you can generally import all of them here with very little to no effort, most cases it's just a copy and paste issue and they'll work. We're also lifting some IMPORTANT scripting limitations at the moment and have no information of rAthena doing that at the moment.
We've also support for the last 3rd job skills while rAthena doesn't (with good formulas but still not perfect), but neither of us have Rebellion yet.
And we've also have a plugin system that allow you to make new features without the need of creating conflicts in the source code when updating. Anyways I still don't know why third party devs like eAmod still don't want to support us because it's pretty damn easy to do that with the plugin system which was specifically designed for them. I prefer to think they're lazy bums and only want to sell, because in eAmod case they tell you they support Hercules but then when you buy it they tell you it's still in merging process (it's been like 3 months merging, seriously?). Anyways, it's not that I personally like that much people getting rich at the cost of our free emulator.
In short, if you want my opinion:
Performance: Hercules
Stability: If you mind it over all other things, use rAthena because it's slightly more stable but not much. Else it doesn't quite matter.
Support: Hercules for bug fixing, doesn't matter for forum support.
Development of new features: Hercules
Development of scripts: rAthena (but you can just copy them over here most of the cases).
Third party support: Still rAthena.