diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 454f5e12..e3d9cdd6 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -1674,20 +1674,16 @@ namespace MetaData std::vector strings; a8::Split(pb->area(), strings, '|'); for (auto& str : strings) { - std::vector strings2; - a8::Split(str, strings2, ':'); - if (strings2.size() != 3) { + MetaData::SafeArea* p = MetaMgr::Instance()->GetSafeArea(a8::XValue(str)); + if (!p) { abort(); } - area.push_back(std::make_tuple - ( - (float)a8::XValue(strings2[0]).GetDouble(), - (float)a8::XValue(strings2[1]).GetDouble(), - (int)a8::XValue(strings2[2]).GetInt() - ) - ); + area.push_back(p); } } + if (area.empty()) { + abort(); + } waves.resize(mode_time.size()); for (auto& content : *MetaMgr::Instance()->GetPveGeminiContents(pb->id())) { if (content.pb->round() <= 0 || diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index 3f233373..a1417bf1 100644 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -412,7 +412,7 @@ namespace MetaData { const metatable::PveGeminiMode* pb = nullptr; std::vector mode_time; - std::vector> area; + std::vector area; std::vector> waves; void Init(); diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 76b2ebdd..d26a26cc 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1302,6 +1302,9 @@ void Room::UpdateGasInactivePve() NotifyUiUpdate(); ClearPostBattleAutoFreeList(); OnBattleStart(); + if (IsSurvivalRoom()) { + + } } void Room::UpdateGasWaiting()