diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 450bd7b..607f474 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -298,6 +298,8 @@ bool Human::IsCollisionInMapService() } } break; + default: + break; } } return false; @@ -638,6 +640,8 @@ bool Human::HasNoDownedTeammate() void Human::DoSkill() { + if (skill_meta && GetSkillLeftTime() <= 0) { + } } void Human::FindLocation() @@ -666,6 +670,8 @@ void Human::FindLocation() } } break; + default: + break; } } } @@ -798,19 +804,10 @@ void Human::FillMFActivePlayerData(cs::MFActivePlayerData* player_data) player_data->set_max_energy_shield(max_energy_shield); } #endif - #if 1 if (skill_meta) { - if (last_use_skill_frameno_ == 0) { - player_data->set_skill_left_time(0); - player_data->set_skill_cd_time(skill_meta->i->skill_cd() * 1000); - } else { - int passed_time = (room->frame_no - last_use_skill_frameno_) * FRAME_RATE_MS; - int skill_left_time = std::max(0, skill_meta->i->skill_cd() * 1000 - passed_time); - player_data->set_skill_left_time(skill_left_time); - player_data->set_skill_cd_time(skill_meta->i->skill_cd() * 1000); - } + player_data->set_skill_left_time(GetSkillLeftTime()); + player_data->set_skill_cd_time(GetSkillCd()); } - #endif } void Human::FillMFGasData(cs::MFGasData* gas_data) @@ -1223,6 +1220,8 @@ void Human::UpdateAction() hum->SyncAroundPlayers(); } break; + default: + break; } ResetAction(); } @@ -1289,6 +1288,25 @@ int Human::SkinLv() return skin.skin_lv; } +int Human::GetSkillLeftTime() +{ + if (skill_meta) { + if (last_use_skill_frameno_ == 0) { + return 0; + } else { + int passed_time = (room->frame_no - last_use_skill_frameno_) * FRAME_RATE_MS; + int skill_left_time = std::max(0, skill_meta->i->skill_cd() * 1000 - passed_time); + return skill_left_time; + } + } + return 0; +} + +int Human::GetSkillCd() +{ + return skill_meta ? skill_meta->i->skill_cd() * 1000 : 0; +} + void Human::_UpdateMove(int speed) { for (int i = 0; i < speed; ++i) { diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 99c79f9..2c27543 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -190,6 +190,8 @@ class Human : public Entity const Skin& GetSkin(); int SkinId(); int SkinLv(); + int GetSkillLeftTime(); + int GetSkillCd(); protected: void _UpdateMove(int speed);