This commit is contained in:
aozhiwei 2023-11-03 17:10:22 +08:00
parent 0ca438eead
commit 8f3f141f55
3 changed files with 22 additions and 6 deletions

View File

@ -521,7 +521,7 @@ void Obstacle::FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_d
void Skill::FillMFSkill(cs::MFSkill* skill_pb) void Skill::FillMFSkill(cs::MFSkill* skill_pb)
{ {
skill_pb->set_skill_id(meta->skill_id() + level_ - 1); skill_pb->set_skill_id(GetBaseSkillId());
skill_pb->set_actived(Actived()); skill_pb->set_actived(Actived());
skill_pb->set_left_time(GetLeftTime()); skill_pb->set_left_time(GetLeftTime());
skill_pb->set_cd_time(GetCd()); skill_pb->set_cd_time(GetCd());

View File

@ -114,11 +114,11 @@ void Skill::NotifySkillState()
{ {
if (owner->IsHuman() || owner->IsCar()) { if (owner->IsHuman() || owner->IsCar()) {
if (GetCurrTimes() < GetMaxTimes()) { if (GetCurrTimes() < GetMaxTimes()) {
owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), meta->skill_id(), GetCd()); owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), GetBaseSkillId(), GetCd());
} else { } else {
owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), meta->skill_id(), 0); owner->room->frame_event.AddSkillCdChg(owner->AllocWeakPtr(), GetBaseSkillId(), 0);
} }
owner->room->frame_event.AddSkillCurrTimesChg(owner->AllocWeakPtr(), meta->skill_id(), GetCurrTimes()); owner->room->frame_event.AddSkillCurrTimesChg(owner->AllocWeakPtr(), GetBaseSkillId(), GetCurrTimes());
} }
} }
@ -177,6 +177,7 @@ void Skill::AddMinorMode(
std::function<void(int)> cb std::function<void(int)> cb
) )
{ {
bool is_player = owner->IsPlayer();
if (!minor_mode_timer_.expired()) { if (!minor_mode_timer_.expired()) {
owner->room->xtimer.Delete(minor_mode_timer_); owner->room->xtimer.Delete(minor_mode_timer_);
} }
@ -205,7 +206,7 @@ void Skill::AddMinorMode(
minor_type_, minor_type_,
minor_cd_time_, minor_cd_time_,
minor_cd_time_, minor_cd_time_,
meta->skill_id(), GetBaseSkillId(),
true true
); );
NotifySkillState(); NotifySkillState();
@ -220,10 +221,15 @@ void Skill::AddMinorMode(
minor_type_, minor_type_,
minor_cd_time_, minor_cd_time_,
minor_cd_time_, minor_cd_time_,
meta->skill_id(), GetBaseSkillId(),
true true
); );
NotifySkillState(); NotifySkillState();
#ifdef DEBUG
if (is_player) {
a8::XPrintf("add minor mode minor_type:%d\n", {minor_type_});
}
#endif
} }
} }
@ -569,3 +575,12 @@ int Skill::GetSkillId()
{ {
return meta->skill_id(); return meta->skill_id();
} }
int Skill::GetBaseSkillId()
{
if (meta->_base_skill_meta) {
return meta->_base_skill_meta->skill_id();
} else {
GetSkillId();
}
}

View File

@ -53,6 +53,7 @@ class Skill
void Reset(); void Reset();
const mt::Skill* GetCurrSkillMeta(); const mt::Skill* GetCurrSkillMeta();
int GetSkillId(); int GetSkillId();
int GetBaseSkillId();
private: private:
void InitActiveSkill(); void InitActiveSkill();