As of Release v2018.03.13, the method to generate mapcache for Hercules has changed. A lot of people. myself included, were confused as to how it works. In this thread, I will do my best to explain the new way to generate your cache. This guide is intended to help people using the old system, not to aid new people (i.e. never generated mapcache before), so if you are new, some of it may seem like alien talk.
Old (your source predates [is older than] Feb 18, 2018)
In the old system, there were two ways to generate mapcache
You could run the mapcache executable in Hercules root folder.
Or use a program such as WeeMapCache to edit in your required mapcache.
These two methods would generate or alter your required mapcache located in db/[pre-re or re]/map_cache.dat. However, they are no longer supported.
New (your source is using Release v2018.03.13 or newer)
The new system involves the use of the new 'mapcache' plugin to generate files. Some quick points:
db/[pre-re or re]/map_cache.dat has been dropped (no longer supported).
In its place are individual .mcache files for every map located in maps/[pre-re or re]/
Mapcache executable has been removed.
Replaced with the mapcache plugin (src/plugins/mapcache.c).
How to generate the mapcache?
Same as before, check conf/map/maps.conf and db/map_index.txt have all the maps you want to cache.
Your maps need to exist somewhere in your repository! There are two ways for the plugin to find them:
a. Place all your maps, including resnametable.txt, inside the data folder of your Hercules repo. I.e. Hercules/data/prontera.gat/gnd/gnd/rsw (note: I forget if all three files are needed).
b. OR Configure your conf/grf-files.txt to tell it where to find your GRF(s) which contains your maps.
Build the mapcache plugin. On linux, this can be done by running the following command:
make plugin.mapcache
If using MSVC, compile as you would any other plugin.
Execute plugin. This can be done using the following command:
./map-server --load-plugin mapcache [param]
In windows, just remove the './' and run the commands in your command prompt.
The params:
The first thing you should do is run ./map-server --load-plugin mapcache --help
A list of usable parameters will appear. Here are the ones you need to know for mapcache:
[Info]: --convert-old-mapcache Converts an old db/pre-re/map_cache.dat file to the new format. [Mapcache]
[Info]: --rebuild-mapcache Rebuilds the entire mapcache folder (maps/pre-re/), using db/map_index.txt as index. [Mapcache]
[Info]: --map <name> Rebuilds an individual map's cache into maps/pre-re/ (usage: --map <map_name_without_extension>). [Mapcache]
[Info]: --fix-md5 Updates the checksum for the files in maps/pre-re/, using db/map_index.txt as index (see PR #1981). [Mapcache]
./map-server --load-plugin mapcache --convert-old-mapcache
Rebuild all the .mcache files using your old db/[pre-re or re]map_cache.dat file. NOTE: You should only run this command when you have an old map_cache.dat file you need to convert.
./map-server --load-plugin mapcache --rebuild-mapcache
Rebuild all the .mcache files using your map files specified in step 2 of generation. NOTE: You should only run this command in special circumstances. This erases ALL the existing mapcache and rebuilds it with whatever files you provide it. If you don't have the required files, the build will fail and you will be left with missing mapcache files, meaning you won't be able to access those particular maps.
./map-server --load-plugin mapcache --map <name>
Rebuild the .mcache file for the map name you specify. E.g. if you replace <name> with prontera, the maps/[pre-re or re]/prontera.mcache file will be rebuilt. NOTE: This is the best command to run, as it only caches a single map at a time.
./map-server --load-plugin mapcache --fix-md5
I don't know what checksum is for.
The End
Feel free to ask for help here. I'll try to answer questions re: mapcache if possible. And if you think anything needs correcting or added, let me know.
Hope this helps!
At lvl 151 my char's max SP suddenly dropped to 19. HP is fine.
Mainly Renewal mechanics but disabled some things, such as ASPD.
I tried #streset but that doesn't seem to help
Any ideas what is happening? Thanks.
EDIT:
Looks like when I disabled RENEWAL_ASPD, the job_db.conf from pre-re folder gets read, which doesn't have the SP Table beyond level 150.
Manually copied the HP and SP Tables from re\job_db.conf to the pre-re file. Problem solved.
Askald
This mas is public so don't try to sell it or make it your property.
It is my first map, i am pretty happy with the result and i will probably make some more.
Contact
You can found me on discord : Sloth#6226
Github : https://github.com/SlothBM/
Crédit
I would like to thank the Borf discord community for helping me with a few issues.
Want to support my work ?
Submitter
Sora
Submitted
05/15/20
Category
Maps & Textures
This is a new translation client project that Dastgir and Me want to share for Hercules only.
What this Project contain?
- itemInfo.lua with iro/kro translation.
- Some lua that contain last translation found on the board or made by us.
- Last accessoryid.lub / accname.lub / jobname.lub / NPCIdentity.lub decompiled.
- Texture Buttons translate.
- msgstringtable.txt fully translate.
- Txt files translate (questid2display.txt, mapnametable.txt etc...)
- Up-To-Date itemInfo and other files required to run a basic Translated client.
You can help us by opening PR, or just pm Dastgir to get access to the repo...
So here it is The Updated & Released Castle City of Invek, or just Invek for short. Sorry for any delay in the release of the map but I hope it has been worth the wait. I have struggled with all of the bugs and issues when using BrowEdit, and I believe it has finally paid off! Here is my first public map release and I hope you all enjoy it ! I plan to Release many more maps, and even take requests from time to time. I would GREATLY appreciate any opinions, or general enthusiasm's, after all I could just keep my maps to myself but they are intended to benefit the Hercules Community ! If you download my free map release please offer me your input !
-Updated Screen Caps- July 14, 2013
I have included the invek.extra file incase you wish to make a change to the map. You may use this map as you wish, however please do not redistribute as your own work or offer my work at any other location. I do not require being credited for this map. This is intended to be used with sky background, if you have trouble changing the background, installing the map, or making a fix then drop me a PM and I will gladly help support you.
Hi ... I've finished a series of maps recently, inspired by a horror story theme. The main map is a modern city, freely inspired by Raccon City (RE)
with classic places such as the famous Mansion of RE1 and also the raccon city police station.
A map made for RO, but the idea was to remove all the medieval elements, to maintain a modern aesthetic, to approach our present world.
The second map is MANSION (freely inspired)
This map has 4 floors (two extremely large 2 floors (150x150), 1 small floor and basement.
The maps are well detailed and with the possibility to compose a series of quest's and events.
There are many possibilities. It can be used as an instance, as main city, map for events
(such as zombie invazion, undead, savior, vips events, hunter), quests, etc. just be creative.
Tell me your opinion, maybe you can help me improve.
Thank you.
ps: The police department is not ready yet.*****
(Some images to better illustrate)
THE CITY
Now some images of the Mansion with 4 floors
I like it when the maps are well filled, with no empty spaces, and with many details,
something that suggests that there is life there, with dirt and trash on the floor, etc ...
01F and 02F
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 #