HerculesWS / Hercules

Hercules is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. Hercules is a continuation of the original Athena project.
http://herc.ws
GNU General Public License v3.0
903 stars 758 forks source link

Fix reproduceskill and cloneskill being used in checks when being zero #3322

Closed skyleo closed 1 month ago

skyleo commented 2 months ago

Pull Request Prelude

Changes Proposed

Fix reproduceskill and cloneskill being used in checks when being zero

This resulted in for example skills gained temporarily by equipping which used SKILL_FLAG_REPLACEDLV* to be not cleared when taking the equip off.

This bug was introduced in https://github.com/HerculesWS/Hercules/pull/3298

NOTE: It's debatable if the loop that recreates skill levels of SKILL_FLAG_REPLACEDLV* and SKILL_FLAG_TEMPORARY skills should be part of pc->calc_skilltree_clear(..) as well. But that's refactoring and not in the scope of this PR.

Issues addressed: None