86 Commits

Author SHA1 Message Date
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
Atemo
e1761aff6c
Addtionnal check in npc_touch_areanpc for npc_click (#5386)
Added a check in npc_touch_areanpc (only) to avoid a warning from npc_click
2020-09-09 15:12:27 +02:00
Vincent Stumpf
3776bfbaa3
Support itemids up to ~2 billion (#5141)
Co-authored-by: aleos89 <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-08-08 12:06:07 +02:00
Lemongrass3110
47a1c7112d
Follow up to 2e88b27 (#5260)
Resolves some remaining issues with NPC secure timeout.

Fixed scripts freezing on close
Idle timer is reseted on closing
Fixed npc_idle_tick being set again on closing

Co-authored-by: Daegaladh <daegaladh@shadowgames.es>
2020-08-03 23:27:25 +02:00
Daegaladh
2e88b27b9b
Fixed secure timeout triggering npc_scriptcont debug messages (#5239) 2020-07-28 19:40:04 +02:00
Daegaladh
187aa852be
Added the ability to make dynamic cash/item/point shops (#5213) 2020-07-21 00:07:57 +02:00
Atemo
0f9dde4e33
OnTouch support when npc is walking (#5134)
* Added support to trigger 'OnTouch'/'OnTouch_' npc label when a npc is moving through npcwalkto script command.
* Fixed #502

Thanks to @aleos89, @wbgneto !
2020-06-26 15:59:39 +02:00
Lemongrass3110
45cd5808b7
Initial support for newer packet versions (#4944)
Basic support for packets up to April 2020
Changing the default packet version to 2020-04-01

Thanks to everyone involved!
2020-06-03 16:35:10 +02:00
Atemo
7efd696af7
Added several check for OnTouch and OnTouch_ before running the event (#5009)
* Check if the player is still in npc range
* Check if the player is still able to interact with the npc
* Check if the npc is cloaked
2020-05-27 15:52:37 +02:00
Atemo
b8ee97b6a1
Added rental_item_novalue config (#3749)
* Added a config to always sell the rental items to NPC for 0

Thanks to @Lemongrass3110, @cydh, @aleos89, @Daegaladh for the review !
2020-05-21 21:13:45 +02:00
Daegaladh
c6aceea6c3
Follow up to fe14af99625d16f3c7ef1e8192a2d3b0214f33f1
* Thanks to @CairoLee
2020-05-06 16:38:30 +02:00
Daegaladh
fe14af9962
Fixed duplicate itemshops and pointshops (#4850) 2020-04-30 01:44:53 +02:00
Aleos
b65443d8f5
Removal of OnPCStatCalcEvent (#4831)
* Fixes #4812.
* This script event can be replaced with the other various player script events.
* The trigger during equipment changing causes headache across other calculation events in source.
2020-04-23 16:53:07 -04:00
Daegaladh
ba76880364
Fixed vending and chatrooms checking for NPCs nearby (#4805)
* Thanks to @cydh
2020-04-16 16:20:52 +02:00
Aleos
06c159c405
Refactored Instances to utilize C++ features (#3163)
* Fixes #3087 and fixes #3095.
* Converts database file to YAML.
* Converts static array to unordered_map which frees up pre-allocated memory that may never be fully used.
* Got rid of all DBMap/ERS features.
* Removes MAX_INSTANCE_DATA in favor of INT_MAX.
* Includes TXT converter.
Thanks to @Lemongrass3110, @secretdataz, @Atemo, @lighta, @InusualZ, @Angelic234, @Normynator, @cydh, and @ecdarreola!
2020-04-08 12:52:45 -04:00
Atemo
157392cd1a
Fixed npc_enable_sub (#4717)
Fixed an issue introduced in 67a07fd4d6
Fixed #4716 

Thanks to @SOSKaito
2020-03-18 20:56:45 +01:00
Atemo
de80c5aab6
[Suggestion] Implement cloakonnpc/cloakoffnpc (#4688)
* The player can interact with a NPC cloaked by cloakonnpc command (click, mob event..) but the NPC trigger area is disabled (= the OnTouch* part is disabled).
* The changes last until the player leaves the map, logs out, or the npc option is updated by disablenpc/enablenpc/hideonnpc/hideoffnpc/cloakonnpc/cloakoffnpc commands.

Thanks to @aleos89
2020-03-11 22:47:23 +01:00
Atemo
67a07fd4d6
Small update of npc_enable_sub (#4673)
* With this update a player standing on a NPCTYPE_WARP disabled will be warped when the npc is enabled
2020-03-10 17:42:41 +01:00
Aleos
5c35ec7d69
Corrects skill_damage_db parsing (#4667)
* Fixes #4574.
* Removes the usage of atoi as any failure returns 0.
* Adds checks for cases of invalid data.
* General cleanups and fixes.
* Fixes the import database documentation.
Thanks to @Skormie!
2020-03-04 12:33:37 -05:00
Lemongrass3110
b0ac1717f2
Added an option to block discount in shop (#4606)
This is required for the correct implementation of #4387
2020-02-07 00:29:33 +01:00
Aleos
dca3797d44
Converted the skill database to YAML (#4531)
* Combines skill_cast_db, skill_castnodex_db, skill_copyable_db, skill_nonearnpc_db, skill_require_db, and skill_unit_db into skill_db.
* Introduces a cached YAML class for quicker lookups.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-01-31 14:14:08 -05:00
Lemongrass3110
e72c7360cf
Added int64 support to the script engine (#4522)
Added support for signed 64 bit integer value computation into the script engine.
This is required because newer official features require support for bigger numbers inside the scripts.

This also cleans up a lot of messy code and fixes a few issues like script stack corruptions.

Thanks to @aleos89 and everyone who supported me with this.
2020-01-13 14:44:48 +01:00
Aleos
50715f92e3
Corrected mob warp check (#4501)
* Fixes #4499.
* Corrected mob warp check failing to determine validity of target map.
Thanks to @ai4rei!
2020-01-01 21:53:02 -05:00
Aleos
b0119631a4
Allow NPC view data modifications (#4385)
* Fixes #4289.
* Updated script commands setunitdata and getunitdata to support the modification of NPC view data.
* Converted mob_avail database to YAML.
Thanks to @Lemongrass3110, @4144, @exneval, @Balferian, @cahya1992 and @teededung!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2019-12-22 10:27:43 -05:00
Aleos
995fb2a0a1
Corrected NPC view constant verification (#4398)
* Fixes #4397.
* Corrected NPC view constant verification stopping at the first digit found resulting in invalid results.
Thanks to @Lemongrass3110!
2019-10-09 12:05:08 -04:00
Cydh Ramdh
dda63f517c
Fixes #4311 (#4312)
* Added item with GUID flag as `CHKADDITEM_NEW` in pc_checkadditem
* Adjust inventory blank check for guid item to `+n`
* Moved slot check as item_data function
* Removed quantity force-set-to-1 check for buying equip from cashshop, it will gives the item to player just like item with GUID flag
2019-10-01 07:49:23 +07:00