diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 3fe04d2d..7efacbe7 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -372,7 +372,11 @@ void CallFuncBuff::ProcAddMinorMode() a8::XPrintf("addminor buff_id:%d\n", {buff_id}); } #endif - owner_ptr.Get()->TryAddBuff(owner_ptr.Get(), buff_id, skill_meta_ptr); + if (buff_id > 0) { + owner_ptr.Get()->TryAddBuff(owner_ptr.Get(), buff_id, skill_meta_ptr); + } else { + owner_ptr.Get()->RemoveBuffById(buff_id); + } } } else if (action == kSmaTimeOut || action == kSmaCancel) { for (int buff_id : meta_ptr->_buff_param7_int_list) {