Commit Graph

111 Commits

Author SHA1 Message Date
Jittapan Pluemsumran
1985662045 Made debug ShowStatus calls easier to disable (#7618)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2023-02-21 11:34:52 +07:00
Vincent Stumpf
9d2bcc7a70 Change npc_src_files linked list to vector (#7598) 2023-02-12 13:38:12 -08:00
Vincent Stumpf
e235c9cab4 Change common and config includes to use <> (#7596) 2023-02-12 12:46:06 -08:00
Vincent Stumpf
eff6131087 Speed up loading of npcs and maps (#7597) 2023-02-12 11:01:14 -08:00
Lemongrass3110
ba32ccc928 Added two missing timer function names 2023-02-07 00:18:57 +01:00
Lemongrass3110
115522e1fd Fixed some warnings related to dynamic NPCs
Fixes #7417

Thanks to @idk-whoami and everyone else who reported it.
2023-02-06 23:21:36 +01:00
Lemongrass3110
513a4db716 Fixes a critical issue with pointshop (#7549)
Fixes #7548

Thanks to @mazvi
2023-01-13 15:09:14 +01:00
Lemongrass3110
c9aaf540bf Added reloadbarterdb (#7530)
Fixes #7520

Thanks to @attackjom
2023-01-06 00:23:25 +01:00
Lemongrass3110
165e0d668f Fixed dynamic NPC timeout (#7497)
Fixes #7473
Updates the last interaction time on end; and close;
Additionally added the official dynamic NPC result packet.

Thanks to @eppc0330
2022-12-17 22:33:19 +01:00
Atemo
ef602d98cb Multiple dynamic npc (#7486)
* Vectorize npc_id_dynamic to support multiple dynamic npc with different ids

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>

Thanks to @dimasshotta and @eppc0330 !
2022-12-16 21:22:31 +01:00
Singe Horizontal
8eac71f57f Cleaned struct tokens for map_session_data and status_change (#7490)
Fixes #7492
2022-12-16 19:16:29 +01:00
Aleos
da375a04c1 Adds battle config mob_respawn_time (#7312)
* Adjusts the minimum respawn time of a monster to be 1 second as it is officially.
* Adds a battle config to allow for easy adjustment.
* Monsters that don't define a delay1 for permanent spawn scripts are defaulted to 5 seconds.
Thanks to @mrjnumber1, @vstumpf, @Lemongrass3110, and @Atemo!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-12-14 14:17:41 -05:00
Vincent Stumpf
1f4c068c39 Refactor status change entries (#7356)
* Make map_session_data a class, call constructor/destructor on alloc/free

* add getSCE

* add create, delete, clear SCE

* Use getSCE, make data access private

* add a cache for last-fetched status
2022-12-13 23:47:53 -08:00
Atemo
526a3fa048 Added close3 script command (#7439)
Thanks to @aleos89 @Lemongrass3110 @vstumpf !
2022-11-18 15:39:00 +01:00
Lemongrass3110
96efb0e426 Block dynamic NPCs in instances (#7429)
Fixes #7420

Thanks to @attackjom
2022-11-10 22:14:42 +01:00
Lemongrass3110
a763ad0629 Implemented dynamic NPCs (#7402)
This is required for features like #6640
Added COLOR_LIGHT_YELLOW
Cleaned up color definitions, its useless to store them as string first.
Dynamic NPCs will stay when you switch map and come back in time.
Dynamic NPCs will be removed instantly when you log out.
You can only create one dynamic NPC at a time.

Thanks to @Atemo!
2022-11-07 00:41:10 +01:00
Vincent Stumpf
bf2b62bc9c Fix an issue when running map-server-generator in opt mode (#7378) 2022-11-04 21:00:58 -07:00
Jittapan
b28eac7b56 Cleaned up CZ_PC_SELL_ITEMLIST and its related functions
* Added a validation check for remaining item amount
2022-11-03 22:08:36 +07:00
Atemo
750c7d72de Permanent mob spawn definition update (#7352)
* Added support for mob name (sprite) as parameter in mob permanent spawn definition

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-13 23:44:26 +02:00
Atemo
bbc516a4d5 Deprecated itemdb_exists (#7353)
Deprecated itemdb_exists to use item_db.exists() or item_db.find() instead

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-13 16:39:40 +02:00
Sader Fawall
9c2576f47a duplicate npc command script (#5960)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-10-01 22:58:53 +02:00
Vincent Stumpf
47c9a36215 Refactor generator to support future features (#7214)
Co-authored-by: Akkarinage <mike.langford@industrial-illusions.net>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-09-25 00:37:21 -07:00
Lemongrass3110
fa4666d7af Fixed some packets for 2022 clients (#7276)
Migrates a few packets from FIFO to structs.
Migrates friendlist to struct and fixed invalid version check.
Added a new guild related packet that does nothing for the time being.
Synced to latest Hercules' packet definitions.
Fixed name of ZC_SOULENERGY.

Thanks to @Dia and @Pokye.
2022-09-22 01:50:24 +02:00
Vincent Stumpf
c751ca6b74 Client Navigation Generator (#6023)
Creates navigation files for the client.
2022-08-26 21:31:45 -07:00
Aleos
8038e71322 Speed up item and mob information commands (#7084)
* Fixes #7081.
* Small refactor of the atcommands: iteminfo, mobinfo, whodrops, and idsearch.
* Item information gathering is now sped up.
* Refactored itemdb_searchname_array to store results in a std::map so that the data is sorted by ID automatically.
* Cleanups across the board to remove extra calls for itemdb_exists().
Thanks to @voyfmyuh, @CairoLee, and @Lemongrass3110!
2022-07-22 15:11:44 -04:00
Vincent Stumpf
595fc925e3 Fix an invalid access (#7102) 2022-07-15 20:08:02 -07:00
Aleos
256735a136 Fixes mob and item atcommand sorting issues (#7058)
* Fixes #7055.
* Fixes several atcommands used for mob and item information were not properly accounting for order.
* Resolves an issue where YAML databases were not properly utilizing the cache feature.
* Increased MAX_SEARCH to 10 by default as in renewal there are many more items with duplicated names.
Thanks to @Playtester!
Co-authored-by: Playtester <Kenji.Ito@gmx.de>
2022-06-24 09:53:31 -04:00
Aleos
18050028e3 Adds safety check for Barter Shops (#6995)
* Fixes #6895.
* Adds a safety check for multiple non-stackable items being used as the purchase type.
Thanks to @samers1!
2022-06-01 11:00:48 -04:00
Aleos
972ada7c4a Fixes unlimited supply market shops (#6889)
* Fixes #6883.
* Follow up to 6ccf153.
* Resolves a final check market shop loading check resetting items marked as unlimited supply to a specific amount if previously saved in the SQL table as such.
Thanks to @gravity-ro!
2022-05-03 22:49:50 -04:00
Lemongrass3110
51ddc63a02 Converted player groups to YAML (#6488)
Finally adds import functionality for player groups and therefore atcommand and permission defining.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-04-15 23:47:44 +02:00
Lemongrass3110
01261dbf3d Cleanup after RYML merge (#6785)
Speeded things up even more by making use of C++'s reference feature.
Fixed #6770 warning while at it.
Added back support for case insensitive booleans.
Fixed a very rare issue with cached databases.
Removed .children() calls
Added back type safety reports
Added ryml to login-server makefile

Thanks to @aleos89, @Atemo and @idk-whoami
2022-04-03 04:02:13 +02:00
Lemongrass3110
db540124ad Fixed some LGTM warnings (#6767)
Co-authored-by: aleos <aleos89@users.noreply.github.com>
2022-03-31 22:20:17 +02:00
Jittapan Pluemsumran
d1b7061f5a YAML loading optimization (#5997)
* Use rapidyaml library to parse YAML databases instead of yaml-cpp.
* Drastically reduces the parse time for yaml databases.
* Removes yaml-cpp content from main servers, except for tool emitter.
Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-03-30 16:38:52 -04:00
Lemongrass3110
6ccf15330e Added support for unlimited supplies in market shops (#6571)
Fixes #6569

Thanks to @JohnnyPlayy, @Balferian and @Toshiro90

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-02-04 16:17:30 +01:00
Atemo
80307eb86e Correction of a bug with mob avail (#6578)
Introduced in a725844553
Fixed #6576

Thanks to @Vandersexxx !
2022-02-01 20:36:49 +01:00
Lemongrass3110
6ec51e8bf3 Added feature configs for barter shops (#6549)
Thanks to JohnnyPlayy
2022-01-24 09:03:03 +01:00
Lemongrass3110
e40da669ed Initial release of barter shops (#6508)
Fixes #5062

Thanks to @Atemo and @aleos89

Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-01-21 00:59:16 +01:00
Lemongrass3110
c22ef3f547 Initial release of stylist UI (#6446)
Fixes #3037

Thanks to @Balferian and @aleos89

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-01-09 21:56:58 +01:00
Atemo
a725844553 Added support of the aegis mob name in the script npc definition (view) (#6252)
* Added the npc path in status_set_viewdata warning

Thanks to @Lemongrass3110
2021-09-14 19:26:01 +02:00
Atemo
f4fbfb3299 Clean-up the npc_enable_target function (#6248)
* Clean-up the npc_enable_target function

Thanks to @Lemongrass3110 and @aleos89
2021-09-11 14:56:36 +02:00
Atemo
69802a23fb Suggestion: NPC name as parameter in enablenpc (#6233)
* The required NPC name parameter is now optional for the following script commands:
    enablenpc
    disablenpc
    hideonnpc
    hideoffnpc
    cloakonnpc
    cloakoffnpc
    isnpccloaked
* Updated docs

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2021-09-09 14:50:24 +02:00
Atemo
fe7cb5a33f Converted const.txt to YAML (#6187)
* Converts the Constant Tables file into YAML.
* Includes CSV2YAML converter.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2021-08-27 23:54:31 +02:00
Lemongrass3110
3a8e4ffbc7 Improved support for enchantgrade (#5975)
Added further support for enchantgrade so that the enchantgrade is not lost during certain processes and can be accessed via script commands.
Also added missing logging support for it.
2021-05-30 00:44:50 +02:00
Aleos
7992e0891b Converts the mob database to YAML (#5435)
* Combines mob_race2 and mob_drop databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @vstumpf, @lukasrmattos, and @Lemongrass3110!
2021-02-16 17:09:06 -05:00
Atemo
8216a6d7f7 setnpcdisplay potential crash (#5721)
* Fixed a potential crash in npc_setdisplayname with floating npc

Thansk to @Lemongrass3110 !
2021-01-26 01:02:16 +01:00
Lemongrass3110
20baa2fdba Added a config for respawn time variance (#5715)
By default the respawn time variance only applies to boss monsters on official servers.

Fixes #5714

Thanks to @Playtester
2021-01-25 23:10:58 +01:00
Atemo
a33887b59f Questinfo correction (#5523)
* Corrected questinfo bubble not always being displayed
* Docs updated
* Changed qi_display to std::vector

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>

Thanks to @lighta @aleos89 @Lemongrass3110 !
2021-01-15 22:49:35 +01:00
CairoLee
01188b1501 Fixed memory leak when using loadnpc or reloadnpcfile command (#5667)
Fixes #5649
2021-01-03 21:41:57 +01:00
Lemongrass3110
4f853c96e9 Fixed a bug in reloadnpcfile (#5553)
Introduced in d098c01b

Fixes #5541
Fixes #4846

Thanks to @Triedge and @Stingor
2020-11-17 12:41:34 +01:00
Aleos
04cfe17b2b Converted item database to YAML (#4335)
* Combines item_avail, item_buyingstore, item_delay, item_flag, item_nouse, item_stack, and item_trade databases into one.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
* Includes YAML2SQL conversion tool.
* Adjusts dummy_item from being created by malloc and now creates it by make_shared.
* Item combos are now stored as a STL.
Thanks to @Lemongrass3110, @Atemo, and @cydh!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-10-21 19:02:11 -04:00