-
Content Count
84 -
Joined
-
Last visited
-
Days Won
2
Reputation Activity
-
hendra814 got a reaction from IndieRO in Nemo patcher
update, already found the issue.
the issue because client need font files
- SCDream4.otf
- SCDream6.otf
-
hendra814 reacted to Ai4rei in Elurair, v2.14.0.369 - last updated 2024/04/14
Elurair Patching Launcher
(RO Patcher Lite+ROCred Merge)
About
Universal auto-patcher for all your updating needs combined with a launcher, which is fully skinnable, highly customizable and easy on resources. It is free of any cost and works on every 32-bit and 64-bit Microsoft* Windows* platform. How this came to be: Future of ROCred and RO Patcher Lite
Known Issues
None.
FAQ
Q: Does the patcher support encrypted GRFs?
A: Yes, common GRF encryption schemes are supported.
Q: Can I use the Patcher part without the Launcher part?
A: Yes, the Launcher mechanics and UI can be disabled in configuration.
Q: Can I use the Launcher part without the Patcher part?
A: Yes, remove all Patcher sections from the configuration.
Download & Website
http://ai4rei.net/p/skal
License
This work is licensed under a Creative Commons Attribution-Noncommercial 4.0 International License.
-
hendra814 reacted to Rytech in The End of A Era - Goodbye 3CeAM
Well this is it. This is the day I knew would one day come after spending some time thinking about the project and my priorities. After a number of not so good things happened to me during the first few months of this year (2020) I had to sit down and think about many things including this project. In the end I came to the difficult decision of ending this project. Many many years of work into something that I feel has to end. But not every reason for this is due to my current situation in life but also the changing world of Ragnarok Online. I won't get into the details of whats going on in my personal life but ill talk about the issues with the project itself.
RO is changing. A lot. Its changing too much for me to keep up on jobs, skills, and important features on the project and my life future needs to take priority. For most of the time I worked on this project it has distracted me from my priorities in life. I kept up with it for a very long time and I tried to catch up on things for many years. With the complete recode of the elemental system on r900 I felt I finally got all caught up and only had a few bugs here and there related to skills that needed to be fixed and I just needed to finish up whats missing for the Summoner job. But I was so wrong. The thing is I felt the need to keep things up to keep the project alive and not have people wondering if the project is dead or not. Plus after doing so much work it felt like ending it would mean I wasted years of my life doing this for....what??? What exactly did I get out of this? Some fun, a hand full of thanks, and some credits and rep. Kinda felt like someone who played a MMO for many years and can't quit knowing it would make all that past time feel like it was all for nothing. A waste.
So whats the issues with the project itself? Well....
1. The Base Code Is Too Old
3CeAM is running on eAthena r14767 which is around 9 or 10 years old. A base that dated has been found to have some issues with newer compilers like VS 2015 which I have resolved this year. But other issues appeared after running the program made with newer compilers which I fixed some. But I realized that not only is there a lot of hidden issues needing fixing but things like plugin's and other .dll files are dated and need updating along with the code that uses them. I have little knowledge of this stuff and can't do it by myself. Other projects like rAthena and Hercules are much more up-to-date for newer compilers and OS's. 3CeAM's base code is just too old to keep up with. Especially when im the only one working on it.
2. Keeping Things Up-To-Date Is Impossible
When it comes to development in this project there's a few key things I focus on most. Jobs, skills, any systems related to the jobs/skills that require them, and client support. I don't bother with things like the banking system or equip swap or other non important things. This pile of stuff I pushed off grew over the years and now while client support is good, many features in them don't work since I never coded them in. Im always busy working on job/skill related stuff most of the time. Its very time consuming. But after spending many years catching up on the official support for skills and these job/skill related systems I finally caught up in r900 with the exception of Summoners and a few skills that could use a quick recode.
Looking at whats been going on in official kRO the dev's have been changing things with the 3rd job skills....A LOT!!!! They will increase the max level for some of them, change how some of the skills work, and do these massive skill updates. That would be kinda fine with me if it wasn't for the fact that they keep changing things. How many skill updates Rune Knights got? How many freaken times Sonic Wave got changed? How many times did they change a large number of 3rd job skills for each job? Each job must of gotten at least 3 or 4 massive skill change updates to their skill set. Its enough to drive me crazy trying to keep up with it all.
Remember how long it took me to go through every 3rd job a few years back to comb through all of the code to get each of them up-to-date with the 2011 skill updates? Even after that I had to go back and revisit the parts I held off on knowing they would be very complex and time consuming to do. Now it feels like half or most of what ive done was now a time waster since I will have to do this exact procedure ALL OVER AGAIN combing through the code and kRO change logs to update each 3rd job skills 1 by 1 to get them up-to-date again. I did it once, im not doing it again.
3. Newer Client Support.
In mid 2018 official kRO increased the value that handles item ID's from short (16-bit 32k item limit or 64k however you look at it) to int (32-bit allowing over 2 billion ID's). But the way they did it made things difficult. Many existing packets relays on item ID's and so they decided to change this value in all already existing packets. To support newer clients over 50 or probely 70 or 80 or maybe more needs updating. But not only updating but many which only have 1 versions of itself requires additional code to keep backward support for older clients. Such a change is a huge workload and would require multiple updates to get it working. Me not having the time for this crap if I did it would just say FUCK IT and remove ALL of those packets and only readd the latest versions of each one to significantly reduce that workload. I would make a copy of the source files that handles the packets and put them to the side in the SVN for those who want 2018-06-20 or older support because that change will make it so only 2018-07-01 and newer clients will work. Won't be the most popular choice but im not up for trying to keep backward compatibility with years of clients. Just going to be a pain in the ass.
4. The 4th Jobs Workload
It took many years since the beginning to get the 3rd jobs caught up. Some of that time spent figuring out how to implement them in the system on their own layer and also inherit the features and permissions of the previous jobs. That was a big challenge since noone knew exactly how the job management system worked. Me and a few others made multiple prototype codes to find the best method until I found the right way to do it. Knowing this knowledge I can create a new layer for 4th jobs. But these jobs come with a lot more then just a hand full of skill sets.
When 3rd jobs came, so did the introduction of a new game mechanic that split cast times into variable cast and fixed cast and it also introduced cooldowns. It was a nice and much needed change and it didn't take long to code this stuff in. 4th jobs however are adding new game mechanics much bigger then this. When you change to a 4th job, level 201 to 250 will give you a new kind of stat points called T.Stats and you use them on 6 new stats that are added to the 6 that existed since day 1 of RO, making the total number of stats in the game 12 now. This also comes with a hand full of new sub-stats which we can just call T.Sub-Stats. Coding all of this in will be a big work load since no new stats were added since the early days of RO server emulators. Also new to the table is something called AP which will be a new requirement for some if not all of the 4th job skills according to info I found in a updated skillinfo_f.lua file. So now we will soon have to mange HP, SP, and now AP.
Info extracted from newer client exe's shows some of the new buff skills increases T.Stats and also increases T.Sub-Stats. Combining that with the new AP requirements and you now have over 100 new skills that will require all of this to be coded in and working to allow those skills to work properly. This is a workload much MUCH greater then what the 3rd jobs were and doing this alone will just stress me out. Especially when this is only a free time hobby that brings no income.
5. A Project Managed By 1 Person
Managing the project by myself has been somewhat stressful at times. It used to be developed by a small team but everyone moved on with their lives. And I got used to doing it all by myself. I knew the code inside and out because almost everything was being done by me and I knew what was done and what still needed to be coded in. Well this became a big part of the project's downfall. Doing it all by myself is a lot on me and it prevented things like a updated base code and .dll's, server/client features, and other things to fall behind. Sure 15peaces made patches you can apply to get those other features working but its not something officially in the project's code.
I tried working with the team at rAthena before only to quickly find out that some of the dev's there don't do a good job at coding. Some would code something in and commit it to the GIT and those changes would cause problems. So dev's have to go back and fix the bug or the issue which sometimes causes crashes and commit again. And even with that the fix won't even fix the issue as if the dev didn't test it. WTF!!??!! The dev would commit multiple times on that code before its actually working. I can only imagine the number of issues in that project's code. When you code something in your supposed to TEST IT BEFORE RELEASING IT!!!! Test it thoroughly to make sure it works EXACTLY how its supposed to and test some scenario with it to make sure it doesn't cause problems or crashes in case there's any hidden bugs. And even if it works properly, find ways to shrink the code down to make it smaller and optimize it to use a few CPU cycles and little memory as possible.
I follow a procedure when I do my own coding. Code it in, do simple tests, shrink and optimize the code if it passes the test, test again for the same expected results, do extra testing (thorough testing through stressing the code and running scenarios that might cause issues), and then release it if all passes. Its because of this 3CeAM has a history of being stable and extremely rarely has any crashes or bugs. If there's one thing dev's should take from this example, do it right the first time and give it your best at all times. If your often having to go back to your previous work or the same piece of code repeatedly to fix it then your doing something wrong. The lack of this procedure in rAthena made me quit in less then a month as I refused to fix/cleanup other people's messes. This is why I worked alone for so long. I was afraid to let or ask others join the team.
Final Note
3CeAM was fun to work on and I learned a lot from it. It was very popular before rAthena and Hercules existed since at the time people wanted 3rd jobs in their servers. But those golden years are gone and trying to keep this project alive will just be a waste. Its time to let go and move on to new hobbies. Im very interested in the 4th jobs but im not interested in trying to code them into a old very dated project. If I do such a thing it will be in rAthena (which is in a better standing then when I saw it years ago), or Hercules. Anything with 3CeAM will only happen if its a paid job and thats if I even choose to accept it.
Thank you to the community for supporting the project and being with me all these years. It was a fun journey.
-
hendra814 reacted to AnnieRuru in How to setup OFFLINE server for personal development use
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
Step 1: Download and Install TortoiseGit
1a. Download TortoiseGit
https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1a.png
1b. Installation
next... next... next.. next... next.. next.. Install !!!
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 2b. Downloading ...
https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2b.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 5d. Compile GRF Editor
https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5d.png
double click GRFEditor.sln
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
FINAL STEP - change PACKEVER
#define PACKETVER 20180620
Hercules -> src\common\mmo.h
https://github.com/AnnieRuru/customs/blob/master/server setup/Step 7a.png
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 #
Frequently Asked Question:
Change Renewal into Pre-Renewal
Hercules -> src/config/renewal.h
rAthena -> src/config/renewal.hpp
This guide will be feature and pin only for a few months ... while it last .... I guess
-
hendra814 reacted to Rytech in Dress Pack
New release. Felt this was needed since kRO now officially supports these sprites.
v1.13
*Updated lua files to not show 2 default body dye options.
*Removed all sprites and texture files (except dressroomback.bmp).
-Since the kRO client now has all the sprites and textures officially,
-there's no need to included these files. The only purpose of this GRF
-now is to enable the dress room UI functions.
*For those who still want the version with the sprites and textures
-included for some reason, the dresspackold.grf is also included.
-
hendra814 got a reaction from Hytech in Fee on this NPC
Sorry, forget that part.
Here, i already fix it.
costume.txt
-
hendra814 got a reaction from DarknessStorm in 2018-02-21RagexeRE
here
https://drive.google.com/file/d/1OHKdLvnyzuKbxgQKDzwDbm8LKiE5GQ_9/view?usp=sharing
-
hendra814 reacted to Rytech in r864 - SQL Updates / Few Script And Other Fixes
=General
*max_cloth_color changed to 3.
-Turns out while the old original 1st and 2nd jobs has a 4th dye option, the other
-jobs don't. Plus the styling shop info only allows for dyes up to 3 by default.
-They must of decided long ago to only offer 3 dyes.
*Added 2 new skill place holders.
*Updated the "displayskill" command to allow for selecting which skill animation
-packets to send.
=Database
*Fixed some item script errors in item_db.
=Skills
*RK_IGNITIONBREAK
-Fixed a issue where the animation wouldn't appear on 2018-06-20 and newer clients.
*SJ_NOVAEXPLOSING
*SP_SOULEXPLOSION
-Fixed a issue where the damage didn't bypass protection from Devotion.
*SC_ESCAPE
-Added missing item requirement.
=SQL Files
*Fixed some item script errors in item_db.
*Changed the values of monster's stats to smallint.
=Tools
*Updated perl script for the monsters to use smallint for their stats.
-
hendra814 got a reaction from MikZ in Hunting Mission to Poring Coin
at this part
set #Mission_Points, #Mission_Points-@cost; change it into
delitem, 7539-@cost;
-
hendra814 got a reaction from MikZ in Hunting Mission to Poring Coin
find this
set #Mission_Points, #Mission_Points+.@Mission_Points; and replace into
getitem 7539,.@Mission_Points;
-
hendra814 reacted to Dastgir in Zodiac of the months
Remove the quotes.
Constant's are without quotes
-
hendra814 reacted to Dastgir in Zodiac of the months
Problem is the item constant.
Item constant cannot contain ' (which was allowed previously)
most probably, just the ' is removed, so you can Replace "Goat's_Horn" with "Goats_Horn", however, you should double-check if constant exist in https://raw.githubusercontent.com/HerculesWS/Hercules/stable/db/re/item_db.conf (the AegisName field is the constant)
-
hendra814 reacted to Rebel in Lord Knight [SL Modification]
Find in skill.c
int skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv) insert after
int index[MAX_SKILL_ITEM_REQUIRE]; this
struct status_change *sc = &sd->sc; find in skill.c
if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } change to
if( require.weapon && !(pc_check_weapontype(sd,require.weapon) || (skill_id == LK_PARRYING && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_KNIGHT && sd->weapontype == W_1HSWORD))) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } Find again in skill.c
if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } change to
if( require.weapon && !(pc_check_weapontype(sd,require.weapon) || (skill_id == LK_PARRYING && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_KNIGHT && sd->weapontype == W_1HSWORD))) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } recompile.
-
hendra814 reacted to AnnieRuru in OnNPCKillEvent changes
https://github.com/HerculesWS/Hercules/pull/2061
before understanding this pull request, let's talk about the history of OnNPCKillEvent
History
during the time OnNPCKillEvent implement, monster only spawn on the fields and dungeon, in this syntax
** Create a permanent monster spawn: <map name>,<x>,<y>,<xs>,<ys>%TAB%monster%TAB%<monster name>%TAB%<mob id>,<amount>,<delay1>,<delay2> and the monsters that spawned with event labels were only use in job changer quests
*monster("<map name>", <x>, <y>, "<name to show>", <mob id>, <amount>{, "<event label>";} Note: if you noticed some parameter missing, yup those were added later.
Notice the permanent monster spawn during that time still doesn't support event labels
So, in order to trigger the permanent monster spawn, OnNPCKillEvent was the only way (during that time)
this was to separate the trigger between OnNPCKillEvent and monster with event labels
Why separate them ?
there's a good reason to separate them, aleos also said in this issue
in fact, this bug was also brought up several times during eathena ...
Let's give 2 examples:
Example 1: Bot-killer script
Bot-killer script is intended to kill bots, and bots usually only appear on fields/dungeon
which makes OnNPCKillEvent: label an ideal solution to work on them
currently, Bot-Killer script doesn't trigger with job changer script or event script
because the job changer npc, the monster was spawned with event labels
example like priest job change quest -> you have to kill all the undeads within 5 minutes
imagine ... IF the Bot-Killer script was able to trigger monster with event labels,
while the players was rushing against time, suddenly a bot-killer script pops up !!
this is enough to make them fail the test ...
same thing goes to other event scripts such as devil square
when players were busy killing monsters, trying to get the most kills, suddenly a bot-killer script pops up !!
enough to make them lose the 1st place
Example 2: MVP ranking script + MVP Ladder game
MVP ranking script ... show the top 10 MVP hunters in your server
MVP ladder game ... a game to form a party then kill MVPs inside arena
currently, the MVP ranking script doesn't record the MVP kills from MVP ladder game
the reason is ... the MVP ladder game spawn the MVPs with event labels ...
imagine IF the OnNPCKillEvent label able to trigger monster with event label
players just has to replay the MVP ladder game again and again to earn themselves the best MVP hunter ...
each game adds 39 kills, so cheap !! Don't need to find MVPs on the field anymore
now that's defeat the purpose of MVP hunting .... I mean the MVP ranking script
So why propose the change now ?
Things has changed since then, especially with the introduction of instance script
since all instance monster has event labels, previously said that monster only spawn on the fields and dungeon no longer apply
Take a look back at Example 2 ... the MVP ranking script
currently the MVP ranking only record the MVP kills that spawn MVP tombs
but it doesn't record the kills from instance ... for example Nacht Sieger or Nidhoggur's Shadow or even Lighthalzen MVP
Now here's the tricky part ...
Example 1: Bot-Killer
If we keep it as it is, the script works fine
and if let OnNPCKillEvent run event labels, bot-killer can trigger inside job change npc (BUG)
Example 2: MVP ranking script + MVP Ladder game
If we keep it as it is, the MVP ranking script doesn't record the MVP kills from instance script (BUG)
and if allow OnNPCKillEvent run event labels, MVP ranker script record the kills from MVP ladder game (BUG)
both options are not a perfect solution
but there is a way to actually solve all these problem,
find this line
OnNPCKillEvent: replace with ...
OnNPCKillEvent: if ( getmapflag( strcharinfo(PC_MAP), mf_nosave ) ) end; let ALL OnNPCKillEvent: doesn't trigger on the map that has nosave mapflag
simple because, all job changer npc and event maps has nosave mapflag ... this is easy
this simple solution actually solve both example's problem above
.... well actually I also has another patch ready ...
but not sure if this setting make things more complicated ?
well ... currently still in the discussion stage ~
-
hendra814 reacted to Asheraf in kRO unpacked clients releases
Discontinued.
Clients without themida protection can be downloaded at http://nemo.herc.ws/downloads/
-
hendra814 got a reaction from AsurielRO in Npc always stock up players
i'm already tried with rathena emulator, your script work well
-
hendra814 got a reaction from AsurielRO in Npc always stock up players
The problem appear when enable hourly reward script.
so disable that script from the server.
-
hendra814 got a reaction from AsurielRO in Card Excachnger shop not working
already tried with rathena emulator and it's working