From c94eed83ef87ed4e452d38efa6e7cf7c40aece71 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 21 May 2024 10:33:34 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/callfunc.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 471a7029..20f599fd 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -308,7 +308,10 @@ void CallFuncBuff::Deactivate() break; case BuffCallFunc_e::kAddEnergyShield: { - owner->ClearEnergyShield(); + float dur_time = meta->GetBuffParam3(this); + if (dur_time > 0.00001f) { + owner->ClearEnergyShield(); + } } break; default: @@ -1251,7 +1254,7 @@ void CallFuncBuff::SpecCenterRangeHoldBuff() void CallFuncBuff::InternalRangeHoldBuff(std::function get_center_func) { - if (owner->dead) { + if (owner->dead && !meta->dead_valid()) { return; } struct InnerObject @@ -1799,7 +1802,7 @@ void CallFuncBuff::OnBreakSkillPostExec() void CallFuncBuff::RandAdd() { hold_param2_ = meta->GetBuffParam2(this) * 100; - if (hold_param2_ < a8::RandEx(0, 100)) { + if (hold_param2_ >= a8::RandEx(0, 100)) { for (auto buff_id : meta->_buff_param3_int_list) { if (buff_id > 0) { owner->TryAddBuff(