From 1cf38a89439005fd2a26b616fb29ff749012cfbc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 4 Apr 2023 20:07:11 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/callfunc.cc | 11 +++++++---- server/gameserver/buff/callfunc.h | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 6dfd862f..924648d5 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -147,9 +147,9 @@ void CallFuncBuff::Activate() ClearSummonObstacle(); } break; - case BuffCallFunc_e::kResetSkillCd: + case BuffCallFunc_e::kDecSkillCd: { - ResetSkillCd(); + DecSkillCd(); } break; default: @@ -781,11 +781,14 @@ void CallFuncBuff::ClearSummonObstacle() owner->RemoveSurplusObstacle(id, num); } -void CallFuncBuff::ResetSkillCd() +void CallFuncBuff::DecSkillCd() { int skill_id = meta->_int_buff_param2; + float rate = meta->GetBuffParam3(this); Skill* skill = owner->GetSkill(skill_id); if (skill) { - skill->ResetSkillCd(); + float cd = skill->GetCd(); + float dec_time = skill->GetCd() * rate; + skilll->Accelerate(-dec_time); } } diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index 86d5d393..b28b7b49 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -24,7 +24,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int, kSummonObstacleSepcPoint = 24, kSummonObstacleSpecDistance = 25, kClearSummonObstacle = 26, - kResetSkillCd = 27 + kDecSkillCd = 27 ); @@ -52,7 +52,7 @@ class CallFuncBuff : public Buff void SummonObstacleSpecPoint(); void SummonObstacleSpecDistance(); void ClearSummonObstacle(); - void ResetSkillCd(); + void DecSkillCd(); float hold_param2_ = 0.0; };