diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 9d7b68da..ddd4e75e 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -347,7 +347,7 @@ void CallFuncBuff::ProcLightCircle() const mt::Skill* old_skill_meta = skill_meta; skill_meta = curr_skill_meta; for (int buff_id : meta->_buff_param2_int_list) { - o.buff_uniids.insert(owner->TryAddBuff(GetCaster().Get(), buff_id, skill_meta)); + o.buff_uniids.insert(hum->TryAddBuff(GetCaster().Get(), buff_id, skill_meta)); } skill_meta = old_skill_meta; @@ -365,6 +365,9 @@ void CallFuncBuff::ProcLightCircle() if (itr == context->in_human_infos.end()) { abort(); } + for (int buff_uniid : itr->buff_uniids) { + hum->RemoveBuffByUniId(buff_uniid); + } itr->second.OnLeave(); context->in_human_infos.erase(itr); };