修复技能cd时间问题

This commit is contained in:
aozhiwei 2019-07-25 09:44:52 +08:00
parent e51c3e70d9
commit c2bee6304b
2 changed files with 10 additions and 2 deletions

View File

@ -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)

View File

@ -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;