diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index 4a3d5aad..6e9d7e78 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -848,6 +848,7 @@ void BattleDataContext::Init(Creature* c) void BattleDataContext::GetSkillList(std::vector& skill_list) { + const mt::Skill* spec_skill = mt::Skill::GetById(hero_ability_->spec_skill_id); const mt::Skill* skill1 = mt::Skill::GetById(hero_ability_->hero_meta->skill1list()); const mt::Skill* skill2 = mt::Skill::GetById(hero_ability_->hero_meta->skill2list()); const mt::Skill* skill3 = mt::Skill::GetById(hero_ability_->hero_meta->skill3list()); @@ -858,10 +859,15 @@ void BattleDataContext::GetSkillList(std::vector& skill_list) skill_list.push_back(skill1->skill_id()); } - if (mt::Skill::GetById(skill2->skill_id() + skill2_lv - 2)) { - skill_list.push_back(skill2->skill_id() + skill2_lv - 2); + //替换翻滚 + if (spec_skill) { + skill_list.push_back(spec_skill->skill_id()); } else { - skill_list.push_back(skill2->skill_id()); + if (mt::Skill::GetById(skill2->skill_id() + skill2_lv - 2)) { + skill_list.push_back(skill2->skill_id() + skill2_lv - 2); + } else { + skill_list.push_back(skill2->skill_id()); + } } if (mt::Skill::GetById(skill3->skill_id() + skill3_lv - 3)) {