diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 65b4af33..9d7b68da 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -338,8 +338,19 @@ void CallFuncBuff::ProcLightCircle() if (context->in_human_infos.find(hum->GetUniId()) != context->in_human_infos.end()) { abort(); } + const mt::Skill* curr_skill_meta = context->active_skill_meta ? + context->active_skill_meta : skill_meta; + InnerObject o; o.c = hum->GetWeakPtrRef(); + + 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)); + } + skill_meta = old_skill_meta; + context->in_human_infos[hum->GetUniId()] = o; context->in_human_infos[hum->GetUniId()].OnEnter(); };