From ac260d063f48585dc26a072d4e193079c9f5cea9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 1 Mar 2023 11:06:48 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/hold_shield.cc | 4 +++- server/gameserver/creature.cc | 4 +++- server/gameserver/human.cc | 2 +- server/gameserver/selfchecker.cc | 7 ++----- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/server/gameserver/buff/hold_shield.cc b/server/gameserver/buff/hold_shield.cc index d5f57761..743375c5 100644 --- a/server/gameserver/buff/hold_shield.cc +++ b/server/gameserver/buff/hold_shield.cc @@ -39,7 +39,9 @@ void HoldShieldBuff::Activate() [this, c] { c->RemoveBuffByEffectId(kBET_HoldShield); - c->TryAddBuff(c, meta->_int_buff_param2); + if (meta->_buff_param1_int_list.size() > 1) { + c->TryAddBuff(c, meta->_buff_param1_int_list[1]); + } Pound(); } ); diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 61e9b2e3..933c2250 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2702,7 +2702,9 @@ void Creature::CheckBulletHitHoldShield(IBullet* bullet, bool& eat) a8::XPrintf("shiled destory\n", {}); #endif GetTrigger()->ShieldDestory(); - TryAddBuff(this, hold_shield_buff->meta->_int_buff_param1); + if (hold_shield_buff->meta->_buff_param1_int_list.size() > 0) { + TryAddBuff(this, hold_shield_buff->meta->_buff_param1_int_list[0]); + } RemoveBuffByUniId(hold_shield_buff->buff_uniid); } eat = true; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index d6e9808c..e8ac801f 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -476,7 +476,7 @@ float Human::GetSpeed() { Buff* buff = GetBuffByEffectId(kBET_HoldShield); if (buff) { - return buff->meta->_buff_param3; + return buff->meta->_buff_param5 / SERVER_FRAME_RATE; } } { diff --git a/server/gameserver/selfchecker.cc b/server/gameserver/selfchecker.cc index bbb9d006..99adc5fb 100644 --- a/server/gameserver/selfchecker.cc +++ b/server/gameserver/selfchecker.cc @@ -191,11 +191,8 @@ 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); + for (int buff_id : meta->_buff_param1_int_list){ + SelfChecker::AddBuff(buff_id); } } break;