Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Browse files Browse the repository at this point in the history
  • Loading branch information
csnv committed May 1, 2024
2 parents a1d6984 + a2d8e27 commit 2ede338
Show file tree
Hide file tree
Showing 31 changed files with 1,253 additions and 388 deletions.
2 changes: 2 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ linton-dawson <pushkarkukde@gmail.com>
LiYu <cairoliyu@gmail.com>
louisplag <42522191+louisplag@users.noreply.github.com>
Lucas Brito <lucasljsb@gmail.com>
Lucas Golino <lucasgolino@gmail.com>
M45T3Ryu <jose-pro_h4kr@hotmail.com>
malufett <malufett.eat.my.binaries@gmail.com>
maqc1 <alex--223@hotmail.com>
Expand Down Expand Up @@ -178,6 +179,7 @@ TungSinpei <TungSinpei@hotmail.com>
ultramage <umage@netvor.sk>
Unknown <nightcoremax@gmail.com>
Victor <victor.lombardi@insa-rouen.fr>
vietlubu <baoviet3010@gmail.com>
Vincent Thibault <vthibault.mobile@gmail.com>
Wolfie@HP-Laptop <wolfie.blackoutro@gmail.com>
Wolf <vitinho.senos@live.com>
Expand Down
56 changes: 56 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,61 @@ If you are reading this in a text editor, simply ignore this section
### Removed
-->

## [v2024.04] `April 2024`

### 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.

## [v2024.03] `March 2024`

### Added
Expand Down Expand Up @@ -3035,6 +3090,7 @@ Note: everything included in this release is part of PR #3198 which consists of
- New versioning scheme and project changelogs/release notes (#1853)

[Unreleased]: https://github.com/HerculesWS/Hercules/compare/stable...master
[v2024.04]: https://github.com/HerculesWS/Hercules/compare/v2024.03...v2024.04
[v2024.03]: https://github.com/HerculesWS/Hercules/compare/v2024.02...v2024.03
[v2024.02]: https://github.com/HerculesWS/Hercules/compare/v2023.12...v2024.02
[v2023.12]: https://github.com/HerculesWS/Hercules/compare/v2023.11...v2023.12
Expand Down
4 changes: 4 additions & 0 deletions db/constants.conf
Original file line number Diff line number Diff line change
Expand Up @@ -1307,6 +1307,10 @@ constants_db: {
SC_SOULDIVISION: 716

SC_ACTIVE_MONSTER_TRANSFORM: 717
SC_TAROTCARD_ATK_PERC: 719
SC_TAROTCARD_MATK_PERC: 720
SC_TAROTCARD_DEF_PERC: 721
SC_GOSPEL_ATK_PERC: 722

comment__: "Emotes"
e_gasp: 0
Expand Down
94 changes: 63 additions & 31 deletions db/pre-re/sc_config.conf
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ SC_TYPE: {
Range: (bool, defaults to false)
Regen: (bool, defaults to false)
Dye: (bool, defaults to false)
AtkPerc: (bool, defaults to false)
DefPerc: (bool, defaults to false)
MatkPerc: (bool, defaults to false)
MdefPerc: (bool, defaults to false)
All: (bool, defaults to false)
}
Icon: (string, defaults to SI_BLANK) The status icon attached to the SC
Expand All @@ -92,10 +96,8 @@ SC_PROVOKE: {
NoBoss: true
}
CalcFlags: {
Batk: true
Watk: true
Def: true
Def2: true
AtkPerc: true
DefPerc: true
}
Icon: "SI_PROVOKE"
Skill: "SM_PROVOKE"
Expand Down Expand Up @@ -198,7 +200,7 @@ SC_ANGELUS: {
Buff: true
}
CalcFlags: {
Def2: true
DefPerc: true
}
Icon: "SI_ANGELUS"
Skill: "AL_ANGELUS"
Expand Down Expand Up @@ -459,7 +461,7 @@ SC_NOEQUIPWEAPON: {
Buff: true
}
CalcFlags: {
Watk: true
AtkPerc: true
}
Icon: "SI_NOEQUIPWEAPON"
Skill: "RG_STRIPWEAPON"
Expand All @@ -473,7 +475,7 @@ SC_NOEQUIPSHIELD: {
Buff: true
}
CalcFlags: {
Def: true
DefPerc: true
}
Icon: "SI_NOEQUIPSHIELD"
Skill: "RG_STRIPSHIELD"
Expand Down Expand Up @@ -756,11 +758,9 @@ SC_LKCONCENTRATION: {
Buff: true
}
CalcFlags: {
Batk: true
Watk: true
Hit: true
Def: true
Def2: true
AtkPerc: true
DefPerc: true
}
Icon: "SI_LKCONCENTRATION"
Skill: "LK_CONCENTRATION"
Expand Down Expand Up @@ -980,8 +980,8 @@ SC_JOINTBEAT: {
Debuff: true
}
CalcFlags: {
Batk: true
Def2: true
AtkPerc: true
DefPerc: true
Speed: true
Aspd: true
}
Expand All @@ -994,8 +994,8 @@ SC_MINDBREAKER: {
Buff: true
}
CalcFlags: {
Matk: true
Mdef2: true
MatkPerc: true
MdefPerc: true
}
Skill: "PF_MINDBREAKER"
}
Expand Down Expand Up @@ -5389,7 +5389,7 @@ SC_MIRACLE: {
}
SC_POISON: {
CalcFlags: {
Def2: true
DefPerc: true
Regen: true
}
Icon: "SI_CLOUDKILL"
Expand Down Expand Up @@ -5532,10 +5532,8 @@ SC_ALMIGHTY: {
}
SC_SKE: {
CalcFlags: {
Batk: true
Watk: true
Def: true
Def2: true
AtkPerc: true
DefPerc: true
}
Icon: "SI_SKE"
Skill: "SL_SKE"
Expand Down Expand Up @@ -5568,8 +5566,7 @@ SC_SLEEP: {
SC_CURSE: {
CalcFlags: {
Luk: true
Batk: true
Watk: true
AtkPerc: true
Speed: true
}
Skill: "NPC_CURSEATTACK"
Expand All @@ -5586,7 +5583,7 @@ SC_BLIND: {
}
SC_DPOISON: {
CalcFlags: {
Def2: true
DefPerc: true
Regen: true
}
Skill: "NPC_POISON"
Expand Down Expand Up @@ -5723,8 +5720,7 @@ SC_KNOWLEDGE: {
}
SC_FLING: {
CalcFlags: {
Def: true
Def2: true
DefPerc: true
}
Skill: "GS_FLING"
}
Expand All @@ -5743,15 +5739,13 @@ SC_HLIF_CHANGE: {
}
SC_HAMI_BLOODLUST: {
CalcFlags: {
Batk: true
Watk: true
AtkPerc: true
}
Skill: "HAMI_BLOODLUST"
}
SC_HLIF_FLEET: {
CalcFlags: {
Batk: true
Watk: true
AtkPerc: true
Aspd: true
}
Skill: "HFLI_FLEET"
Expand Down Expand Up @@ -5902,8 +5896,7 @@ SC_INCMSPRATE: {
}
SC_INCATKRATE: {
CalcFlags: {
Batk: true
Watk: true
AtkPerc: true
}
}
SC_INCMATKRATE: {
Expand Down Expand Up @@ -6408,3 +6401,42 @@ SC_ACTIVE_MONSTER_TRANSFORM: {
SC__FEINTBOMB_MASTER: {
Skill: "SC_FEINTBOMB"
}
SC_TAROTCARD_ATK_PERC: {
Flags: {
NoSave: true
NoClearanceReset: true
Debuff: true
}
CalcFlags: {
AtkPerc: true
}
}
SC_TAROTCARD_MATK_PERC: {
Flags: {
NoSave: true
NoClearanceReset: true
Debuff: true
}
CalcFlags: {
MatkPerc: true
}
}
SC_TAROTCARD_DEF_PERC: {
Flags: {
NoSave: true
NoClearanceReset: true
Debuff: true
}
CalcFlags: {
DefPerc: true
}
}
SC_GOSPEL_ATK_PERC: {
Flags: {
NoSave: true
Debuff: true
}
CalcFlags: {
AtkPerc: true
}
}
Loading

0 comments on commit 2ede338

Please sign in to comment.