diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 7145641..732ed9c 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -815,6 +815,7 @@ namespace MetaData } for (auto& str : strings) { param2_int_list.push_back(a8::XValue(str).GetInt()); + param2_int_set.insert(a8::XValue(str).GetInt()); } } { diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index 65e4428..a56c64e 100644 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -211,6 +211,7 @@ namespace MetaData int int_param5 = 0; std::vector param1_int_list; std::vector param2_int_list; + std::set param2_int_set; std::vector param3_int_list; std::vector param4_int_list; std::vector>>> batch_add_list; diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index c17430f..b291117 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -116,7 +116,7 @@ void Trigger::UseItemAction(int slot_id) (kCondBuffEatDrug, [this, slot_id] (Buff* buff, bool& stop) { - if (buff->meta->int_param2 == slot_id) { + if (buff->meta->param2_int_set.find(slot_id) != buff->meta->param2_int_set.end()) { AddBuffs(buff->meta->int_param1, buff->meta->param4_int_list); } });