31ae710d186840f919a41507da3a701307a0e6be
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
- Horse skill grade check: Fixed a check that required the horse skill's grade to be exactly 3 (Grand Master) in order to use skills, leaving GMs that set their skill to P unable to use riding skills
- Quest state loading: Fixed an issue where quest states (
when login begin) was being loaded before character affects onPHASE_GAME - Sura's Flame Ghost mounting: Fixed Sura's Flame Ghost when mounting. The skill now damages nearby enemies when the horse skill is more than Level 10.
- Experience points from chests: Fixed a bug where experience points were being replaced by Experience Rings when opening chests
- Gold from chests: Fixed a bug where Gold was being replaced by a Gold inventory item that had no value when opening chests
⬆️ Feature Improvements
- Nemere's Watchtower dungeon safeguards: Added checks for automatically dismounting/prevent mounting of any kind when the character is inside the new Nemere's Watchtower dungeon
- Conditional damage immunity system: Added various checks for true per-hit conditional damage immunity with full control via Lua functions as well as clones of the default mob/group spawning Lua functions that return the monsters' VIDs for further manipulation from the quests. Exposed Lua functions below:
d.regen_file_with_immunity: Spawn all monster/groups from a dungeon folder's regen.txt file with conditional immunity embedded from spawnd.regen_file_with_vids: The VIDs of all spawned monsters/groups from a dungeon folder's regen.txt file are being returned to Lua for further manipulationd.spawn_group_with_immunity: Spawn a group of monsters via its ID with conditional immunity embedded from spawnd.spawn_group_with_vids: The VIDs of all monsters from the group spawned are being returned to Lua for further manipulationd.spawn_mob_with_immunity: Spawn a single monster with conditional immunity embedded from spawnnpc.add_damage_immunity_condition: Add a damage immunity condition to an already spawned monsternpc.clear_damage_immunity_conditions: Clear all damage immunity from a monster so it can take damage normally againnpc.is_damage_immune: Check if a mob has damage immunity using its VIDnpc.set_damage_immunity: Set damage immunity to a monster using its VIDnpc.set_damage_immunity_with_conditions: Set conditional damage immunity to a monster using its VID- Immunity vs Conditional immunity: When a monster is immune to damage all hits are returning as MISS and it cannot be poisoned, burned, slowed or stunned. A condition is a rule that when applied, the monster's immunity is being ignored (for example, a mob is immune to damage unless the attacker is a Ninja - job 1). Multiple conditions are possible.
- More about the available conditions for damage immunity in
game/char.h
Description
Languages
C++
75.5%
C
24.4%
CMake
0.1%