From 43a1d7adf39bd53222b1c0394deae00a6f2c4329 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 4 Mar 2023 19:55:38 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/callfunc.h | 5 +++++ server/gameserver/buff/hold_shield.cc | 2 +- server/gameserver/skill.cc | 7 ++++--- server/gameserver/skill.h | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/gameserver/buff/callfunc.h b/server/gameserver/buff/callfunc.h index 6f84f323..63628255 100644 --- a/server/gameserver/buff/callfunc.h +++ b/server/gameserver/buff/callfunc.h @@ -2,6 +2,11 @@ #include "buff.h" +A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int, + kAddMinorMode = 5, + ); + + class CallFuncBuff : public Buff { public: diff --git a/server/gameserver/buff/hold_shield.cc b/server/gameserver/buff/hold_shield.cc index 743375c5..9c2e338f 100644 --- a/server/gameserver/buff/hold_shield.cc +++ b/server/gameserver/buff/hold_shield.cc @@ -36,7 +36,7 @@ void HoldShieldBuff::Activate() ( SMT_BLINK, SkillHelper::GetLdfyBuffTime(owner, skill_meta) * 1000, - [this, c] + [this, c] (int action) { c->RemoveBuffByEffectId(kBET_HoldShield); if (meta->_buff_param1_int_list.size() > 1) { diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 0431be33..f897a43b 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -167,7 +167,7 @@ int Skill::GetMaxExp() void Skill::AddMinorMode( int minor_type, int minor_cd_time, - std::function cb + std::function cb ) { if (!minor_mode_timer_.expired()) { @@ -186,6 +186,7 @@ void Skill::AddMinorMode( minor_type_ = SMT_NONE; minor_cd_time_ = 0; minor_frameno_ = 0; + minor_cb_(0); minor_cb_ = nullptr; } }, @@ -209,7 +210,7 @@ void Skill::AddMinorMode( void Skill::DoMinorMode() { if (GetMinorType() != SMT_NONE) { - minor_cb_(); + minor_cb_(1); minor_type_ = SMT_NONE; minor_cd_time_ = 0; minor_cb_ = nullptr; @@ -1217,7 +1218,7 @@ void Skill::ProcForthBackJumpPhase(const mt::SkillPhase* phase) phase->param2.GetInt() * 1000, #endif [this, pre_pos, pre_dir, buff_id1, buff_id2, buff_id3, land_effect_buff_uniid, - skill_meta] () { + skill_meta] (int action) { glm::vec3 old_dir = owner->GetMoveDir(); Position old_pos = owner->GetPos(); float distance = owner->GetPos().Distance2D2(pre_pos); diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 8c1d7d2e..3669ce08 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -39,7 +39,7 @@ class Skill void AddMinorMode( int minor_type, int minor_cd_time, - std::function cb + std::function cb ); void DoMinorMode(); void ProcSkillPhase(const mt::SkillPhase* phase); @@ -75,7 +75,7 @@ private: int minor_type_ = 0; int minor_cd_time_ = 0; long long minor_frameno_ = 0; - std::function minor_cb_; + std::function minor_cb_; friend class PBUtils; };