diff --git a/server/gameserver/custom_battle.cc b/server/gameserver/custom_battle.cc index 784caa73..75f43061 100644 --- a/server/gameserver/custom_battle.cc +++ b/server/gameserver/custom_battle.cc @@ -6,6 +6,7 @@ #include "netdata.h" #include "mt/Map.h" +#include "mt/Param.h" void CustomBattle::Init() { @@ -230,5 +231,25 @@ RoomMode_e CustomBattle::GetRoomMode() RoomType_e CustomBattle::GetRoomType() { - + if (IsMoba()) { + return RoomType_MidBrid; + } + if (IsCustomMode()) { + return RoomType_MidBrid; + } + if (GetRoomMode() == kPvpRankMode) { + auto rank_mode_conf = mt::Param::GetRankModeConfByHeroLv(team1_average_hero_lv_); + if (!rank_mode_conf) { + abort(); + } + return rank_mode_conf->room_type; + } else { + if (team1_average_hero_lv_ < mt::Param::s().new_room_max_level) { + return RoomType_OldBrid1; + } + if (team1_average_hero_lv_ < mt::Param::s().mid_room_max_level) { + return RoomType_OldBrid2; + } + return RoomType_OldBrid3; + } } diff --git a/server/gameserver/custom_battle.h b/server/gameserver/custom_battle.h index 6541cd5d..ba710613 100644 --- a/server/gameserver/custom_battle.h +++ b/server/gameserver/custom_battle.h @@ -54,6 +54,7 @@ class CustomBattle int node_id_ = 0; int map_id_ = 0; int start_time_ = 0; + int team1_average_hero_lv_ = 0; std::string sign_; std::shared_ptr raw_data_; std::map> uuid_hash_;