From c2bee6304b671d291827d97ad50558c9621cb12f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 25 Jul 2019 09:44:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=80=E8=83=BDcd=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/human.cc | 11 +++++++++-- server/tools/protobuild/metatable.proto | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 55b97e0..d02262c 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1095,7 +1095,7 @@ int Human::GetSkillLeftTime() return 0; } else { int passed_time = (room->frameno - last_use_skill_frameno_) * kFRAME_RATE_MS; - int skill_left_time = std::max(0, skill_meta_->i->skill_cd() * 1000 - passed_time); + int skill_left_time = std::max(0, GetSkillCd() - passed_time); return skill_left_time; } } @@ -1104,7 +1104,14 @@ int Human::GetSkillLeftTime() int Human::GetSkillCd() { - return skill_meta_ ? skill_meta_->i->skill_cd() * 1000 : 0; + if (!skill_meta_) { + return 0; + } + if (TankLv() <= 1) { + return skill_meta_->i->skill_cd() * 1000; + } else { + return skill_meta_->i->skill_cd() * 1000 - (TankLv() - 1) * skill_meta_->i->cold_time_up(); + } } void Human::TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type) diff --git a/server/tools/protobuild/metatable.proto b/server/tools/protobuild/metatable.proto index f8588d5..b5084e2 100755 --- a/server/tools/protobuild/metatable.proto +++ b/server/tools/protobuild/metatable.proto @@ -120,6 +120,7 @@ message Skill required int32 skill_target = 8; required string buff_list = 9; required float skill_distance = 10; + required int32 cold_time_up = 11; optional int32 phase1_time_offset = 20; optional int32 phase1_func = 21;