diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index ac76742..5509fd6 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -572,7 +572,7 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff) Skill* skill = CurrentSkill(); if (skill) { MetaData::SkillPhase* phase = GetCurrSkillPhase(); - if (phase && phase->time_offset >= skill->GetLeftTime()) { + if (phase && phase->time_offset >= skill->GetPassedTime()) { if (HasBuffEffect(kBET_Car)) { _UpdateMove(phase->param1.GetDouble() * 1.5); } else { diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 21933f7..f4f2f91 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -10,9 +10,15 @@ int Skill::GetCd() return meta->i->skill_cd() * 1000; } -int Skill::GetLeftTime() +int Skill::GetPassedTime() { int passed_time = (owner->room->GetFrameNo() - last_use_frameno) * FRAME_RATE_MS; + return passed_time; +} + +int Skill::GetLeftTime() +{ + int passed_time = GetPassedTime(); int skill_left_time = std::max(0, GetCd() - passed_time); return skill_left_time; } diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 92c563a..a249888 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -16,6 +16,7 @@ class Skill int GetCd(); int GetLeftTime(); + int GetPassedTime(); void ClearPassiveSkillBuff(); void AddPassiveSkillBuff();