78 Commits

Author SHA1 Message Date
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
Aleos
5c5c6839a0
Fixes item production with high item IDs (#5315)
* Fixes #5312.
* Fixes general item production skills not consuming catalyst items with high IDs.
* Adjusts item searching functions to use t_itemid instead of uint32.
* Adjusts script command makeitem2 to use t_itemid isntead of uint32.
* Fixes output and lookups for atcommands idsearch, autolootitem, iteminfo, whodrops, makeegg, and itemlist.
* Fixes signed vs unsigned checks.
* Fixes MVP logging.
* Fixes item drop ratio storage.
* Fixes CSV2YAML conversion checks.
Thanks to @idk-whoami and @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-08-11 10:39:37 -04: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
vakhet
1ec101b9a4
Changed dummy item id (#4625)
Fixes #4616
2020-02-11 22:37:22 +01: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
77d86c6da5
Converted Reading Spellbook Database to YAML (#4440)
* Split database between pre-renewal and renewal.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2019-12-20 12:37:16 -05: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
Sader Fawall
454163c48f prevent moving/dropping the pet egg if it's hatched (#4179)
Fixes #4178
2019-07-07 20:17:40 +02:00
Atemo
f8ea43ebc7
getmapflag MF_RESTRICTED (#4193)
* Corrected the value returned by getmapflag script command for MF_RESTRICTED
2019-06-03 20:45:19 +02:00
Aleos
53f5013149
Added an item group for Token of Siegfried (#4047)
* Fixes #4041.
* Created an item group used to remove hard coding of Token of Siegfried.
* Added the other Token of Siegfried's to work with this feature.
Thanks to @daisyanne1380!
2019-04-19 10:33:35 -04:00
Jittapan Pluemsumran
ac558d7c1e
Initial implementation of pet evolution system + Pet DB conversion to YAML (#3544)
* Implemented official pet evolution system
* Added evolved pets to pet database
* Corrected various pet system mechanics
* Migrated pet database to YAML format and the converter from CSV format

Thanks to @Lemongrass3110 @aleos89 and @Atemo for their suggestions and additional fixes
2019-03-26 22:51:57 +07:00
Mark Hester
ec6c36983c Better itemdb_read_flag error message (#3971)
* Removed a redundant message.
Thanks to @marky291!
2019-02-22 13:43:21 -05:00
Aleos
444d7394c2
Adjusted reload item database (#3849)
* Reloading the item database will now properly force a recalc on all players.
* If new item combos were added to the database and players were wearing the item combo the players would never get the bonus until unequipping and reequipping.
Thanks to @Lemongrass3110!
2019-01-11 10:38:40 -05:00
Lemongrass3110
bde580fdbd
Add drop highlighting effect feature (#3710)
Fixes #3610

Thanks to @Balferian, @admkakaroto and credits to @Asheraf
2018-11-29 22:34:57 +01:00
Lemongrass3110
c0793a8072
Adding LGTM to CI tools (#3636)
Thanks to @aleos89 for his help.
2018-10-29 21:25:36 +01:00
Aleos
48ae1a1e05
Cleaned up map storage type (#3384)
* Fixes #3369, fixes #3370, and fixes #3382.
* Converted maps storage container back to static array.
* Converted mapflag storage containers to unordered_map.
* Removed a lot of redundancy and recursive lookups.
* Fixed a couple short-circuit checks to help with performance.
* Fixed multiple instance creation/destruction issues.
* Fixed PK Mode attempting to set PvP on flags that are already active.
* Getting MF_RESTRICTED will return the map's zone value instead of the state.
* Converted mapflag macros to inline functions.
Thanks to @teededung, @lelouch22, @mazvi, @Lemongrass3110, and @cydh!
2018-08-10 13:52:07 -04:00
Aleos
584fcac43a Cleaned up map data storage (#3347)
Follow up to a942853.
Fixes #3336.
Moved map_data storage to std::map container.
Created map_getmapdata to obtain pointer to map_data.
Got rid of MAX_MAP_PER_SERVER define.
Resolved deletion of instances causing other instances to lose their intended map ID.
Refactored warp suggestions

Thanks to @teededung, @anacondaqq, @cydh and @Lemongrass3110!
2018-07-26 01:06:59 +02:00
Aleos
a942853d55
Cleaned up the mapflag system (#2943)
* Created setter and getter functions.
* Adjusted all calls to use these functions.
* Converted mapflags to C++ map container.
* Converted drop_list to vector.
* Converted skill_damage ERS into vector and increased limit from UINT8 to UINT16.
* Cleaned up several functions to be more dynamic to reduce redundancy that was all over the place.
* Renamed nosumstarmiracle to nosunmoonstarmiracle.
* Adjusted skill_damage mapflag to use proper defined constants.
* Refactored map index into a vector.
Thanks to @Lemongrass3110 for a lot of help and @secretdataz!
2018-07-18 20:00:33 -04:00
Lemongrass3110
fe7c0a78ec
Refactored roulette system (#3271)
Fixes #2887 - thanks to @Everade
Fixes #3292 - thanks to @admkakaroto

Added a script command to open the roulette window from server side.
Added support for clients >= 2018-05-16
Fixed losing behavior for roulette
Enabled roulette system by default
Added a server side delay
Added missing sql log enum value 'Y'

Thanks to @Everade, @admkakaroto, @V0rr, @ecdarreola, @Haikenz and everyone else who contributed to this.
2018-07-06 22:39:58 +02:00
Aleos
11b42569fc
Synchronized source file headers (#3212)
* Alphabetically sorted includes.
* Updated copyright and license text to match across all files.
* Removed pragma once define in header files in lieu of ifdef guards.
2018-06-20 18:08:30 -04:00
Lemongrass3110
801d3ed942
Moved common, config and mapcache to C++ (#3200)
Dropped BETA_THREAD_TEST and everything around it
Dropped mt19937
Replaced msinttypes with cinttypes
Removed IRC link and updated README name
2018-06-14 21:51:58 +02:00
Lemongrass3110
4ffb1b043a Reverted 0184671
This commit broke the "clear" command, which only required 2 columns.
2018-04-25 22:17:52 +02:00
Aleos
0184671094 Updated item_group_db column requirements (#3068)
Fixes #3065.
Should require 3 columns, not 2.
Thanks to @RadianFord!
2018-04-23 23:22:16 +02:00
Vincent Stumpf
ec1470b613
Corrected item_db script curly parsing (#2998)
* Fixes #2964
* Correctly finds the last right curly.
Thanks to @ecdarreola
2018-04-07 15:32:59 -07:00
Lemongrass3110
d7f226a66b
Fixed a few issues with TXT item db parsing (#2940)
Fixed an issue with comments in the middle of the line
Fixed the curly mismatches not being reported

Fixes #2938

Thanks to @kaninhot004
2018-03-06 08:54:00 +01:00
Cydh Ramdh
32950ecead
Updated Item Group features (#2692)
* Added config to hide last chars of player's name `broadcast_hide_name` and its default value is 2.
* Fixed `getgroupitem` that should give unidentified item for equipment types.
* Added optional param for `getgroupitem` and `getrandgroupitem` to always give player identified item, ignores the `itemdb_isidentified`'s check.
* Thanks to @aleos89 @Lemongrass3110
2018-01-02 12:55:52 +07:00
Lemongrass3110
b2ab9724fe
Implemented new monster range (#2604)
With this the internal static array was changed to a std::map which manages it's memory dynamically when needed.

Dropped mob_dummy since it was useless to have it in the first place.

Replaced a lot of direct accesses to the mob db by the "get" function.

With this you can now use 20021-31998 for monsters and also 4000-20020 will be used for player clones whenever needed.

Dropped mobdb_exists
Replaced almost all references to MAX_MOB_DB

Moved MAX_MOB_DB from the header directly into the source file to make it only visible to the .cpp file itself and not to any other.

Moved the mob drop calculation function from itemdb.cpp into mob.cpp, because it needs to iterate over the whole mob db.

Added a few missing clone checks.

Thanks to @lighta, @Jeybla and @aleos89.
2017-11-19 01:22:29 +01:00
Aleos
c4a364be2c
Initial work for map server to C++ (#2565)
* Initial progression of moving the map-server to C++ format.
* Converted all core files to .cpp and header files to .hpp.
* Refactored the refine database parser to utilize native YAML C++.
Thanks to @Jeybla and @lighta for their help!
2017-11-02 17:39:03 -04:00