Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Reputation Activity

  1. Like
    Khazou reacted to vykimo in XPRO : cross platform client   
    Mobile UI
    Another interesting update, the mobile UI.
    I imagined by myself a new way to play Ragnarok Online on a mobile device.
    I created a joystick on the left side in order to move your character easily. On the right side, I added skills in shortcuts in a rotating circle with size increased and an auto-attack feature.
    Here are the gestures presented in the gif:
    Move : Joystick on the left Sit down/stand up : Simple click on joystick Shortcuts : 4 Rotating circles with your shortcut bars content Auto-attack : Click on swords in order to attack or cast skill on the nearest opponent Context menu : Long tap on player It increase experience on smartphone and prepare for long games on it.

  2. Upvote
    Khazou got a reaction from Kyoya G in browedit 620 and 586   
    It should be the same, 620 is used to build your whole map whereas 586 is use to save maps you've created with 620 because 620 doesn't save them right, you can have some models that disappears in game.
    620: Build your maps, save it
    586: Open your 620 maps, save it
  3. Upvote
    Khazou got a reaction from Kyoya G in browedit 620 and 586   
    You can download every version from there: http://browedit.excalibur-nw.com/release/
    If you want here is mine: https://mega.nz/#!7B1SmCQC!suqfj5ZLBc2Y-L2SEybgIaJMZ7e4tl6CuikzC6ZicPM
  4. Like
    Khazou reacted to Ridley in March Digest 2020   
    March Digest 2020
    The following digest covers the month of March1st - March 30th 2020

    Team Changes
    Added/updated packets, encryption keys and message tables for clients up to 2020-03-04. (#2645)
    Exposed the item bound type (`IBT_*`) constants to the script engine. (#2650)
    Added item scripts for item IDs 12459 through 12465 and corrected their name in the pre-renewal DB. (#2634, issue #1196)
    Added the `unitiswalking()` script command, to check whether an unit is walking at a given time. (#2628)
    Changed the default `PACKETVER` to 2019-05-30. (part of #2645)
    Major refactoring of the functions in `unit.c`, adding code documentation and following the code style guidelines. Functions have been renamed when backward compatible changes to the arguments or return values were made. (#2546)
    A new header `unitdefines.h` has been added.
    `enum unit_dir` is now provided, to standardize handling of facing/walking directions.
    The macros `unit_get_opposite_dir()`, `unit_is_diagonal_dir()`, `unit_is_dir_or_opposite()`, `unit_get_ccw90_dir()`, `unit_get_rnd_diagonal_dir()` have been added.
    `unit->walktoxy_timer()` has been renamed to `unit->walk_toxy_timer()` and its return values have been changed and documented.
    `unit->walktoxy_sub()` has been renamed to `unit->walk_toxy_sub()` and its return values have been changed and documented.
    `unit->delay_walktoxy_timer()` has been renamed to `unit->delay_walk_toxy_timer()` and its return values have been changed and documented.
    `unit->walktoxy()` has been renamed to `unit->walk_toxy()` and its return values have been changed and documented.
    `unit->walktobl_sub()` has been renamed to `unit->walk_tobl_timer()` and its return values have been changed and documented.
    `unit->setdir()` has been renamed to `unit->set_dir()` and its return value and arguments have been changed and documented.
    `unit->getdir()` has been renamed to `unit->get_dir()` and its return type and constness of the arguments have been changed.
    `unit->warpto_master()` has been added.
    `unit->sleep_timer()` has been renamed to `unit->sleeptimer()` and its return values have been changed and documented.
    `unit->calc_pos()` now accepts `enum unit_dir`.
    `map->check_dir()` now accepts `enum unit_dir`.
    `map->calc_dir()` now returns `enum unit_dir` and accepts a const bl.
    `npc->create_npc()` now accepts `enum unit_dir`.
    `skill->blown()` now accepts `enum unit_dir`.
    `skill->brandishspear_first()` now accepts `enum unit_dir`.
    `skill->brandishspear_dir()` now accepts `enum unit_dir`.
    `skill->attack_blow_unknown()` now accepts `enum unit_dir`.
    The remaining unit functions have been documented.
    New return values have been added to `pc->setpos()`, for better error handling. (#2633, issue #2632)
    Increased the `MAX_MOB_LIST_PER_MAP` value to 115 in pre-renewal builds, to fit all the default spawns. (#2638, issue #1915)
    Extended the `getiteminfo()` command to also accept item names, and added the types `ITEMINFO_ID`, `ITEMINFO_AEGISNAME`, `ITEMINFO_NAME`. (#2639)
    Changed `itemskill()` to ignore conditions by default. The `ISF_CHECKCONDITIONS` needs to be explicitly passed if conditions should be checked/consumed. (part of #2648)
    Changed the NPC shop behavior to prevent selling items from the favorites tab of the inventory. (#2651)
    Updated Doxygen configuration to speed up generation and fix compatibility warnings. (0d747896e0)
    Updated the Travis-CI configuration file according to the validation warnings and notices. (eb97973e68)
    Fixed a missing `get_index()` call in `Skill2SCTable`, causing some skills to activate the wrong status. (#2643, issue #2636)
    Fixed a compilation error C2233 in Visual Studio. (part of #2645)
    Fixed Basilica unintentionally restraining boss mobs. (#2612, issue #1276, related to issue #2420)
    Fixed the handling of unequip scripts in zones where an item is restricted. The `OnUnequip` script is now never executed when unequipping in a restricted zone, but it is always executed when entering such zones, regardless of the `unequip_restricted_equipment` battle flag. (#2642, issue #2180)
    Fixed the handling of skill requirements and conditions by the `itemskill()` command. (#2648, issue #2646)
    Added missing requirements to `CASH_INCAGI` and `RK_CRUSHSTRIKE`. (part of #2648)
    Fixed an incorrect return value in `unit->walktobl()` causing mobs to be unable to walk to their target. (#2659)
    Fixed an incorrect return value in `unit->walktobl()` causing mobs to get stuck when they try to loot. (#2664)
    Removed the `ISF_IGNORECONDITIONS` flag previously used by `itemskill()`, now the default behavior. (#2648)  
    Special thanks to
    @Haru, @4144, @Kenpachi, @Asheraf, @hemagx, @skyleo, @Emistry
  5. Like
    Khazou reacted to Ridley in February Digest 2020   
    February Digest 2020
    The following digest covers the month of February 1st - February 29th 2020

    Team Changes
    @Wolf is now a Global Moderator The following Members have been moved to the new "Retired Staff" Group. Special thanks to Ind and Jman for funding Hercules and this community - and also to everyone else who has contributed towards it. @Ind, @Jman and @Mystery - Former Administrators @Masao, @Nameless2you, @Ragno and @Sneaky - Former Script Developers @malufett, @Michi and @mkbu95  - Former Core Developers The following Members were contributing as High Council, Moderator or Graphics Moderator and got moved to Community Contributor Group. Thank you for your help and contribution. @Eurydice, @Gepard, @Muad_Dib, @Xgear, @Yommy, @jaBote, @Judas, @Adel and @Uzieal  
    Added/updated packets, encryption keys and message tables for clients up to 2020-02-06. (#2625)
    Added support for the expanded barter shop, see example script in `npc/custom/expandedbartershop.txt` and the related script commands `sellitem()`, `startsellitem()`, `sellitemcurrency()`, `endsellitem()`. Note: this includes a database migration. (part of #2625)
    Added the new script commands `cloakonnpc()` and `cloakoffnpc()`. (part of #2615)
    Added the new script command `achievement_iscompleted()` to check for achievement completion. (part of #2615)
    Added Exploration Achievement NPCs. (#2615)
    Added support for an `OnNPCUnload` label, where a script can perform its cleanup before being unloaded (such as removing mapflags, etc). (part of #2590)
    Added the Rebellion jobchange quest and its related mobs and items. (#2621)
    Added support for switching madogear type. See the documentation for `setmount()` and the related `MADO_ROBOT` and `MADO_SUITE` constants. (#2586)
    Changed the logic of `skill_get_index` to make it easier to add new skills, custom or official. (#2596)
    Refactored `int_party` code related to exp sharing calculations. (part of #2601)
    Updated the Duel system cooldown to be configurable with seconds granularity. The `duel_time_interval` setting can be safely updated and with `@reloadbattleconf`, applying to any existing cooldowns. (#1495)
    Converted `PACKET_ZC_STATE_CHANGE` to use its struct format and added a function to send it to a single target. (part of #2615)
    Changed the behavior of `@unloadnpc`, `@reloadnpc`, `@unloadnpcfile` to kill the monsters that were spawned by the unloaded script (non-permanent spawns). (#2590, issue #2530)
    Updated the `mobdbconverter.py` tool to support Race, Size and Element constants. The script now requires Python 3. (#2620)
    Cleaned up a duplicate definition of `SP_VARCASTRATE` in `pc_readparam()`. (#2624, issue #1311)
    Extended `itemskill()` with a new `ISF_INSTANTCAST` flag to be able to cast a skill without cast time. (part of #2616)
    Extended `itemskill()` with a new `ISF_CASTONSELF` flag to be able to forcefully cast a skill on the invoking character. (part of #2616)
    Converted `ZC_AUTORUN_SKILL` to use its struct format. (part of #2616)
    Fixed some signed/unsigned mismatch compiler warnings. (#2601, issue #1434)
    Fixed some cases where the family exp sharing state wasn't correctly detected. (part of #2601)
    Fixed a duplicate "Skill Failed" message when using Asura Strike. (part of #2248, issue #1239)
    Fixed an issue that made a character turn to face its target after casting Asura Strike. (#2248, issue #1239)
    Fixed the position of a character after a failed Asura Strike cast, to be 3 cells from its original position instead of 2. (part of #2248, issue #1239)
    Fixed the status icon from the Elemental Resistance Potions and the Undead Element Scroll not disappearing when the status changes end. (#2614, issue #2593)
    Fixed a crash when using `@loadnpc`, `@reloadnpc` or `@unloadnpcfile` on a directory. (part of #2590, issue #2179)
    Fixed `PR_STRECOVERY` to only cure status effects if the target's element isn't Undead. (#2618, issue #2558)
    Fixed the mobs spawned by `mob_clone_spawn()` (`clone()`, `@evilclone`) being invulnerable because of an uninitialized `dmg_taken_rate` taking the value of 0. (#2617, issue #2607)
    Fixed a crash when the script function `getunits()` was called with an invalid mapindex. Now an error message is added when the mapindex validation fails. (#2619)
    Fixed a crash when `map_forcountinmap()` was called with an invalid mapindex. Now the function will return 0 instead. (part of #2619)
    Fixed clientside errors when using a `ViewData` block in the mob database without specifying a `HairStyleId`. The hair style will now default to 1 when a `ViewData` block is specified. (#2622)
    Fixed the damage calculation being too low when using weapons of type `W_RIFLE` (in pre-renewal). (#2623)
    Fixed an issue that could cause homunculi to be in an unexpected partially-vaporized state (i.e. when a Vanilmirth kills its own master through `HVAN_EXPLOSION`). (#2626)
    Fixed NPC ID validation when `SECURE_NPCTIMEOUT` is defined, causing scripts to abort with an "Unknown NPC" error on the console. (#2627, issue #2073)
    Fixed the skill condition checks and the `flag` parameter of `itemskill()`. The constants `ISF_NONE` and `ISF_IGNORECONDITIONS` are now available. (part of #2616)
    Fixed the `itemskill()` items to provide their proper Aegis behavior, in their requirement checks, self-targeting and item consumption.  (#2616, issue #819)
    Fixed the Earth Spike Scroll to consume 10 SP when `SC_EARTHSCROLL` is active. (part of #2616)
    Fixed warnings in the HPMHookGenerator. (1000b10026)
    Special thanks to
    @Haru, @4144, @Kenpachi, @Asheraf
    Additional thanks to @Haziel for creating the badge for the retired staff group
  6. Upvote
    Khazou reacted to w0wZukuBg in [w0w] Advanced Maps Project   
    Probably my most ambitious and personal project. I often met on my way
    interesting places in the world of RO, to which it was impossible to get.
    Then I began to find such places with the help of the BrowEdit program
    and make them available for visiting. As the project expanded,
    I decided to allow shooting and use skills from the hills on the maps,
    where this feature was disabled (or Gravity was too lazy busy),
    add plants and trees, create comfortable climbs and so on.
    I suggest you watch a promo video that clearly explains my idea.
    At the moment, almost ready the locations of the Schwartzwald and Arunafeltz for the release,
    there is a reserve for many other locations. Since the appearance of the video, there have been
    some changes, so the final result may be different. Below I attach screenshots from BrowEdit
    "before" and "after" and gif files with changes of territories on the finished mini-maps.
    Some screenshots of my work:
    From the important places are opened: the airport in Veins, the left exit from Einbroch, the northern Einbroch railway station on Ein_Field04, the industrial zone on Ein_Field02, the border post between Ein_Field04 and Ein_Field05, the fortress on the map of Yuno_Field12, the entrance to the tower of Thanatos on Hu_Field01, the arch with a fountain on Ein_Fild09, the bridge in Lhz_Field02, the road from Ra_Fild06 to Ein_Field03 and more.
    Mini-maps changes (if any map is missing, it means everything is fine with it):









    P>S> Since the map of Ein_Field05 won in the nomination of the most extended territory -
    a small comic video showing progress in its honor:
    CODE: Warps lines below:
    //===== eAthena Script ======================================= //= New Warps for AMP //===== By: ================================================== //= w0wZukuBg //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= New Warps for AMP //===== Additional Comments: ================================= //= The NPC's were born. [w0wZukuBg] //============================================================ //======================================================= // ein_fild //======================================================= ein_fild02,134,123,0 warp newein01 1,1,ein_fild02,118,134 ein_fild02,121,131,0 warp newein02 1,1,ein_fild02,137,123 ein_fild02,223,137,0 warp newein03 1,1,ein_fild02,223,148 ein_fild02,223,145,0 warp newein04 1,1,ein_fild02,220,137 ein_fild02,186,226,0 warp newein05 1,1,ein_fild02,204,224 ein_fild02,201,224,0 warp newein06 1,1,ein_fild02,183,229 ein_fild04,385,181,0 warp newein07 1,1,ein_fild05,36,185 ein_fild05,33,185,0 warp newein08 1,1,ein_fild04,382,181 ein_fild05,35,167,0 warp newein09 1,1,ein_fild04,382,181 ein_fild05,120,292,0 warp newein10 1,1,ein_fild05,120,300 ein_fild05,120,297,0 warp newein11 1,1,ein_fild05,120,289 ein_fild06,231,81,0 warp newein12 1,1,ein_fild06,231,67 ein_fild06,231,70,0 warp newein13 1,1,ein_fild06,231,84 ein_fild03,245,55,0 script Lift-E02 139,2,2,{ OnTouch: mes "Lift up?"; next; if(select("Yes","Stay")==1) warp "ein_fild03",201,41; close; } ein_fild03,204,43,0 script Lift-E01 139,2,2,{ OnTouch: mes "Lift down?"; next; if(select("Yes","Stay")==1) warp "ein_fild03",248,53; close; } //======================================================= // ra_fild //======================================================= ra_fild09,362,76,0 warp newra01 1,1,lhz_fild01,15,79 lhz_fild01,12,79,0 warp newra02 1,1,ra_fild09,359,76 //======================================================= // ra_fild -> ein_fild //======================================================= ein_fild03,19,181,0 warp newraein01 1,1,ra_fild06,374,223; ra_fild06,377,223,0 warp newraein02 1,1,ein_fild03,22,181; //======================================================= // hu_fild //======================================================= hu_fild02,378,244,0 warp newhu01 1,1,hu_fild03,22,253 hu_fild03,19,253,0 warp newhu02 1,1,hu_fild02,375,244 hu_fild02,378,194,0 warp newhu03 1,1,hu_fild03,22,205 hu_fild03,19,205,0 warp newhu04 1,1,hu_fild02,375,194 hu_fild02,375,303,0 warp newhu05 1,1,hu_fild03,22,308 hu_fild03,19,308,0 warp newhu06 1,1,hu_fild02,372,303 hu_fild02,378,125,0 warp newhu07 1,1,hu_fild03,22,129 hu_fild03,19,129,0 warp newhu08 1,1,hu_fild02,375,125 //======================================================= // ve_fild //======================================================= ve_fild03,327,294,0 warp newve01 1,1,ve_fild04,34,322 ve_fild04,31,322,0 warp newve02 1,1,ve_fild03,324,294 ve_fild03,316,251,0 warp newve03 1,1,ve_fild04,42,295 ve_fild04,39,295,0 warp newve04 1,1,ve_fild03,312,251 //======================================================= // einbroch //======================================================= einbech,50,223,0 warp neweinb01 1,1,einbech,50,230 einbech,50,227,0 warp neweinb02 1,1,einbech,50,220 einbech,37,223,0 warp neweinb03 1,1,einbech,37,230 einbech,37,227,0 warp neweinb04 1,1,einbech,37,220 //======================================================= // veins //======================================================= veins,296,335,0 warp newve05 1,1,veins,290,342 veins,293,342,0 warp newve06 1,1,veins,275,352 veins,278,352,0 warp newve07 1,1,veins,296,332 //======================================================= // lighthalzen //======================================================= lighthalzen,241,163,0 warp newlhzs01 1,1,lighthalzen,265,163 lighthalzen,262,163,0 warp newlhzs02 1,1,lighthalzen,238,163 lighthalzen,282,327,0 warp newlhzs03 1,1,lhz_fild01,278,19 lhz_fild01,278,16,0 warp newlhzs04 1,1,lighthalzen,282,324 //======================================================= // juperos_ //======================================================= juperos_01,96,220,0 warp newjup01 1,1,juperos_01,152,183 juperos_01,149,185,0 warp newjup01-1 1,1,juperos_01,93,217 //======================================================= // jawaii //======================================================= jawaii,138,182,4 script Stairs#ja1 111,{ mes "[Stairs]"; mes "Want to go up or go down?"; next; switch(select("Up","Down")) { case 1: warp "jawaii",136,183; close; case 2: warp "jawaii",140,180; close; } close; }
  7. Like
    Khazou reacted to Ridley in March - April Digest 2019   
    March - April Digest 2019
    The following digest covers the month of March 1st - April 30th 2019

    Team Changes
    @Mystery is stepping back from his role as Community Administrator.  @Ridley is taking the role as Community Administrator  
    Development Highlights
    Added configuration to enable/disable achievement system (#2170) Updated packets, shuffle packets, keys and messages up to 2019-04-03 and added packet CZ_STYLE_CLOSE (#2406) Server is now sending Ping packets or clients 20190320 RE+ Add chat command /resetcooltime Add allow call option Open macro ui in client by request  
    Developmental Changes
    getinventorylist now creates extra variable named @inventorylist_idx, which returns items corresponding
    inventory index. (#2401) *gettimestr is now updated by *getcalendartim (#2388) change *rand() into *rnd() to prevent certain compiler issues (#2403) Deprecate *petstat and add CONSTANTS to *getpetinfo (#2398) Rename clif_charnameack into clif_blname_ack Add new server define constant MAX_ITEM_ID  (#2367) Add optional parameter for *showscript to send target to SELF only (#2415) Improvents on RoDex (#2437) Add account id and char id into inter server rodex update packet Improve get zeny and items from rodex Automatically migrate pets to the new system that keeps hatched eggs in the inventory (#2428)  
    Bug Fixes
    Fix UDT_LEVEL when show_mob_info level display is on (#2408) Fix pet autofeed feature (#2417) Fiix a bug when loading mob_skill_db.sql (#2416) Add missing enum value for clif_feel_req Fix possible null pointers in battle.c and clif.c Fix @bodystyle crash client (#2402) Special thanks to
    @Haru @4144 @hemagx @AnnieRuru @louisplag @KirieZ
  8. Upvote
    Khazou reacted to 4144 in Some upcoming hercules features   
    Futures already added to hercules:
    Inventory expanding
    Supported from clients: 2018-10-31 ragexe/ragexeRE, 2018-11-14 zero.
    For expand inventory need to have in inventory item Inventory_Extension_Coupon (25793)
    Barter shop
    Supported from  clients: 2019-01-16 ragexe/ragexeRE, 2018-12-26 zero.
    For shop barter shop need uncomment line
    "npc/custom/bartershop.txt", in npc/scripts_custom.conf. Barter shop demo npc will be added in prontera at (159, 284).
    Most client exes can be downloaded here: http://nemo.herc.ws/downloads/
  9. Upvote
    Khazou reacted to Sashi in Card Shredder Edit   
    i wrote this NPC for my server Sanctuary RO, with the intention of sharing since it took a lot of work to write i wanted to let other people use the same NPC or be able to edit it or take snippets from it to use in their own creations

    i'm designing the server economy to depend on cards so i wrote an NPC that will dispense coins every time a card is traded baised on how often that card is traded in by the whole server
    note that item 9204 is a custom item on my server and it will probably need to be changed 
    there may have been easier or cleaner ways to write this NPC but it absolutely works, the only issue is if you have too many cards in your inventory the menu wont display them all but it requires a lot to hit that point
  10. Upvote
    Khazou reacted to w0wZukuBg in [Showcase] Arena R4   
    Check out my first release - a map with trains for routes 
    between Einbroch and Lighthalzen here:
  11. Upvote
    Khazou reacted to Cabrera in [Release] 2018 Clients translated tipbox   
    Hello everyone, I present to you a modified tip box which has been completely translated to English. 
    Tested on: 2018-04-04c RagexeRE and worked like a charm.
    In your System folder in Client side, replace your tipbox.lub with my translated tipbox i have attached below:
    Then, Patch your client with whatever settings you want and then open the patched client in hexeditor ( I used XV132 for this)
    IMPORTANT NOTE : Make sure you hex a "patched" client. DO NOT do it on an unpatched client or else NEMO will show errors for random "recommended patches" that you select while patching it.
    Find the following and replace with hex for english translation : for checkbox: BD C3 C0 DB C7 D2 20 B6 A7 20 BF AD B1 E2 English translation: 53 61 76 65 20 54 69 70 3F 20 20 20 20 20 for close button : B4 DD B1 E2 English translation : 44 6F 6E 65 (korean translation of close has only 4 strings so I had to replace it with "Done" to match the string size -_-) OR go to your NEMO folder/patches/TranslateClient.txt and add this at the end of it then patch your clients: (Thanks to @Asheraf for telling me about this xD)
    M: Translate Tip box ------------------------------ F: BD C3 C0 DB C7 D2 20 B6 A7 20 BF AD B1 E2 R: 'Save Tip?' F: B4 DD B1 E2 R: 'Done' if you did everything as said, this will be your result :
    Old tip box:

    New translated tipbox:

    -- On a funny Note, I had no clue what the korean translation for the Check box was LOL so I just randomly translated it to "Save tip?" instead cuz it was a logical solution LMAO 
  12. Upvote
    Khazou reacted to bWolfie in [Guide] Mapcache Generation 2018   
    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!
  13. Upvote
    Khazou reacted to Mystery in Digests Galore 2017-2018   
    January Digest 2018
    The following digest covers the month of January 1st - January 31st 2018

    Team Changes
    Development Highlights
    Added support for the AllowReproduce flag in the skill DB. This supersedes the skill_reproduce_db. (#1943) Added support for the ZC_PROGRESS_ACTOR packet. The packet is exposed to the script engine through the progressbar_unit() command (available on PACKETVER 20130821 and newer). (#1929) Added support for the new item drop packet for the Zero clients. The packet is controlled by the ShowDropEffect and DropEffectMode item DB flags and ignored by non-Zero clients. (#1939) Added support for the new Map Server Change packet 0x0ac7. (part of #1948)  
    Developmental Changes
    Removed the skill_reproduce_db, now superseded by the AllowReproduce skill flag. (part of #1943) Always enabled assertions and null pointer checks. In order to disable them (very discouraged, as it may lead to security issues), it is now necessary to edit nullpo.h. (#1937) Disabled the address sanitizer's memory leak detector in the travis builds, since it produced failures in third libraries. (#1949, #1952) Applied script standardization to the Nydhogg's Nest instance script. (#1871) Split packet_keys.h into separate files for main clients and zero clients. (part of #1948) Split packets_shuffle.h into separate files for main clients and zero clients. (part of #1948) Replaced the custom bank unavailable error message with the actual bank check error packet. (part of #1948) Updated and corrected the party member and party info packets. (part of #1948) Updated README.md with more relevant badges and links (added Discord, removed Waffle, added more GitHub information). (#1951)  
    Bug Splat Fixes
    Updated Xcode project to include the RODEX related files. (#1942) Fixed RODEX loading mails when it requires multiple packets. (#1945, issue #1933)  
    December Digest 2017
    The following digest covers the month of December 1st - December 31st 2017

    Team Changes
    Development Highlights
    Implemented Homunculus Autofeeding, available on the 2017 clients. The feature can be disabled by flipping features.enable_homun_autofeed in feature.conf. (#1898) Added support for the newly released Ragnarok Zero clients. The client type is controlled with the --enable-packetver-zero configure-time flag (disabled by default). (#1923)  
    Developmental Changes
    Applied script standardization to the Old Glast Heim instance script. (#1883) Split packets.h into two files: packets.h and packets_shuffle.h. (part of #1923)  
    Bug Splat Fixes
    Corrected a wrong path displayed in an error message pointing to the map-server configuration. (#1913) Fixed the natural expiration of the Poison status when under the effect of Slow Poison. (#1925)  
    November Digest 2017
    The following digest covers the month of November 1st - November 30th 2017

    Team Changes
    Development Highlights
    Added several missing members to the login interface. (Part of #1891) Added support for colored character server population counter in the service selection list. Configurable through users_count in login-server.conf. (#1891) Added top-level command miniboss_monster to label monsters as minibosses, and to send them as such to the client. (part of #1889) Added support for 2017-10-25 - 2017-11-01 clients. (#1889) Added support to display NPCs with player classes, including equipment and styles (best with clients starting from 20170726). This extends getunitdata() and setunitdata() with support for UDT_SEX, UDT_HAIRSTYLE, UDT_HAIRCOLOR, UDT_HEADBOTTOM, UDT_HEADMIDDLE, UDT_HEADTOP, UDT_CLOTHCOLOR, UDT_SHIELD, UDT_WEAPON, UDT_ROBE, UDT_BODY2. (#1893) Added type constants for the getiteminfo() and setiteminfo() script commands. Existing third party code must be updated to use the new constants (see the pull request description and the command documentation for details). (#1902) Added global function F_GetAmmoType(), counterpart to F_GetWeaponType() for ammunitions. Both functions have now been updated to only check the subtype if the item type is correct (IT_AMMO and IT_WEAPON respectively). (part of #1902) Added support for the Skill Scale packet, available in client versions 20151223 and newer. (#1903)  
    Developmental Changes
    The use of numeric type constants with getiteminfo() and setiteminfo() is deprecated. For technical reasons, no deprecation notice is displayed. (part of #1902) The MAX_SKILL constant has been removed, in favor of the more clear MAX_SKILL_DB, to be used in all places that use the compacted Skill DB array. For use with the non-compacted clientside Skill IDs, the MAX_SKILL_ID constant is still available. (part of #1896) Applied script standardization to the Octopus Cave instance script. (#1882) Applied script standardization to the Ghost Palace instance script. (#1879) Applied script standardization to the Sara's Memory instance script. (#1884) Extended the script command setequipoption() with the possibility to remove item options from an equipment piece. (#1865) Updated the QTYPE_* constants (questinfo(), showevent()) to support the new 2017 client icons. (#1894) Applied script standardization to the Orc's Memory instance script. (#1872) Applied script standardization to the Sealed Shrine instance script. (#1873) Extended the global function F_GetArmorType() to support costumes and shadow equipment. (#1836) Extended the script commands has_instance() and has_instance2() with suport to search instances of type IOT_NONE. (#1397) Applied script standardization and improvements to the Endless Tower instance script. (#1862) Cleared some confusion between skill IDs and indexes through the codebase. Rewritten Skill DB accessors in a safer, more readable way. (part of #1896)  
    Bug Splat Fixes
    Fixed compilation warnings when compiling with gcc-7. (#1887) Fixed the display flag for monsters labeled as boss_monster to be that of MVP monsters instead of miniboss monsters. (part of #1889) Fixed a subtle error in case skill->unit_group_newid overflows, causing certain skill unit entries to get stuck and never get deleted correctly. This can manifest itself with some monster spawns becoming immune to certain AoE spells having the UF_NOOVERLAP flag (Storm Gust, Lord of Vermillion, etc). (#1896) Implemented MATK support in the getiteminfo() and setiteminfo(). This functionality was previously advertised as availble in the command documentation, but was not implemented. (part of #1902) Restored View Sprite support in the getiteminfo() and setiteminfo(). This functionality was lost with #1828. (part of #1902, issue #1895) Reimplemented the global function F_GetArmorType() to reflect the fact that ITEMINFO_LOC returns a bitmask. The function now handles multi-slot headgears and other uncommon cases better. (part of #1902) Corrected some incorrect data types passed to the SQL StmtBind functions, causing query errors and data loss. Said functions will now have a runtime assertion to ensure the right data type is passed. Third party code needs to be updated to reflect this stricter requirement. (#1901, issue #1531) Corrected some RODEX related queries in case MAX_SLOTS or MAX_ITEM_OPTIONS are set to custom values. (part of #1901) Suppressed assertions in the Skill DB accessors when called with skill_id = 0 (normal attacks). (#1910, issue #1909) Fixed an item loading failure in RODEX. (#1917, issue #1912) Fixed invisible NPCs (such as FAKE_NPC) being displayed as novices. (#1918, issue #1916)  
    October Digest 2017
    The following digest covers the month of October 1st - October 31st 2017

    Team Changes
    Development Highlights
    Added the script command getmapinfo(), which allows to obtain misc information about a map. (#1852) Added an option to restrict party leader changes to characters on the same map. Controlled by the setting party_change_leader_same_map (defaults to true). (#1812) Added initial support (shuffle packets, obfuscation keys) for clients 2017-09-27, 2017-10-02, 2017-10-11, 2017-10-18. (#1859) Added the noautoloot mapflag, allowing to disable the @autoloot functionality on a map by map basis. (#1833)  
    Developmental Changes
    Extended the script command logmes() with an option to log to the atcommandlog table. (#1843) Updated RoDEX, with support for packetver 20170419 and newer. (#1859) Updated Exp-related packets and handling functions to support values larger than 2 billions (as seen in packetver 20170830 and newer). (#1859) Changed the diagnostic message in skill_init_unit_layout() to report the skill ID instead of its index. (#1854)  
    Bug Splat Fixes
    Corrected the Kafra dialog in case a Doram without the Summoner's Basic Skill attempts to open the Storage. (#1864) Changed the cell stack counting algorithm to ignore invisible NPCs, improving the Dancer Quest experience as well as other cases of hidden NPCs blocking off certain cells. (#1827) Improved the handling of the cardfix value to make it more resistant to overflows, especially in renewal mode. Simplified the related renewal/pre-renewal conditional code. (#1825) Fixed some compilation warnings occurring in VS2017. (#1870) Fixed a wrong null pointer check in logmes(), which caused the command to never log and instead print debug information.  
  14. Upvote
    Khazou reacted to Mystery in September Digest 2017   
    September Digest 2017
    The following digest covers the month of September 1st - September 30th 2017
    Team Changes
    Development Highlights
    Adjust rodex packet versions based on tests Add SC_DAILYSENDMAILCNT into constants.conf and sc_config.txt Add missing checks in attaching item to rodex mail Reimplement getiteminfo/setiteminfo in a safer and more maintainable way Split 'View' in two different fields in the item database Update item DB (View -> ViewSprite) Update item DB (View -> Subtype) Differentiate variables that hold a ViewSprite and a weapon Subtype (Part 2) Added Constant SEX_ANY (2) for Male and Female genders Move other view-related variables to `sd->status.look`  allow buildin_getgroupid to take a GID Packet Additions / Changes: Change char server packets for 20170830 and newer clients. Split packets and packets keys. Add autogenerated encryption keys list for all client versions. Add non shuffle packets for 2017-06-14bRagexeRE and newer. Add shuffle packets for all 2014 ragexe clients. Add shuffle packets for all 2015 ragexe clients. Add shuffle packets for all 2016 ragexeRe clients. Add shuffle packets for all released 2017 ragexeRe clients.  
    Database Highlights
    Add item subtype (weapon/ammunition type) constants Bitmask entries for weapons, ammunition, armors, etc. have been replaced with constants: Replace W_DAGGER in the item database Replace W_1HSWORD in the item database Replace W_2HSWORD in the item database Replace W_1HSPEAR in the item database Replace W_2HSPEAR in the item database Replace W_1HAXE in the item database Replace W_2HAXE in the item database Replace W_MACE in the item database  Replace W_STAFF in the item database Replace W_BOW in the item database Replace W_KNUCKLE in the item database Replace W_MUSICAL in the item database Replace W_WHIP in the item database Replace W_BOOK in the item database Replace W_KATAR in the item database Replace W_REVOLVER in the item database  Replace W_RIFLE in the item database Replace W_GATLING in the item database Replace W_SHOTGUN in the item database Replace W_GRENADE in the item database  Replace W_HUUMA in the item database Replace W_2HSTAFF in the item database Replace A_ARROW in the item database  Replace A_DAGGER in the item database  Replace A_BULLET in the item database Replace A_GRENADE in the item database Replace A_SHURIKEN in the item database Replace A_KUNAI in the item database Replace A_CANNONBALL in the item database Replace A_THROWWEAPON in the item database  
    Scripting Highlights
    Fix errors in the Diamond seller script  
    September Statistics
    During the period there were 24 Commits. 6 Commits from Pull Requests with 0 Bugs* fixed from merged issues.  
    *Please note: Bug fixes are counted as references to issues; it does not include bugs that have been fixed without issue reference. The number of commits includes those that were merged.
  15. Upvote
    Khazou reacted to Temtaime in New life for RO   
    In the next beta will be support for hotkeys and some another effects, so with that version will be made some vids
  16. Upvote
    Khazou reacted to astralprojection in Cannot Convert Korean to Ascii in Notepad++   
    Encoding > Character Sets > Western European > ISO 8859-1
  17. Upvote
    Khazou reacted to Temtaime in New life for RO   
    Hello everybody !
    I'm working about two years on writing a complete new RO client. I hadn't so much time, as I'd wish, but now it's almost ready for a basic gameplay.
    So what are the advantages of having own RO client ?
    RO doesn't depend anymore on Koreans. It gives an ability for releasing of any new feature, whatever the players want: new 3D mobs, dynamically generated locations, everything you want.
    The client is cross-platform and can work on Windows, Linux, Mac OS X and Android natively.
    Thanks to using of new computer graphics features, the client works faster, consumes fewer resources, providing better graphics. For example, it loads a location instantly(to be more precise, it takes ~15 ms to load a map) - so no waiting anymore !
    What are the features we have today ?
    Dynamic shadows and per-pixel shading(no strange blur on the ground anymore!).
    Correct rendering of all the sprites and locations including all the animations on the locations.
    Rendering the best part of effects.
    The most part of UI.
    All the network communications with server.
    But there are some missing features: some part of UI(skill UI for example), and some in-game interactions are missed. But all these will be fixed soon.
    I would find those who are interested in that project, because it will be the only project, which will be used on the servers providing better game experience.
    Also, a development of the project requires some means and other help, so if you have a mind and in the position, you can write to me in PM or in these comments.
    Some screenshots:

  18. Upvote
    Khazou reacted to Smoke in Hercules Ultimate Storage System (HUSS)   
    Hey all,
    I had an idea to implement the ultimate storage system with which users of Hercules would be able to create as many storages as they want without a hassle. And so I worked on Hercules Ultimate Storage System (HUSS). The basic idea of the design has been completed and at this point it is ready to be tested. I wanted to gather suggestions to further extend the system, hence this topic.
    To test the system, simply visit my fork of Hercules in the storages branch and clone it.
    Storage.conf Example Entry
    { Id: (int) (required|unique) Unique Identifier Name: (string) (required) Name of the storage sent to the client. Capacity: (int) (required) Maximum capacity of the storage. }
    All storages are handled with dynamic arrays that will save a tonne of memory if and when created.
    They are saved in the same storage database (SQL) as the original separating them by a storage identifier.
    An infinite number of storages can be created, there are no limits.
    The current design implementation only allows saving/loading of approximately 1600 items per storage due to packet size limits.
    Script Command Changes
    *openstorage(<storage_id>{, <storage_mode>}) Default Storage Access Mode: STORAGE_ACCESS_ALL This will open character's Kafra storage window on the client connected to the invoking character. It can be used from any kind of NPC or item script, not just limited to Kafra Staff. The storage window opens regardless of whether there are open NPC dialogs or not, but it is preferred to close the dialog before displaying the storage window, to avoid any disruption when both windows overlap. mes("I will now open your stash for you"); close2(); openstorage(1); end; Storage Modes: STORAGE_ACCESS_VIEW // View storage only STORAGE_ACCESS_GET // Allow getting items from storage. STORAGE_ACCESS_PUT // Allow putting items to storage. STORAGE_ACCESS_ALL // Allow all actions.  
    So if you guys have any suggestions or ideas that would better the system for Hercules, feel free to comment below
  19. Upvote
    Khazou got a reaction from baray in - Map Water -   
    You just forget to disable Renewal mechanics in src/config/renewal.h
    Just comment the line to disable it, recompile, and it will change your novice map to a correct one
  20. Upvote
    Khazou reacted to Tio Akima in New Heads - beards   
    New heads I'm making for Ragnarok Online. Heads with beard. Will be 6 new heads.

  21. Upvote
    Khazou got a reaction from Arduino in getmapusers - More options   
    You can use this
    *getunits(<type>, <variable>, <limit>, "<map>"{, <x1>, <y1>, <x2>, <y2>}) This function searches a whole map or area for units and adds their GID to the provided <variable> array. It filters units by <type> and stops searching after <limit> units have been found. Set <limit> to false (0) if you wish to disable the limit altogether. Type is the type of unit to search for: BL_PC - Character object BL_MOB - Monster object BL_PET - Pet object BL_HOM - Homunculus object BL_MER - Mercenary object BL_IEM - Item object (item drops) BL_SKILL - Skill object (skill fx & sfx) BL_NPC - NPC object BL_CHAT - Chat object BL_ELEM - Elemental object BL_CHAR - Shorthand for (BL_PC|BL_MOB|BL_HOM|BL_MER|BL_ELEM) BL_ALL - Any kind of object ** Do NOT use UNITTYPE_ constants here, they have different values. Example: [email protected] = getunits((BL_PC | BL_NPC), [email protected], false, "prontera"); The above example would search the map "prontera" for all PC and NPC units and add them to the [email protected] array, while setting [email protected]ount to the amount of units added to the array (useful in for() loops).
  22. Upvote
    Khazou reacted to Smoke in #max_skill and chrif_authok   
    This is because after the item options PR was merged, the size of the packet that is sent to the map server carrying character details exceeds the size limit per packet. There is a PR in the works with a fix to this problem.
  23. Upvote
    Khazou reacted to Smoke in Refinery UI   
    kRO had released anew refinery interface for item refinement last year in their 2016-10-* clients.
    A preview of my implementation:

    I already have it working on my local Hercules branch. A big thanks to @Asheraf for providing information from kRO. This will be available for Hercules as and when it support the newer clients.
    Just thought I'd share the info here
    Hope for its release soon!
  24. Upvote
    Khazou reacted to Smoke in Introducing the Item Options System   
    Introducing the Item Options System!

    Feature Information
    The Item Option System is a feature that was implemented in 2015-02-26 clients, allowing equipments to have up to 5 additional effects similar to cards or enchants. Each equipment is capable of having 5 information bars above the card slot/enchant bar that describes the effect of the option it is infused with.
    New Script Commands (The following snippet is available in doc/script_commands.txt.)
    *getequipisenableopt(<equipment slot>) This function checks if the equipped item allows the use of bonus options. Returns 1 if allowed, 0 if not. --------------------------------------- *getequippedoptioninfo(<info_type>); This function is to be used with the scripts of contents listed in db/item_options.conf only. Returns the value of the current equipment being parsed. If the equip was not found or the type is invalid, -1 is returned. --------------------------------------- *getequipoptioninfo(<equip_index>,<slot>,<type>); Gets the option information of an equipment. <equipment_index> For a list of equipment indexes see getequipid(). <option_slot> can range from 1 to MAX_ITEM_OPTIONS <type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf) or IT_OPT_VALUE (the value of the bonus script of the equipment, @see "Script" in db_item_options.conf). returns the value of the slot if exists or -1 for invalid slot, type or slots. --------------------------------------- *setequipoption(<equip_index>,<slot>,<opt_index>,<value>); Set an equipment's option index or value for the specified option slot. <equipment_index> For a list of equipment indexes see getequipid(). <option_slot> can range from 1 to MAX_ITEM_OPTIONS <type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf) <value> The value of the type to be set. returns 0 if value couldn't be set, 1 on success.  
    Release Notes
    This system allows the infusing of equipments with bonus item options. This feature is constrained to clients of packet versions greater than or equal to 20150226. Item Options and their effects are defined server-side in db/item_options.conf and client side in data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub The ID of the option must tally with the correct index of the description provided in the client side file. IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants. If you wish to disable item options for certain (equipment) items, an additional flag `disable_options` has been added to the item sql tables, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to the item_db.conf files. Documentation is provided for script commands. If upgrading, don't forget to run the sql upgrade files!
    A big thanks to all the reviewers that helped make the code closer to perfection. -
    Emistry, dastgir, MishimaHaruna, Jedzkie, Ridley8819, Asheraf, 4144.
    Style and Script Fixes by Asheraf (https://github.com/Asheraf)
    Initial design Idea in rAthena commit.
  25. Upvote
    Khazou reacted to Mystery in Templates : Issues & Pull Request   
    Hey everyone,
    We recently implemented Issue & Pull Request templates. You can find them here:
    Pull Request : https://github.com/HerculesWS/Hercules/blob/master/.github/PULL_REQUEST_TEMPLATE.md Issues : https://github.com/HerculesWS/Hercules/blob/master/.github/ISSUE_TEMPLATE.md  
    Basically, when users are creating Issues or Pull Requests, they will see this form. This helps Hercules' Developers & Contributors by having the right details at the start of a thread. It ensures issues get resolved quickly and time isn't wasted. These templates are a step forward to help lessen issues or pull requests that do not meet requirements. Failure to follow these templates will result in an automatic closure of the issue or pull request. 
    It is important for users to follow these templates and fill them out when creating issues and / or pull requests. 

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.