Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/13/22 in Posts

  1. 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
  2. Group ID 2, Name Support have permisison all_commands: true and others Group ID inherits the permissions and commands from Support. For example Group ID 3 is inheriting all the commands and permissions from Group ID 2, Support. { id: 3 name: "Script Manager" inherit: ( "Support" ) level: 1 commands: { tonpc: true hidenpc: true shownpc: true loadnpc: true unloadnpc: true npcmove: true addwarp: true } log_commands: true permissions: { any_warp: true } },
    1 point
×
×
  • Create New...