From f593386448044dd58f8e3d07ed2ee5af12b287ee Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 26 May 2020 20:25:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E6=89=8B=E7=BB=84?= =?UTF-8?q?=E9=98=9F=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/metadata.cc | 2 +- server/gameserver/room.cc | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 2a60a7d..803c585 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -230,7 +230,7 @@ namespace MetaData } } } else if (total_weight > 0) { - int rnd = rand() % total_weight; + int rnd = rand() % (total_weight + 1); for (auto& item : items) { if (std::get<3>(item) >= rnd) { for (size_t i = 0; i < std::get<0>(item).size(); ++i) { diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 6eb78d9..d79acdb 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1028,6 +1028,17 @@ void Room::CombineTeam() hum->auto_fill = true; hum->team_uuid = a8::XValue(room_uuid).GetString(); } + for (size_t i = 0; i < 4 - accountid_hash_.size(); ++i) { + for (auto& pair : human_hash_) { + Human* hum = pair.second; + if (hum->IsAndroid() && + !hum->auto_fill) { + hum->auto_fill = true; + hum->team_uuid = a8::XValue(room_uuid).GetString(); + break; + } + } + } } int first_team_id = 0;