Commit Graph

50 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
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
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
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
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
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
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
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
Jittapan Pluemsumran
bc15f5ce14 Dropped ragsrvinfo functionality (#4301) 2019-08-15 19:08:22 +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
Aleos
c5a5c54518 Converted remaining C comments (#3927)
* Converted remaining documentation that references .c or .h files.
2019-02-09 15:08:45 -05:00
Lemongrass3110
818ff109f3 Initial Release of Equipment Switch (#3548)
Thanks to everyone who contributed to this release in any way, be it donations, information or testing.

Merry Christmas :-)
2018-12-24 14:10:29 +01:00
Lemongrass3110
01f61cfa4f Added support for 64bit ticks (#3768)
Fixes #3017

Thanks to Hercules for the idea and their implementation of it.

This deprecates Windows XP support. If you want to use it to run your server on it, you have to forcefully enable it now.
Since 64bit ticks do not exist on XP, you might encounter some issues that are already fixed on other OS.
2018-12-21 00:02:19 +01:00
Lemongrass3110
1c987de71d Fixed unknown map in character select (#3761)
Fixes #1145

Credits to @4144 for finding this!

Thanks to @RadianFord for reporting.
2018-12-20 17:56:13 +01:00
Lemongrass3110
bff89bd70e Fixed possible string out of bounds in configurations (#3631)
Added safestrncpy to char's inter configurations
Added safestrncpy to map's inter configurations
Added safestrncpy to message configurations
Adjusted some char configurations
Cleaned up logging configurations

Fixes #3624 

Thanks to @mrjnumber1
2018-11-29 22:56:17 +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
Gustavo Brigo
952ac43e59 Fixed EXP bug and added failsafe to family check functions (#3350)
Fixes #3349
2018-07-25 21:58:58 +02:00
Lemongrass3110
c4d7dc76d3 Hid timer function parameters in a macro (#3311) 2018-07-15 23:17:15 +02:00
Aleos
e13ca63cc8 Added Guild Storage Expansion Skill (#3244)
* Fixes #499 and part of #1303.
* Implements Guild Storage Expansion Skill which requires client 2013-12-23 or newer (enable by default depending on client date in src/config/packets.hpp).
* Implements guild storage permission which requires client 2014-02-05 or newer.
* Expanded script command guildopenstorage return values.
2018-07-03 08:49:34 -04: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
Jittapan Pluemsumran
aab5d54945 Added a config for disabling novice/summoner character creation (#3008)
* Added a config for disabling novice/summoner character creation.
* Summoner can no longer be created on pre-renewal by default.
Thanks to @Lemongrass3110 for the help
2018-04-04 16:40:03 +07:00
Lemongrass3110
aff70f6482 Added support for homunculus autofeeding (#3007)
* Added support for homunculus autofeeding
This feature is available in 2017-09-20bRagexeRE or later

Credits to @Asheraf in HerculesWS/Hercules#1898
2018-04-04 13:55:51 +07:00
Lemongrass3110
f338d53c2c Added support for clients up to 2018-03-07bRagexeRE (#2975)
Thanks to @4144 as always
Credits to @dastgir and the leaked 2015 dump for the quest packets
Thanks to @idamonli for testing and feedback
2018-03-14 23:05:01 +01:00
lighta
24b3509e53 Initial work for char server to C++ (#2567)
* Initial work for char server to C++

* Changes suggested from @Lemongrass3110

* Removes unwanted beginning white spaces.
2017-11-06 22:40:35 -04:00
Jey
ae0da362f8 Follow up to fe75aea
* Fixes a compile warning
* Thanks to @Haikenz
2017-10-06 02:23:56 +02:00
Aleos
fe75aeab50 Corrected character slot movement (#2452)
* Corrected character slot movement
* Resolves characters changing slots (on the char-selection screen) to the first empty slot rather than to the actual slot index.
Thanks to @Tokeiburu, @Lemongrass3110, and @Jeybla!
2017-10-05 18:31:30 -04:00
Lemongrass3110
7de7472782 Added support for some missing clients (#2458) 2017-09-28 23:52:56 +02:00
Aleos
fc115b85a1 Adjusted HP, Max HP, SP, and Max SP SQL defines (#2389)
* Fixes #2387.
* Adjusted column define from mediumint to unsigned int.
* Synchronized default values to 0.
* Adjusted the parser format specifier
* Adjusted the specifiers to support unsigned.
Thanks to @M45T3Ryu and @Lemongrass3110!
2017-08-31 10:49:48 -04:00
Lemongrass3110
d319ff7ca5 Fixed character creation for expired VIP accounts
Fixes #2333

Thanks to @Everade
2017-08-16 13:50:13 +02:00
Lemongrass3110
34aa59d82b Added missing MySQL column check for show_equip
Follow up to 983d164
2017-08-07 09:31:32 +02:00
Lemongrass3110
983d164b7d Fixed public equip switch not being saved
Fixes #2310

Thanks to @mrjnumber1
2017-08-06 13:49:29 +02:00
Lemongrass3110
bbd42e7f12 Cleaned up character deletion code (#2296)
* Fixes #2271
Thanks to @Tokeiburu
2017-08-04 18:46:17 -04:00
Aleos
7f5411da07 Initial release of the Achievement System (#2044)
* Information based on kRO patch notes.
- http://ro.gnjoy.com/news/update/View.asp?seq=163&curpage=1
* Includes Title System which is integrated into the Achievement System.
* Includes RODEX integration for rewards.
* Added new atcommand reloadachievementdb.
* Added new script commands achievementinfo, achievementadd, achievementremove, achievementcomplete, and achievementexists.
Thanks to @Lux-uri, @RagnarokNova, @Lemongrass3110, and @Tokeiburu for their help!
2017-07-27 09:33:03 -04:00
Lemongrass3110
be15b62912 Follow up to a3c0590
Added a missing field check
2017-07-24 10:35:44 +02:00
aleos89
20908ee9c0 Replaced some final uses of rand()
* Replaced some final left overs of rand() with rnd() from MT19937AR.
2017-06-26 14:36:31 -04:00
Jey
809fc35b0e Follow up to 4a2574c.\r\nThanks to @Jeybla! 2017-06-26 01:24:54 +07:00
Jittapan Pluemsumran
4a2574c599 Migrate core source files to C++. Add yaml-cpp project as dependency (#2207)
By updating to this commit, Linux users have to regenerate Makefiles by re-running the configure script.

* Added yaml-cpp project as a 3rdparty library
* Migrated source files core to C++
* Updated configure scripts
* Make Linux installations compile *.cpp files
* Made server components' main source file C++
* Also made headers CPP-aware.

* Added basic C wrapper for yaml-cpp library
* YAML-node path is delimited by periods.
* Basic integer types and string are supported.
* Strings returned from this wrapper have to be freed with malloc.h::aFree
* Arrays (sequence) is supported with iterator wrapper.
* Remember to free every wrapper you create!

* Add yaml-cpp as dependency of common project
* Made the repo not ignore *.yml files

Thanks to @aleos89 and @Lemongrass3110.
2017-06-25 23:33:24 +07:00