Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/26/22 in all areas

  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. View File Cutin Checker I'm bored. So i made this simple Cutin Checker via @cutin command. To use this, simply type @cutin and input the EXACT cutin name. Cutin names can be found in data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\illust ? Submitter Gidz Cross Submitted 07/06/2022 Category Scripts Video Content Author Gidz  
    1 point
  3. - script atcmd_example -1,{ OnInit: bindatcmd "storage",strnpcinfo(3)+"::OnAtcommand"; bindatcmd "go",strnpcinfo(3)+"::OnAtcommandGO"; .item_req = 501; // you item id end; OnAtcommand: if ( countitem( .item_req ) ) openstorage; // open storage if have the item end; OnAtcommandGO: if ( !countitem( .item_req ) ) end; // @go if have the item for( ; .@i < .@atcmd_numparameters; .@i++ ) .@mes$ = .@mes$ + ( .@mes$ == "" ? "" : " " ) + .@atcmd_parameters$[.@i]; atcommand "@go "+ .@mes$; } Use rentitem I don't get this part
    1 point
×
×
  • Create New...