diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 68679e54..4320f31c 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -11,25 +11,12 @@ void Skill::Initialzie() switch (meta->i->skill_type()) { case kActiveSkill: { - inc_times_timer_ = owner->room->xtimer.AddRepeatTimerAndAttach - ( - GetCd() / FRAME_RATE_MS, - a8::XParams() - .SetSender(this), - [] (const a8::XParams& param) - { - Skill* skill = (Skill*)param.sender.GetUserData(); - if (skill->GetCurrTimes() < skill->GetMaxTimes()) { - skill->curr_times_++; - skill->NotifySkillState(); - } - }, - &xtimer_attacher.timer_list_); + InitActiveSkill(); } break; case kPassiveSkill: { - + InitPassiveSkill(); } break; default: @@ -249,3 +236,131 @@ void Skill::DoMinorMode() owner->need_sync_active_player = true; } } + +void Skill::InitActiveSkill() +{ + inc_times_timer_ = owner->room->xtimer.AddRepeatTimerAndAttach + ( + GetCd() / FRAME_RATE_MS, + a8::XParams() + .SetSender(this), + [] (const a8::XParams& param) + { + Skill* skill = (Skill*)param.sender.GetUserData(); + if (skill->GetCurrTimes() < skill->GetMaxTimes()) { + skill->curr_times_++; + skill->NotifySkillState(); + } + }, + &xtimer_attacher.timer_list_); +} + +void Skill::InitPassiveSkill() +{ + switch (meta->GetMagicId()) { + case MAGIC_SJXY: + { + ProcSJXY(); + } + break; + case MAGIC_SSJS: + { + ProcSSJS(); + } + break; + case MAGIC_JSHX: + { + ProcJSHX(); + } + break; + case MAGIC_SWZB: + { + ProcSWZB(); + } + break; + case MAGIC_CMXD: + { + ProcCMXD(); + } + break; + case MAGIC_MYXY: + { + ProcMYXY(); + } + break; + case MAGIC_GZJS: + { + ProcGZJS(); + } + break; + case MAGIC_JYFH: + { + ProcJYFH(); + } + break; + case MAGIC_FH: + { + ProcFH(); + } + break; + case MAGIC_YSHF: + { + ProcYSHF(); + } + break; + default: + { + } + break; + } +} + +void Skill::ProcSJXY() +{ + +} + +void Skill::ProcSSJS() +{ + +} + +void Skill::ProcJSHX() +{ + +} + +void Skill::ProcSWZB() +{ + +} + +void Skill::ProcCMXD() +{ + +} + +void Skill::ProcMYXY() +{ + +} + +void Skill::ProcGZJS() +{ + +} + +void Skill::ProcJYFH() +{ + +} + +void Skill::ProcFH() +{ + +} + +void Skill::ProcYSHF() +{ + +} diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 01c116b5..fa5e6ab3 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -53,7 +53,22 @@ class Skill void AddPassiveSkillBuff(); private: + void InitActiveSkill(); + void InitPassiveSkill(); + void NotifySkillState(); + + void ProcSJXY(); + void ProcSSJS(); + void ProcJSHX(); + void ProcSWZB(); + void ProcCMXD(); + void ProcMYXY(); + void ProcGZJS(); + void ProcJYFH(); + void ProcFH(); + void ProcYSHF(); + private: int curr_times_ = 0; xtimer_list* inc_times_timer_ = nullptr;