755b0e20a80d2605c0af65080b82e375b37c5de8
m2dev-server-src
Clean server sources for educational purposes.
It builds as it is, without external dependencies.
How to build
mkdir build
cd build
cmake ..
cmake --build .
📋 Changelog
🐛 Bug Fixes
- Login: Fixed an issue where the login phase did not support the updated packet header
100(GC_MARK_LOGIN). - Core Stability: Implemented safeguards to prevent server cores from crashing (
core downer) when a negative value is used in commands, such as/m <vnum> <quantity>. - Book reading in max level: Reading skill books does not consume experience points anymore if the character has reached the maximum level (gets max level from game configuration, not a static number).
- Character Selection: Corrected the display of character stats and ensured gauge bars accurately reflect the character's stats during the selection phase.
- Negative HP: Ensured that a character's HP does not drop below 0 upon death.
- CMakeLists for QC: Target libraries link to
qc(wasdb).
⬆️ Feature Improvements
- All compiler warnings for building in FreeBSD environments have been fixed
- Types are synced in comparisons, dynamic string building and other functions and some definitions.
- Minor performance improvements noticed in start time after changing
libthecore'svirtualsintoatomic. - More modern practices introduced in some parts of the codebase.
- Messenger System:
- Cross-Channel/Core Friend Requests: Implemented support for sending and processing friend requests across different channels and server cores.
ChatPacketnotification is functional if the recipient is not found after searching all channels/cores. - Live Status Updates: Live updates for adding/removing friend for both parties.
- Request Guarding: Added extensive validation checks to prevent:
- Resending a request while a previous one is unanswered.
- Sending a request to a person who has already sent an active, unanswered request to the sender.
- Sending a friend request to an existing friend or to yourself.
- All guard mechanisms provide translated
ChatPacketnotification messages and function correctly across channels and cores.
- All pending friend requests are cleared on character disconnect (teleport, logout, kick, etc...).
- A new friend request cancels all previous unanswered ones for that target.
- Cross-Channel/Core Friend Requests: Implemented support for sending and processing friend requests across different channels and server cores.
- Skill Cooldowns and States:
- Level Reset Handling: Skill cooldowns are now cleared upon a skill level reset or a skill-group reset. Works with
/setsksetting horse skills levels to 0 as well. - Togglable Skills: If a togglable skill is reset, it is automatically deactivated, and its active effect is immediately removed from the character.
- Combo Skills: Combo skill is automatically deactivate if its level is changed to 0 (
/setsk).
- Level Reset Handling: Skill cooldowns are now cleared upon a skill level reset or a skill-group reset. Works with
- .gitignore file: Ignoring all files and directories ending in
_BAKor.BAK(case-insensitive)
Description
Languages
C++
75.5%
C
24.4%
CMake
0.1%