From c03722679a01e5f181c2138565e95a6b0981a124 Mon Sep 17 00:00:00 2001 From: Haru Date: Mon, 13 Jan 2020 08:42:16 +0100 Subject: Release v2020.01.12 Signed-off-by: Haru --- CHANGELOG.md | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 115 insertions(+), 19 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 10b671e3f..4033ec590 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,31 @@ and this project does not adhere to [Semantic Versioning](http://semver.org/spec If you are reading this in a text editor, simply ignore this section --> +## [v2020.01.12] `January 12 2020` + +### Added + +- Added/updated packets, encryption keys and message tables for clients up to 2020-01-08. (#2599) +- Added support for auto exp insurance items. (#2603) +- Added the script commands `resetfeel()` and `resethate()`. (#2285) +- Added the atcommand `@hatereset`. (part of #2285) + +### Changed + +- Extracted packet `ZC_SE_CASHSHOP_OPEN` to a separate function. (part of #2599) +- Renamed the functions `clif_parse_CashShop*` into `clif_parse_cashShop*`. (part of #2599) +- Converted `clif_partytickack()` to use the struct version of packet `ZC_PARTY_CONFIG`. (part of #2599) +- Extended `setpcblock()` with a new `PCBLOCK_NPC` functionality to prevent players interacting with NPCs (e.g. During some npctalk dialogue). (#2606) +- Extended `warpparty()` and `warpguild()` with an option to disregard the `nowarp` and `nowarpto` mapflags. (#2604, issue #1861) +- Updated copyright header for year 2020. + +### Fixed + +- Fixed reading water level from RSW version 2.2 and newer. (part of #2599) +- Fixed `pc_have_item_chain()` to retrieve the chain ID from the chain cache. (part of #2603) +- Fixed an overflow in a zeny check condition in RODEX, causing code to never be executed. (#2266) +- Fixed a re-definition of HPM related symbols in plugins with multiple compilation units. (#2608) + ## [v2019.12.15] `December 15 2019` ### Added @@ -32,8 +57,6 @@ If you are reading this in a text editor, simply ignore this section - Fixed racial crit bonuses not being affected by katar crit bonus. (#2588) - Fixed interaction between Lex Aetherna and Stone/Freezing, now mutually exclusive. (#2598, issue #2559) -### Deprecated - ### Removed - Removed `mob_avail.txt`, since its functionality has been moved to the mob database. (part of #2572) @@ -357,7 +380,7 @@ If you are reading this in a text editor, simply ignore this section ### Fixed - Corrected MSVC version naming in console (#2450). -- Corrected an example using a sprite number instead of a constant in README.md. (#2449) +- Corrected an example using a sprite number instead of a constant in `README.md`. (#2449) - Fixed an issue in a monster death label callback in `npc/custom/events/mushroom_event.txt` when the monster is killed without an attached player. (#2442, issue #1955) - Fixed an issue where when a chat room handler leaves, the following leader won't be checked for `cell_chknochat` and will bypass it. (#2443, issue #1569) - Corrected the documentation for `pincode.enabled` in the char-server configuration. (part of #2452) @@ -439,7 +462,7 @@ If you are reading this in a text editor, simply ignore this section - Added support for `MERCINFO_GID` to `getmercinfo()`. (#2397) - Added the script commands `mobattached()` and `killmonstergid()`. (#2396) - Added/updated packets, encryption keys and message tables for clients up to 2019-03-06. (#2377) -- Added a missing value into enum `BATTLEGROUNDS_QUEUE_ACK`. (part of #2377) +- Added a missing value into `enum BATTLEGROUNDS_QUEUE_ACK`. (part of #2377) ### Changed @@ -654,17 +677,19 @@ If you are reading this in a text editor, simply ignore this section - Fixed an issue in packet `ZC_INVENTIRY_MOVE_FAILED` (#2199, issue #2213) - Fixed a validation error in `setquestinfo()`. (#2218) - Fixed an error in the achievement system, when killing a cloned mob. (#2204, issue #2201) -- Fixed a trucation issue in the card columns of the database. (#2205, issue #2187) +- Fixed a truncation issue in the card columns of the database. (#2205, issue #2187) - Fixed a crash when a character is removed from the `char` table but not from the `guild_member`. (#2209, issue #2173) ## [v2018.08.26+1] `August 29 2018` ### Fixed + - Fixed a bug which prevented the script engine from updating params. (#2200, e554c1c9c) ## [v2018.08.26] `August 26 2018` ### Added + - Added the `@setzone` command, which allows changing the zone of the current map on the fly. (#2162) - Added/updated packets, encryption keys, and message tables for clients up to 2018-08-08. (#2176) - Added support for `sak` and `ad` clients. (#2185) @@ -672,15 +697,18 @@ If you are reading this in a text editor, simply ignore this section - Added const-correct wrappers for `strchr()`, `strrchr()`, `strstr()`, when building with C11-compatible compilers. (#2189) ### Changed + - Made the map zone db also reload when `@reloadscript` is used. (#2162) - Updated the `is_function` script command to support built-in commands, local functions, and local subroutines. (#2154) - Updated the `debugmes` script command to support printf format strings. (#2146) - Changed the language specification to `C11` in autoconf builds. (#2189) ### Deprecated + - `script->add_str()` should no longer be used by plugins to inject variables, as `script->add_variable()` supersedes it. (#2164) ### Fixed + - Fixed the `@mapflag` command not working with the `town` mapflag. (#2133, #2162) - Fixed some issues with the banking and roulette packets. (#2190) - Fixed the compiler throwing a warning when `MAGIC_REFLECTION_TYPE` is set to `0`. (#1920, 2175) @@ -691,15 +719,21 @@ If you are reading this in a text editor, simply ignore this section - Fixed zeny spending achievements recording the zeny amount in negative values. (#2171) ## [v2018.07.29+2] `August 1 2018` `PATCH 2` + ### Fixed + - Fixed a wrong preprocessor directive that prevented some clients from connecting. (#2165, #2166) ## [v2018.07.29+1] `Jul 30 2018` `PATCH 1` + ### Fixed -- Added a temporary patch for getd when variable types are C_NOP. (#2163) + +- Added a temporary patch for `getd()` when variable types are `C_NOP`. (#2163) ## [v2018.07.29] `Jul 29 2018` + ### Added + - Added support for the Achievements system and the Titles system. (#2067, #2157, #2161) - Added a stylist db option to restrict some hairstyles for the Doram race. (#2155) - Added/updated packets, encryption keys, and message tables for clients up to 2018-07-18. (#2139, #2126, #2132) @@ -711,6 +745,7 @@ If you are reading this in a text editor, simply ignore this section - Added project files for Microsoft Visual Studio 2017 (#2131) ### Changed + - Updated the warp list packet for clients older than 2017-04-19. (#2139) - Simplified the `questinfo()` script command and added `setquestinfo()`. This may break some scripts, but is easily fixable with a regular expression search/replace. (#2107) - The constants database will now also be reloaded when calling `@reloadscript`. (#2130) @@ -718,28 +753,35 @@ If you are reading this in a text editor, simply ignore this section - Added the missing `pos` parameter to `skill_init_unit_layout_unknown()`. (#2143) ### Deprecated + - Microsoft Visual Studio 2012 is no longer officially supported. (#2131) ### Removed + - Removed the `EF_ANGEL3` effect from the novice academy, as it is now triggered by the Achievements system. (#2156) ### Fixed + - Fixed a bug which made the `Venom Splasher` skill consume gemstones twice. (#2148) - Fixed a bug that could make skill cooldowns never expire, rendering the skill unusable. (#2147) - Fixed the maximum array size being higher than the maximum integer (uint32 vs int32), which could cause integer overflows in scripts. (#2093) - Fixed a wrongly named constant, which made `Sea-Otter Card` not increase the `Sushi` heal rate. (#2117) - Fixed misc bugs related to pet evolution. (#2136, #2153) - Fixed a bug that sent an attendance system message without the attendence ui being opened. (#2129) -- Corrected several outdated documentation references to db/constants.conf, to point to doc/constants.md. (#2090) +- Corrected several outdated documentation references to `db/constants.conf`, to point to `doc/constants.md`. (#2090) - Fixed an issue in the script command `getd()` that wouldn't properly initialize the type of newly created variables through `set(getd(...), ...)` (#2158) - Fixed a missing memory initialization in several dummy `struct block_list` entries created as local variables. (#2159) ## [v2018.07.01+1] `Jul 1 2018` `PATCH 1` + ### Fixed + - Fixed a regression that made it impossible to invite guild members. (#2124, issue #2122) ## [v2018.07.01] `Jul 1 2018` + ### Added + - Added/updated packets and message tables for clients from 2018-05-30 to 2018-06-12. (#2064) - Added/updated a pair of enums (`cz_ui_types`, `zc_ui_types`) for the values used by packets 0xa68 and 0x0ae2, fixed compatibility with older clients. (part of #2064) - Added the possibility for a plugin to abort the skill currently being cast by returning true from `skill_check_condition_castend_unknown()`. (#2076) @@ -753,6 +795,7 @@ If you are reading this in a text editor, simply ignore this section - Added an option to hide names in the script commands `unittalk()` and `npctalk()` (#1831, formerly #1571, issue #1523) ### Changed + - Updated README with more info about the development dependencies. (b57232ac29) - Updated `instance_create()` when trying to create an already existing instance, to match the official behavior. (#1924, issue #1651) - Removed the `RTLD_DEEPBIND` flag from the plugin-loading functions, for compatibility with asan in gcc-8. (#2079) @@ -771,6 +814,7 @@ If you are reading this in a text editor, simply ignore this section - Prevented compilation of the non-memmgr memory management function wrappers when the memory manager is enabled. (part of #2112) ### Fixed + - Fixed a crash when entries from the `job_db` are removed. (#2071, issue #2070) - Fixed `getunits()` to always return a value, even in case of error. (d2c0e453fc) - Fixed an incorrect response message in the stylist shop. (#2066, issue #2065) @@ -792,18 +836,22 @@ If you are reading this in a text editor, simply ignore this section - Fixed an issue in the travis builds when the console error output is too long. (part of #2112) ## [v2018.06.03] `Jun 3 2018` + ### Added + - Added/updated packets support for clients from 2018-05-09 to 2018-05-23. (#2043) - Added client/version-specific `enum clif_messages` values for msgstringtable message IDs. All the related functions have been updated. (#2038) - Added the script commands `setpcblock()` and `checkpcblock()`, to prevent various character actions - see the script command docs for details. (#842) - Implemented the Stylist UI, available in clients starting from 2015. Configurable in `stylist_db.conf`, accessible to scripts through `openstylist()`. (#2004) ### Changed + - Extended the script command `getunits()` with support to look up units globally, making the map argument optional. (#1851) - Updated copyright headers to year 2018. (#2054) - Converted `exp.txt` (now `exp_group_db.conf`) to the libconfig format, now better integrated with `job_db.conf`. (#2036, originally #1944) ### Fixed + - Fixed an issue in the mob skill db parser that limited the mob skills to a maximum of 5 (#2042, issue #2044) - Fixed some incorrect msgstringtable IDs. (part of #2038) - Fixed inheritance in the mob DB, no longer overwriting the Range field with a default value. (#2055) @@ -811,11 +859,14 @@ If you are reading this in a text editor, simply ignore this section - Fixed interaction between the `pvp_nocalcrank` mapflag and the script/atcommands to toggle PvP. (#2057, issue #2056) ### Deprecated + - While not officially deprecated yet, use of `maprespawnguildid()` and `playbgmall()` has been superseded by `getunits()`. (part of #1851) - Deprecated the `pcblockmove()` script command. Use the more flexible `setpcblock()` instead. (part pf #842) ## [v2018.05.06] `May 6 2018` + ### Added + - Added a configurable PIN code blacklist, to prevent use of certain codes. (#2007 and #2029, issue #769) - Added/updated packets support for clients from 2018-04-11 to 2018-05-02. (#2021, #2030) - Implemented option to allow guild skill cooldowns to continue when the leader is logged out. Enabled by default and controlled by the `guild_skill_relog_delay` flag in guild.conf. (#2005, issue #1774) @@ -823,6 +874,7 @@ If you are reading this in a text editor, simply ignore this section - Added the constants `DEFAULT_MOB_JNAME` and `DEFAULT_MOB_NAME` (source only) to replace hardcoded use of `"--ja--"` and `"--en--"` respectively. (part of #2027) ### Changed + - Replaced custom messages related to the PIN code system with the official ones. (part of #2007) - Updated the minimum client version that enables certain features: new drop packet now in `PACKETVER >= 20180418`, attendance system now in `PACKETVER_ZERO_NUM >= 20180411`. (#2020) - Introduced a friendly error message when the `delwall()` script command fails due to a non-existent wall. (#2017) @@ -831,6 +883,7 @@ If you are reading this in a text editor, simply ignore this section - Converted the Mob Skill DB to the libconfig format. A converter script (`mobskilldbconverter.py`) has been provided for convenience. (#2019) ### Fixed + - Fixed interaction between Curse and Blessing. When under Curse or Stone Curse, Blessing will only remove the negative statuses and will need to be cast again to obtain the buff. (#1706, issue #680) - Added support for `time_t` as return type in the HPMHookGen. (bb0e228bd29dd689ca76f64578de8759415a763b) - Fixed some possible buffer overflows. (#2028) @@ -840,10 +893,13 @@ If you are reading this in a text editor, simply ignore this section - Fixed the display name of monster summoned through the `SA_SUMMONMONSTER` skill. (#2027) ### Removed + - Removed all the code related to the anonymous-stat-reporting system. (#2023) ## [v2018.04.08] `April 8 2018` + ### Added + - Added/updated packets support for clients from 2018-03-14 to 2018-04-04. (#1994 and #2014) - Introduced macros `PACKETVER_RE_NUM`, `PACKETVER_ZERO_NUM` and `PACKETVER_MAIN_NUM` to simplify client type-specific version checks. These macros are defined to `PACKETVER` only if, respectively, `PACKETVER_RE`, `PACKETVER_ZERO` or neither are defined. (part of #1994) @@ -858,12 +914,14 @@ If you are reading this in a text editor, simply ignore this section - Added a configurable delay to the MVP Tombstone. The delay can be configured through the `mvp_tomb_spawn_delay` setting in `monster.conf`. (#2001, issue #1980) ### Changed + - Updated the functions handling quest-related packets to use the struct-based form. (part of #1111) - Converted the Pet DB to the libconfig format. A converter script (`petdbconverter.py`) has been provided for convenience. (#2000) - The `noteleport` mapflag has been added to the Archer Village (`pay_arche`), to match official servers. (part of #2006) - The `script->sprintf()` function has been renamed to `script->sprintf_helper()`. (part of #2009) ### Fixed + - Removed a duplicated line in the login server VS project that would prevent Visual Studio from loading it. (#1992) - Prevented a console warning when a nonexistent map is passed to the `getmapinfo()` script command. (584e8de35) - Fixed a RODEX loading data problem when a message's expiration date was manually edited. (#1995) @@ -873,19 +931,23 @@ If you are reading this in a text editor, simply ignore this section - Fixed compilation of the HPMHooking plugin on systems where `sprintf()` is a macro. (#2009, issue #2003) ## [v2018.03.11] `March 11 2018` + ### Added + - Added a new `mapcache` plugin to convert, update or recreate mapcache files in the new format. (part of #1552) - Added appveyor configuration to the repository. (part of #1552) - Exposed `script->sprintf()` to plugins. (#1976) - Added/updated packets support for clients from 2018-02-21 to 2018-03-09. (#1983) ### Changed + - Updated the mapcache to a new, git-friendly, format having one file per map. (#1552, #1981) - For info on how to convert or recreate mapcache entries, see the mapcache plugin (`./map-server --load-plugin mapcache --help`) - Removed the display of PIN codes and passwords from the `@accinfo` GM command. Old code is kept commented out for those that may wish to re-enable it. (#1975) -- Updated README.md with some clarifications and corrections. (#1985) +- Updated `README.md` with some clarifications and corrections. (#1985) ### Fixed + - Updated the VS project files with the recently added .h files, for better intellisense/search. (#1970) - Fixed a NULL pointer in `login->accounts`, only affecting plugins. (part of #1979) - Fixed a case of use after free in the `@reloadatcommand` GM command. (part of #1979) @@ -900,16 +962,21 @@ If you are reading this in a text editor, simply ignore this section - Fixed an incorrect Kafra Points / Cash Points calculation. (#1541, issue #1540) ### Removed + - Removed the old `mapcache` executable, superseded by the new plugin. (part of #1552) ## [v2018.02.11+1] `February 13 2018` `PATCH 1` + ### Fixed + - Fixed a possible crash in `@cvcon` (and possibly other functions) when a referenced map zone doesn't exist. (#1972, issue #1971) - Fixed the messages displayed when enabling or disabling CvC. (part of #1972) - Extended the `bg_message` string termination fix to all the clients. (#1973) ## [v2018.02.11] `February 11 2018` + ### Added + - Added/updated packets support for clients from 2017-12-13 to 2018-01-24. (part of #1957) - Implemented the official Clan System, including the possibility of customization and a Clan vs Clan versus mode. (#1718, #1964, #1968, related to issue #241) - New GM commands: `@claninfo`, `@joinclan`, `@leaveclan`, `@reloadclans`, `@cvcon` and `@cvcoff`. @@ -923,12 +990,13 @@ If you are reading this in a text editor, simply ignore this section - Functions in `account.c` and `loginlog.c` have been prefixed with `account_` and `loginlog_` respectively. - The `chrif_` functions of the login server have been renamed to `lchrif_`. - The `server[]` array has been moved to `login->dbs->server[]`. - - The `account` (account.h), `ipban` (ipban.h), `lchrif` (login.h), `loginlog` (loginlog.h) + - The `account` (account.h), `ipban` (`ipban.h`), `lchrif` (login.h), `loginlog` (`loginlog.h`) - Several `log_*` global variables have been moved to the loginlog interface, with their respective names. - The `account_engine[0]` variable has been moved to `login->dbs->account_engine` (note: this is not an array!) - Added/updated packets support for clients from 2018-01-31 to 2018-02-07. (#1969) ### Changed + - Applied script standardization to the Bakonawa Lake instance script. (#1874) - Applied script standardization to the Buwaya Cave instance script. (#1877) - Applied script standardization to the Eclage Interior instance script. (#1878) @@ -936,60 +1004,76 @@ If you are reading this in a text editor, simply ignore this section - Applied script standardization to the Malangdo Culvert instance script. (#1881) ### Fixed + - Fixed compatibility issues with the 2013-12-23 client. (part of #1957, issue #1956) - Prevented the leak of a hidden GM's presence through area packets. (#1200) - Fixed an unterminated string in the `bg_message()` related packets, with certain client versions. (#1890) ## [v2018.01.14] `January 14 2018` + ### Added -- Added support for the `AllowReproduce` flag in the skill DB. This supersedes the skill_reproduce_db. (#1943) + +- 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) ### Changed + - 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) +- 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) +- Updated `README.md` with more relevant badges and links (added Discord, removed Waffle, added more GitHub information). (#1951) ### Fixed + - Updated Xcode project to include the RODEX related files. (#1942) - Fixed RODEX loading mails when it requires multiple packets. (#1945, issue #1933) ### Removed -- Removed the skill_reproduce_db, now superseded by the `AllowReproduce` skill flag. (part of #1943) + +- Removed the `skill_reproduce_db`, now superseded by the `AllowReproduce` skill flag. (part of #1943) ## [v2017.12.17] `December 17 2017` + ### Added -- Implemented Homunculus Autofeeding, available on the 2017 clients. The feature can be disabled by flipping `features.enable_homun_autofeed` in feature.conf. (#1898) + +- 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) ### Changed + - 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) +- Split packets.h into two files: `packets.h` and `packets_shuffle.h`. (part of #1923) ### Fixed + - 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) ## [v2017.11.19+2] `November 28 2017` `PATCH 2` + ### Fixed + - Fixed an item loading failure in RODEX. (#1917, issue #1912) - Fixed invisible NPCs (such as `FAKE_NPC`) being displayed as novices. (#1918, issue #1916) ## [v2017.11.19+1] `November 24 2017` `PATCH 1` + ### Fixed + - Suppressed assertions in the Skill DB accessors when called with `skill_id = 0` (normal attacks). (#1910, issue #1909) ## [v2017.11.19] `November 19 2017` + ### Added + - 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 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) @@ -998,6 +1082,7 @@ If you are reading this in a text editor, simply ignore this section - Added support for the Skill Scale packet, available in client versions 20151223 and newer. (#1903) ### Changed + - 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) @@ -1006,53 +1091,64 @@ If you are reading this in a text editor, simply ignore this section - 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) +- Extended the script commands `has_instance()` and `has_instance2()` with support 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) ### Deprecated + - The use of numeric type constants with `getiteminfo()` and `setiteminfo()` is deprecated. For technical reasons, no deprecation notice is displayed. (part of #1902) ### Removed + - 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) ### Fixed + - 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) +- Implemented MATK support in the `getiteminfo()` and `setiteminfo()`. This functionality was previously advertised as available 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) ## [v2017.10.22+1] `October 22 2017` `PATCH 1` + ### Fixed + - Fixed a wrong null pointer check in `logmes()`, which caused the command to never log and instead print debug information. ## [v2017.10.22] `October 22 2017` + ### Added + - 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) ### Changed + - 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) ### Fixed + - 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) ### Other + - New versioning scheme and project changelogs/release notes (#1853) [Unreleased]: https://github.com/HerculesWS/Hercules/compare/stable...master +[v2020.01.12]: https://github.com/HerculesWS/Hercules/compare/v2019.12.15...v2020.01.12 [v2019.12.15]: https://github.com/HerculesWS/Hercules/compare/v2019.11.17+1...v2019.12.15 [v2019.11.17+1]: https://github.com/HerculesWS/Hercules/compare/v2019.11.17...v2019.11.17+1 [v2019.11.17]: https://github.com/HerculesWS/Hercules/compare/v2019.10.20...v2019.11.17 -- cgit v1.2.3-60-g2f50