Leaderboard
Popular Content
Showing content with the highest reputation on 04/15/22 in all areas
-
So long yaml-cpp, hello rapidyaml! As of Git Hash: d1b7061, rAthena has transitioned from using yaml-cpp as the 3rd party tool for parsing YAML files to rapidyaml (or ryml). What this means: The yaml-cpp library gave us a great start into the world of yaml, but as we made more conversions of our databases from CSV to YAML, the load time began to grow. The ryml content is parsed into a single index-based array which is not like any standard STL. On average, ryml parses YAML at about ~150MB/s on Linux and ~100MB/s on Windows (vs2017). Compared to yaml-cpp, ryml is in general between 10 and 70 times faster! An optimization was also made to itemdb_searchname1 function which reduced its complexity to constant. Item database parsing function also has reduced complexity to linear complexity. This results in reduced loading time in debug mode to a fifth compared to using yaml-cpp! What this means to developers: Overall testing and usage of rAthena is much faster, in debug and release modes. We’ve kept our YamlDatabase class the same! This means that over 99% of the structure from using yaml-cpp carried over to ryml in terms of source side work. The YAML files themselves require no updates or changes! Other than that, enjoy the extra speed! Thanks to @Lemongrass, @Secrets, and @nitrous for their help in getting this implemented! PS: I realize I posted this on April 1st, but I can guarantee this update is quite the contrary!1 point
-
1 point
-
try to change getmapxy $Rfyl_Trap$,$X,$Y,0; to getmapxy $Rfyl_Trap$,$X,$Y,BL_PC; https://github.com/rathena/rathena/commit/26720f041a3cd0edbaa975bfc70345a30e9bf706 if not working refer to the link and find the right code1 point
-
Hello, I have just set up my server + client and as I had some problems during the setup + I didnt really find any tutorial with working donwload links I decided to share my knowledge that I gained during setting up my server, so here we go. Requirements: OS: Debian 9 (Virtual box or VPS) with root access Some things have changed on newer debian 10+ versions: (do this instead of the below specified step 4) ) 4) apt install g++-10 libssl-dev build-essential libmysqlclient-dev Server side setup on Debian: 1) Run apt update: apt-get update 2) Install this software if you dont have it already: git make default-libmysqlclient-dev zlib1g-dev libpcre3-dev apt-get install git make default-libmysqlclient-dev zlib1g-dev libpcre3-dev 3) Add unstable sources list to apt (dont worry it wont break anything it is just dev version), after that run update again: echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list.d/unstable.list apt-get update 4) Install GCC and G++ compilers for C/C++ (programming language in which the rAthena server software is written): (IMPORTANT USE THESE COMMANDS ONE BY ONE DO NOT COPY ALL 4 AND PASTE IT INTO TERMINAL BECAUSE U NEED TO ACCEPT THE INSTALL BEFORE EXECUTING LN COMMANDS) Do not execute all of 4 commands at the same time, copy first command, wait until it finishes after that second and so on: apt-get install -t unstable gcc-5 apt-get install -t unstable g++-5 ln -s /usr/bin/gcc-5 /usr/bin/gcc ln -s /usr/bin/g++-5 /usr/bin/g++ 5) Now its time to download rAthena: cd /home git clone https://github.com/rathena/rathena.git ~/rAthena 6) Configure it for compiling by (this command must be called in the folder where you downloaded the rAthena): ./configure 7) Now build the server (this command must be called in the folder where you downloaded the rAthena): make server ? Before you can run it, you must make all server executables executable: chmod a+x login-server && chmod a+x char-server && chmod a+x map-server MySQL Database setup (skip this if you already have MySQL, apache and phpmyadmin and continue with step 18): Database creation (skip this if you know how to create a new database): 21) Now go to your server files and find this file: /rAthena/sql-files/main.sql and upload it and import it. 22) Now you just need to setup the database to the rAthena, so go to the file: /rAthena/conf/inter_athena.conf, full in username and password from the user you created via phpmyadmin: // MySQL Login server login_server_ip: 127.0.0.1 login_server_port: 3306 login_server_id: USER_NAME login_server_pw: PASSWORD login_server_db: USER_NAME login_codepage: login_case_sensitive: no ipban_db_ip: 127.0.0.1 ipban_db_port: 3306 login_server_id: USER_NAME login_server_pw: PASSWORD login_server_db: USER_NAME ipban_codepage: // MySQL Character server char_server_ip: 127.0.0.1 char_server_port: 3306 login_server_id: USER_NAME login_server_pw: PASSWORD login_server_db: USER_NAME // MySQL Map Server map_server_ip: 127.0.0.1 map_server_port: 3306 login_server_id: USER_NAME login_server_pw: PASSWORD login_server_db: USER_NAME 23) Now we need to setup server IPs: Go to: /rAthena/conf/ Open: char_athena.conf server_name: YOUR_SERVER_NAME login_ip: 127.0.0.1 //just uncomment this line and let it like 127.0.0.1 bind_ip: 0.0.0.0 //uncoment this line and set it to 0.0.0.0 (bind to all interfaces) char_ip: XXX.XXX.XXX.XXX //set it to your WAN IP (public IP) //Find this values and set it to no: pincode_enabled: no pincode_force: no Open: map_athena.conf char_ip: 127.0.0.1 //uncoment and let it like this bind_ip: 0.0.0.0 //uncoment and set it to 0.0.0.0 map_ip: 192.168.0.119 //set it to your WAN IP (public IP) Open: login_athena.conf bind_ip: 0.0.0.0 //uncoment this and set it to 0.0.0.0 25) Now you need to setup spawn: Open /rAthena/conf/char_athena.conf And set start point like this: start_point: prontera,155,182 26) Now we need to disable packet encryption: Go to this file: /src/config/packets.h Make it look like this to disable packet encryption (obfuscation), comment out only 4 lines which I "highlighted", do not touch anything else): // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder #ifndef _CONFIG_PACKETS_H_ #define _CONFIG_PACKETS_H_ /** * rAthena configuration file (http://rathena.org) * For detailed guidance on these check http://rathena.org/wiki/SRC/config/ **/ #ifndef PACKETVER /// Do NOT edit this line! To set your client version, please do this instead: /// In Windows: Add this line in your src\custom\defines_pre.h file: #define PACKETVER YYYYMMDD /// In Linux: The same as above or run the following command: ./configure --enable-packetver=YYYYMMDD /// original value: 20151104 #define PACKETVER 20151104 #endif #ifndef PACKETVER_RE /// From this point on only kRO RE clients are supported #if PACKETVER > 20170614 #define PACKETVER_RE #endif #endif #if PACKETVER >= 20110817 /// Comment to disable the official packet obfuscation support. /// This requires PACKETVER 2011-08-17 or newer. ///#ifndef PACKET_OBFUSCATION --------------------------comment out this line ///#define PACKET_OBFUSCATION --------------------------comment out this line // Define these inside src/custom/defines_pre.h or src/custom/defines_post.h //#define PACKET_OBFUSCATION_KEY1 <key1> //#define PACKET_OBFUSCATION_KEY2 <key2> //#define PACKET_OBFUSCATION_KEY3 <key3> /// Comment this to disable warnings for missing client side encryption ///#define PACKET_OBFUSCATION_WARN --------------------------comment out this line ///#endif --------------------------comment out this line #else #if defined(PACKET_OBFUSCATION) #error You enabled packet obfuscation for a version which is too old. Minimum supported client is 2011-08-17. #endif #endif #ifndef DUMP_UNKNOWN_PACKET //#define DUMP_UNKNOWN_PACKET #endif #ifndef DUMP_INVALID_PACKET //#define DUMP_INVALID_PACKET #endif /** * No settings past this point **/ /// Check if the specified packetversion supports the pincode system #define PACKETVER_SUPPORTS_PINCODE PACKETVER >= 20110309 /// Check if the client needs delete_date as remaining time and not the actual delete_date (actually it was tested for clients since 2013) #define PACKETVER_CHAR_DELETEDATE (PACKETVER > 20130000 && PACKETVER <= 20141022) || PACKETVER >= 20150513 /// Check if the specified packetvresion supports the cashshop sale system #define PACKETVER_SUPPORTS_SALES PACKETVER >= 20131223 #endif // _CONFIG_PACKETS_H_ 27) Now its time to recompile server: make clean make server 25) Now you can start the server (execute this command from the main server directory): ./athena-start start Client side setup on windows: 1) Download full kRO client from one of this links: [Link 1], [Link 2], [Link 3] 2) Unpack it to a new clear folder 3) Download NEMO: [Link 1], [Link 2] (prefer Link 1) 4) Unpack the NEMO wherever you want to 5) Download Ragexe client [Link 1], or any other Ragexe from https://rathena.org/board/forum/99-client-releases/ but 2016+ clients are not fully supported by NEMO so you might run into issue, better download 2015 client 6) Unpack the Ragexe into your ragnarok client folder 7) Download GRF Editor and install it whereever you want ? Now its time to open NEMO program - Click on browse and navigate to the Ragexe client you downloaded - Click on LOAD CLIENT button - In the search filed type "Disable packet Encryption" click on the red circle to make it green - Find "Skip licence screen" and make it green - Find "Use Ragnarok icon" and make it green - Find "Custom Window Title" here you can write name of your RO client (whatever you want) - Now just click "APPLY SELECTED" and it will create a new .exe file - this is the file you will run to start your client, but dont start it yet 9) Open GRF Editor - Click on File -> Open and open data.grf (this file is in the main folder of your unpacked client) - Now type in the serach window clientinfo.xml and open the file, now edit the <address> to the adress where your server is running. NOTE: If the file is empy and does not contain <adress> line, try other GRF files in the main client folder - After edditing the address click on save and override the file. 10) Now you just need to setup packtversion on the server to match your ragexe, so go to your server and write to terminal: In this case I put there 20151029 which is the release date of the Ragexe, if you have downloaded other, put there your number of your ragexe you downloaded, these commands must be performed from the folder of your server, stop the server if you already started it: ./rAthena stop ./configure --enable-packetver=20151029 make clean make server 11) Start the client and play! FAQ:1 point
-
Hey everyone. I wanted to share something I started working on this month for a server. While these features are very new, the work ive been doing for them have been quite a trip so far and are still in heavy development at the time of this posting. But after a lot of work and testing im finally able to see it all in action. Here's a screenshot of the progress made so far and a peek at the future of RO. There's still a lot of work to do but the main parts are close to done. I may post more pics in the future as more progress is made. Note: My work is now in a project called 4CrAM and I have a topic made for it here....1 point
-
I will try this later AnnieRuRu, thank you so much for helping! very detailed and informative.1 point
-
does anyone already using the JRO ? http://ragnarokonline.gungho.jp/ I want to download this but I don't know where is the Download Button Ooops I found it ! http://ragnarokonline.gungho.jp/beginner/download.html Sorry.1 point