Skip to content

v2024.04

Latest
Compare
Choose a tag to compare
@MishimaHaruna MishimaHaruna released this 01 May 18:57
a2d8e27

Added

  • Implemented skill->get_index_sub(), allowing to prevent error reports on the console when a skill is not found, for testing whether a skill exists in places where its absence is not an error. (#3292)
  • Implemented (m)atk/(m)def percent system: (#3290)
    • Implemented percent atk/def/matk/mdef bonus calculation, matching the official behavior
    • Added the AtkPerc, DefPerc, MatkPerc, MdefPerc calc flags to sc_config.conf to trigger recalculation of the respective stats
    • Added atk percent bonus to the client's status window like on official servers (note: the matk percent bonus is not displayed)
    • Added def percent bonus to the client's status window (included in the soft def)
    • Implemented official behavior for skills/status changes that officially rely on this system (detailed below)
  • Added the script command getitemgroupitems() to obtain a list (without duplicates) of all items contained in a given item group (#3275)
  • Added support for the ZC_SOULENERGY packet for displaying soul balls, split from ZC_SPIRITS for new clients (#3291)

Changed

  • Converted handling of packets ZC_SKILL_SELECT_REQUEST, CZ_SKILL_SELECT_RESPONSE and ZC_SPIRITS2 to the structure format. (#3292, #3291)
  • Changed the Tarot Card of Fate (CG_TAROTCARD) Strength (atk), The Magician (matk), The Devil (atk, matk), The Sun (atk, matk, def) bonus calculation to use the newly implemented atk/def percent system. This includes the new SCs SC_TAROTCARD_ATK_PERC, SC_TAROTCARD_MATK_PERC, SC_TAROTCARD_DEF_PERC. (#3290)
  • Changed the Gospel (PA_GOSPEL) bonus calculations to use the newly implemented atk/def percent system. This includes the new SC SC_GOSPEL_ATK_PERC. (#3290)
  • Changed the Provoke (SM_PROVOKE, MER_PROVOKE) SC (SC_PROVOKE) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Concentration (LK_CONCENTRATION) SC (SC_CONCENTRATION) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Bloodlust (HAMI_BLOODLUST) SC (SC_HAMI_BLOODLUST) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Vital Strike (LK_JOINTBEAT) SC (SC_JOINTBEAT) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Eske (SL_SKE) SC (SC_SKE) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Fleeting Move (HFLI_FLEET) SC (SC_HLIF_FLEET) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Curse SC (SC_CURSE) to use the newly implemented atk/def percent system. (#3290)
  • Changed SC_INCATKRATE to use the newly implemented atk/def percent system. (#3290)
  • Changed the Divest Weapon (RG_STRIPWEAPON) SC (SC_NOEQUIPWEAPON) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Mind Breaker (PF_MINDBREAKER) SC (SC_MINDBREAKER) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Divest Shield (RG_STRIPSHIELD) SC (SC_NOEQUIPSHIELD) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Fling (GS_FLING) SC (SC_FLING) to use the newly implemented atk/def percent system. (#3290)
  • Changed the Angelus (AL_ANGELUS) SC (SC_ANGELUS) to use the newly implemented atk/def percent system. (#3290)
  • Changed Poison (SC_POISON) and Deadly Poison (SC_DPOISON) to use the newly implemented atk/def percent system. (#3290)
  • Changed Asura Strike (MO_EXTREMITYFIST) to ignore atk percent bonuses. (#3290)
  • Changed several functions to take or return enum scb_flag where appropriate. (#3290)
  • Added a compatibility workaround for enum scb_flag (via typedef to e_scb_flag and int64_t constants) for pre-C23 MSVC versions that don't support enum values larger than 32 bit. This is only conditionally enabled on such compilers, and will be dropped when we'll be able to switch the C standard to C23. (#3290)
  • Split handling of the spiritball clif function into clif->spiritballs() and clif->soulball(), with incompatible arguments to the old clif->spiritball() calls. Second argument is now the amount of spheres, instead of their type. (#3291)

Fixed

  • Fixed a memory leak when reloading the unit params db (#3288)
  • Fixed an assertion failure in Auto Shadow Spell when the character has no cloned or reproduced skills. (#3292)
  • Fixed Auto Shadow Spell's inability to switch to a skill with a lower skill id than the previously selected one. (#3292)
  • Fixed an assertion failure when clicking "ok" with no skills selected or clicking "cancel" in Shadow Spell. (#3292, issue #3286)
  • Fixed the value of the flag field of packet ZC_SKILL_SELECT_REQUEST, expected to be 1 (meaning auto shadow spell) rather than the amount of skills in the list. (#3292)
  • Fixed soul balls not displaying correctly in clients from 2020 onwards. (#3291)

Deprecated

  • Support for C99 is deprecated and will be removed soon. C11 will be the required C standard since all the officially supported compilers implement that. This is a reminder that the mainstream support for VS2019 by Microsoft ended on Apr 9 2024, making VS2022 (version 17.4 and newer) the only version we currently support officially.

Other

  • Work on the rebalance patch is continuing on the rebalance branch.