Commit Graph

827 Commits

Author SHA1 Message Date
Lemongrass3110
ff3b731951 Fixed compilation for PACKETVER 20100303 (#6804)
Fixes #6803

Thanks to @blurryrox
2022-04-07 22:47:52 +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
534c5b2edd Add more Github Actions (#6530)
Renames "build_servers.yml" to "build_servers_gcc.yml"
Removed Pre-Renewal and Renewal from GCC compilation
Added an action for Pre-Renewal and Renewal
Added an action for VIP
Added an action for different packet versions
Added MSVS build
Changed some make server to make all
Added master building
Disabled LTO by default
Added some missing override declarations
Added Clang building
Disabled Clang 12 and 13 for the time being

Thanks to @aleos89 and @Akkarinage for their help and input.
2022-01-19 00:08:28 +01:00
Lemongrass3110
916860fef8 Implemented inventory expansion (#6485)
Fixes #5218
2022-01-12 09:12:47 +01:00
Lemongrass3110
4bc9e24b4e Initial support for 2021-11-03RagexeRE (#6431)
Fixes #6415
2022-01-09 14:03:17 +01:00
Lemongrass3110
7556453dfc Merge of Rytech's 4CrAM (#6414)
Merged Rytech2/4CrAM-Open@978d4fc406

Original author is @Rytech2 and all credits belong to him.
Cleanups by @Lemongrass3110, @aleos89 and @Atemo.

Co-authored-by: Rytech2 <rytech16@gmail.com>
Co-authored-by: aleos <aleos89@users.noreply.github.com>
Co-authored-by: Atemo <capucrath@gmail.com>
2021-12-30 20:25:19 +01:00
Lemongrass3110
6ddb09cbbd Added basic support for 4th and 4th-ex class (#6412) 2021-12-19 13:17:50 +01:00
Daegaladh
b2be269bf7 Fixed changesex not changing the character's sex (#6201) 2021-08-25 00:13:49 +02:00
Atemo
7ade6d8c86 Converted txt guild experience database to yaml (#5995)
* Converts the Skill Tree Tables file into YAML.
* Includes CSV2YAML converter.

Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2021-07-19 14:30:13 +02:00
Atemo
f230b13ded Converted statpoint.txt to YAML (#6010)
* Converts the Statpoint Database into YAML.
* Includes CSV2YAML converter.
* Added start_status_points to inter_athena.conf

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2021-07-05 19:06:49 +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
Lemongrass3110
9837fcd2b9 Made the char-server name available (#5891)
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
2021-04-26 19:12:08 +02:00
Vincent Stumpf
ca779dad59 Clean up instance map name generation (#5704)
Put the instance map name generation in a seperate function
Fix some compiler warnings
Fixes #5691
Thanks @RadianFord
2021-02-25 15:01:44 -08:00
Lemongrass3110
9f87653e3a Fixed homcunulus exp definitions (#5711)
Follow up to f57b037

Thanks to @JinYuichi and @RagnaWay
2021-01-26 15:25:43 +01:00
Lemongrass3110
6ea30897b4 Refactored automatic mail deletion (#4569)
Added a configuration that allows you to delete mails without attachment instantly after the given interval.

Introduced a define for the iteration size of how many mails will be deleted in each circle.
It his highly recommended to not increase it too high or your char server might lag, if you have a lot of mails on your server.

Always delete all mails sent by the server after the given interval in a single statement and ignoring the iteration size.

Added transaction safety for mail deletion. With this a mail and it's attachments will always be safely deleted together.

Fixed a duplication issue, when deletion of the mail would have failed, but the mail was still returned.

Fixed notification of online characters in certain rate circumstances.
2021-01-15 13:38:03 +01:00
Daegaladh
ecb4cc0a42 Session check standarization (#5388)
Thanks to @Lemongrass3110
2021-01-14 15:57:30 +01:00
Lemongrass3110
d01b718cc0 Initial support for enchantgrade (#5445)
Thanks to @LunarSHINING, @idk-whoami and @attackjom
2020-11-05 22:18:12 +01:00
Lemongrass3110
765b6a8ed2 Fixed a useless warning for PACKETVER < 20141016 (#5519)
Fixes #5515

Thanks to @joven15 and @Patotron
2020-11-03 20:30:34 +01:00
Lemongrass3110
b1b7d06559 Follow up to 3ab1ada (#5411)
Fixes calls to the function without the character session

Thanks to @KrokusPokus
2020-09-28 14:29:15 +02:00
Daegaladh
bd90763ffe Fixed a potential crash in the char-server (#5381) 2020-09-07 20:25:27 +02: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
Aleos
28b1d1142c Fixes RODEX retrieve all button (#5238)
* Fixes #5061.
* Resolves the client crashing when attempting to retrieve all attachments from mail.
* Mail should not be marked as read after retrieving the attachments from them.
* Converts packets to new struct format.
Thanks to @admkakaroto and @attackjom!
2020-08-04 13:27:45 -04:00
Cydh Ramdh
1658f273de Adjust EXP storage to uint64 (#4377)
* Updates EXP table to 200/70
* Always store exp as uint64 no matter the client date.
* Adjusts guild exp to uint64.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2020-07-28 16:43:46 -04:00
Aleos
620fc7fbf2 Adds several missing player session checks (#5158)
* Fixes #5156.
* Adds missing player session checks for the char-server.
Thanks to @blipblopblip!
2020-07-03 08:34:55 -04:00
Jittapan Pluemsumran
d38d2b6b71 Guild emblem implementation for late 2019 clients or later (#5144)
Co-authored-by: valhein <35770095+attackjom@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2020-06-30 15:57:03 +07:00
Jittapan Pluemsumran
00d6014c8c Web authentication token feature (#5093)
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2020-06-25 03:15:58 +07:00
Lemongrass3110
bac53cf737 Fixed a possible crash in the char-server
Thanks to @Daegaladh
2020-06-19 16:37:55 +02:00
Daegaladh
02e15335dd Cleaned up chlogif_parse functions (#5070)
*Thanks to @aleos89
2020-06-09 22:21:00 +02:00
Lemongrass3110
3ab1ada8d9 Removed account gender (#5006)
Adds an upgrade script to change all existing entries to the respective gender in their account.
Cleanup of a few strange design decisions in the character server code.
Removed SEX_ACCOUNT.

Thanks to @Daegaladh for his help.
2020-06-04 17:23:50 +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
Aleos
2f326bf04a Converted Quest Database to YAML (#4064)
* Changes TimeLimit format to be human readable.
* Converts title to string.
* Converts objectives and drop items to vectors.
* General clean ups and optimizations.
* Got rid of dummy_quest.
* Added TXT to YAML converter.
Thanks to @Atemo and @Normynator!
Co-authored-by: atemo <capucrath@gmail.com>
2020-03-30 13:17:19 -04:00
Lemongrass3110
0e826261a6 Cleaned up some misleading comments
1) global_acc_reg_num_table and global_acc_reg_str_table are used in the login server only and their configuration and access is not shared with any other component.
2) The character server does not check for global_acc_reg_str_table and global_acc_reg_str_table, but for acc_reg_str_table and acc_reg_str_table.
2020-03-26 21:40:42 +01:00
Aleos
35102c3059 Quest data should be cleared on char deletion (#4633)
* Fixes #4628.
* Player quest data should be deleted when the character is deleted.
Thanks to @Tokeiburu!
2020-02-11 14:33:20 -05:00
Lemongrass3110
0b3430c777 Fixed some database redundencies (#4565)
Cleaned redundancies in guild members and friends table

Fixes #4564

Thanks to @Everade
2020-02-03 20:27:11 +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
c52b3b784a Expanded a couple baby job names (#4500)
* Expanded Job_Baby_Rune -> Job_Baby_Rune_Knight, Job_Baby_Bishop -> Job_Baby_Arch_Bishop, Job_Baby_Cross -> Job_Baby_Guillotine_Cross, Job_Baby_Guard -> Job_Baby_Royal_Guard, and Job_Baby_Chaser -> Job_Baby_Shadow_Chaser.
* Expanded related MAPID/EAJ constants as well.
* Added deprecation notice for old constants.
* Updated database and NPC scripts to use new constants.
2020-01-01 22:53:40 -05:00
Aleos
783009d642 Updated Achievement EXP to official values (#4326)
* Added the official values for the AG_GOAL_ACHIEVE.
* Refactored the leveling logic for Achievements to account for the new values.
* Moved achievement EXP to a database file.
* Added AchievementLevel player variable to allow for easy tracking in the achievement condition checks.
* Cleaned up player GUI EXP progression.
* Added a check to not save achievements that made no changes.
* Added first login achievement.
Thanks to @Lemongrass3110!
2019-10-11 09:42:01 -04:00
Jittapan Pluemsumran
bc15f5ce14 Dropped ragsrvinfo functionality (#4301) 2019-08-15 19:08:22 +07:00
Aleos
3dd388ac66 Corrected a compile warning on GCC 8 (#4263)
* Fixes #4158.
Thanks to @gengstergile!
2019-07-25 09:56:34 -04:00
Sader Fawall
317146c0d0 Fix maintenance and gm_allow_group config (#4042)
* Adjusted maintenance and gm_allow_group config to support a range of Group ID rather than just one group.
Thanks to @sader1992!
2019-05-20 09:18:15 -04:00
CairoLee
94324bc2d7 Ensure the mysql server host support full length domain (#4092) 2019-04-17 17:59:42 -04:00
Aleos
7e7a28315e Reduced MAX_MAP_SERVERS and MAX_SERVERS size (#4099)
* Reduced MAX_MAP_SERVERS down to 2.
* Reduced MAX_SERVERS down to 5.
2019-04-17 14:47:55 -04:00
Aleos
c772262469 Corrected guild level increases (#4094)
* Resolves guild levels being capped to various hard coded limits rather than using the constant.
Thanks to @datleeroy!
2019-04-10 09:15:54 -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
Aleos
78eed02273 Updated the YAML parsing method (#3694)
Synchronized the process of loading and parsing YAML databases.
Provides more robust parse warnings/errors.
Added Header checks to validate database versions.
Adjusted root keys to a standard name of Body.
Adjusted inter-server storages, achievements, and attendance to follow the new format.

Fixes #3483

Thanks to @Lemongrass3110!
2019-02-28 22:19:39 +01:00
Mark Hester
a5c93b60a6 Definitions for DB Pathing (#3964)
* Added the use of DBPATH/DBIMPORT definition for guild EXP, job information, level penalties, and map cache to remove hardcoded values.
Thanks to @marky291!
2019-02-22 09:02:08 -05:00
Aleos
c5a5c54518 Converted remaining C comments (#3927)
* Converted remaining documentation that references .c or .h files.
2019-02-09 15:08:45 -05:00