diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 9834c13..971770f 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -124,7 +124,11 @@ int Skill::GetMaxTimes() void Skill::NotifySkillState() { if (owner->IsHuman()) { - owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), meta->i->skill_id(), GetCd()); + if (GetCurrTimes() < GetMaxTimes()) { + owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), meta->i->skill_id(), GetCd()); + } else { + owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), meta->i->skill_id(), 0); + } owner->room->frame_event.AddSkillCurrTimesChg(owner->AllocWeakPtr(), meta->i->skill_id(), GetCurrTimes()); } }