diff --git a/server/gameserver/buff/cond_add.cc b/server/gameserver/buff/cond_add.cc index 3cd59571..1b19c20e 100644 --- a/server/gameserver/buff/cond_add.cc +++ b/server/gameserver/buff/cond_add.cc @@ -175,7 +175,7 @@ void CondAddBuff::ProcDisengageBattle() if (owner->room->GetFrameNo() - context->last_check_frameno > SERVER_FRAME_RATE * 10 && !meta->_buff_param5_int_set.empty() && context->hold_buff_list.size() > 0) { - for (size_t i = context->hold_buff_list.size() - 1; i >= 0; --i) { + for (int i = context->hold_buff_list.size() - 1; i >= 0; --i) { if (!owner->GetBuffByUniId(std::get<0>(context->hold_buff_list[i]))) { context->hold_buff_list.erase(context->hold_buff_list.begin() + i); } diff --git a/server/gameserver/mt/Buff.cc b/server/gameserver/mt/Buff.cc index 31fe63ef..ec2bc138 100644 --- a/server/gameserver/mt/Buff.cc +++ b/server/gameserver/mt/Buff.cc @@ -79,6 +79,22 @@ namespace mt _buff_param4_int_list.push_back(a8::XValue(str).GetInt()); } } + { + std::vector strings; + a8::Split(buff_param5(), strings, '|'); + for (auto& str : strings) { + _buff_param5_int_list.push_back(a8::XValue(str).GetInt()); + _buff_param5_int_set.insert(a8::XValue(str).GetInt()); + } + } + { + std::vector strings; + a8::Split(buff_param6(), strings, '|'); + for (auto& str : strings) { + _buff_param6_int_list.push_back(a8::XValue(str).GetInt()); + _buff_param6_int_set.insert(a8::XValue(str).GetInt()); + } + } { std::vector strings; a8::Split(only_spec_race(), strings, '|');