From 7673c4907194121d14fcd947feeac7bb1c6ac4cc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 28 Feb 2023 16:36:36 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/hold_shield.cc | 4 +++- server/gameserver/creature.cc | 1 + server/gameserver/selfchecker.cc | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/server/gameserver/buff/hold_shield.cc b/server/gameserver/buff/hold_shield.cc index 84819aaf..75824d2d 100644 --- a/server/gameserver/buff/hold_shield.cc +++ b/server/gameserver/buff/hold_shield.cc @@ -9,6 +9,7 @@ #include "skillhelper.h" #include "mt/Skill.h" +#include "mt/Buff.h" #include "mt/SkillNumber.h" void HoldShieldBuff::Activate() @@ -32,9 +33,10 @@ void HoldShieldBuff::Activate() ( SMT_BLINK, SkillHelper::GetLdfyBuffTime(owner, skill_meta) * 1000, - [c] + [this, c] { c->RemoveBuffByEffectId(kBET_HoldShield); + c->TryAddBuff(c, meta->_int_buff_param2); } ); } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index ff22835c..b4476b13 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2701,6 +2701,7 @@ void Creature::CheckBulletHitHoldShield(IBullet* bullet, bool& eat) a8::XPrintf("shiled destory\n", {}); #endif GetTrigger()->ShieldDestory(); + TryAddBuff(this, hold_shield_buff->meta->_int_buff_param1); RemoveBuffByUniId(hold_shield_buff->buff_uniid); } eat = true; diff --git a/server/gameserver/selfchecker.cc b/server/gameserver/selfchecker.cc index 25e66099..bbb9d006 100644 --- a/server/gameserver/selfchecker.cc +++ b/server/gameserver/selfchecker.cc @@ -189,6 +189,16 @@ void SelfChecker::Init() } } break; + case kBET_HoldShield: + { + if (meta->_int_buff_param1) { + SelfChecker::AddBuff(meta->_int_buff_param1); + } + if (meta->_int_buff_param2) { + SelfChecker::AddBuff(meta->_int_buff_param2); + } + } + break; default: { }