Jump to content
Sign in to follow this  

February Digest 2020

Recommended Posts

February Digest 2020

The following digest covers the month of February 1st - February 29th 2020

Team Changes



  • 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)



  • None



  • None


Special thanks to

@Haru, @4144, @Kenpachi, @Asheraf


Additional thanks to @Haziel for creating the badge for the retired staff group

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Create New...

Important Information

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