From c388dbf87e3d4b10946b04d1f3fa53b50f634ed1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 8 Sep 2021 15:22:01 +0800 Subject: [PATCH] 1 --- server/masterserver/gsmgr.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/masterserver/gsmgr.cc b/server/masterserver/gsmgr.cc index 68fd153..e47b04e 100644 --- a/server/masterserver/gsmgr.cc +++ b/server/masterserver/gsmgr.cc @@ -198,6 +198,17 @@ GSNode* GSMgr::AllocNode(int channel) std::vector* sorted_nodes = GetSortedNodesByChannel(channel); if (sorted_nodes && !sorted_nodes->empty()) { size_t rnd = std::min((size_t)2, sorted_nodes->size()); + if (rnd >= 2) { + GSNode* n1 = sorted_nodes->at(sorted_nodes->size() - 1); + GSNode* n2 = sorted_nodes->at(sorted_nodes->size() - 2); + if (n1->online_num < 100 && n2->online_num < 100) { + if (n1->instance_id < n2->instance_id) { + return n1; + } else { + return n2; + } + } + } int idx = rand() % rnd; while (idx >= 0) { if (sorted_nodes->at(idx)->servicing) {