savis 8123fc602c Add EventFlag-based quest enable/disable system
Implemented EventFlag system to control quest availability:
  - Added IsEventFlagSet() to check if EventFlag exists in questmanager
  - Added EventFlag checks in ExecuteQuestScript() for per-quest control
  - Added EventFlag checks in HandleEvent() for NPC-based quest control
  - Added EventFlag checks in OnChat() for chat-based quest control

  Usage:
  - /event quest_<questname>_enabled 0/1 - Enable/disable specific quest
  - /event quest_npc_<vnum>_enabled 0/1 - Enable/disable all NPC quests
  - /event quests_global_enabled 0/1 - Enable/disable all quests globally
2025-12-27 02:50:46 +01:00
2025-08-18 00:36:52 +02:00
2025-09-22 04:14:59 +02:00
2025-12-14 05:17:16 +02:00
2025-09-22 11:33:20 +03:00
2025-12-25 08:45:03 +02:00

m2dev-server-src

build

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

  • HP/SP Value Persistence: Fixed an issue where current HP/SP values were incorrectly affected by changes to Max HP/SP (such as stat upgrades or equipment changes).
  • GM Kill Command: Updated the /kill command to properly zero out the target's HP.
  • Messenger Deletion (Offline): Fixed an issue where a companion needed to be online for a "remove from messenger" action to complete.
  • Messenger Deletion (Cross-Channel): Fixed an issue where the removal message was visible to both parties even if they were in different channels or cores at the time of deletion.
  • Dungeon Party Logic: Fixed an issue where the same message would popup to all affected parties when a leader tried to kick a player or a player tried to leave a team while inside a dungeon. Includes several other update message optimizations and dungeon logic improvements regarding party kicking/leaving.

⬆️ Feature Improvements

  • Job-Specific Stat Resets: Individual stats reset scrolls (Items 71103, 71104, 71105, 71106) now recover stats to their initial values based on character job instead of defaulting to 1, returning the appropriate points. Translations now dynamically display the selected stat's value. Translation for Reset all-status scroll (71002) also adjusted from printing 'to 1'.
  • Logout Interruption: Using a skill now automatically cancels the logout countdown for both the user and the target (if applicable).
  • Auto Potion Logic: Auto potions can now be moved within the inventory while active and are automatically disabled immediately before being dropped to the ground.
Description
No description provided
Readme 16 MiB
Languages
C++ 75.5%
C 24.4%
CMake 0.1%