diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 027462b0..e5c400b3 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -544,3 +544,17 @@ void Skill::Reset() } level_ = 1; } + +const mt::Skill* Skill::GetCurrSkillMeta() +{ + if (level_ > 1) { + const mt::Skill* new_skill_meta = mt::Skill::GetById(meta->skill_id() + level_ - 1); + if (new_skill_meta) { + return new_skill_meta; + } else { + return meta; + } + } else { + return meta; + } +} diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 59599ae8..c01ce87e 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -51,6 +51,7 @@ class Skill void LevelUp(); void Clear(); void Reset(); + const mt::Skill* GetCurrSkillMeta(); private: void InitActiveSkill();