From fc3dbb3a523170f2221442e457104745c6788d27 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 20 Apr 2024 10:30:02 +0800 Subject: [PATCH] 1 --- server/gameserver/custom_battle.cc | 14 +++++++++----- server/gameserver/custom_battle.h | 3 ++- server/gameserver/mt/MapMode.h | 2 ++ server/gameserver/room.cc | 2 +- server/gameserver/roommgr.cc | 7 ------- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/server/gameserver/custom_battle.cc b/server/gameserver/custom_battle.cc index f8d5acb6..ad106dd3 100644 --- a/server/gameserver/custom_battle.cc +++ b/server/gameserver/custom_battle.cc @@ -57,8 +57,8 @@ void CustomBattle::ParseResult(a8::XObject& obj) parse_ok_ = false; return; } - const mt::MapMode* map_mode_meta = mt::MapMode::GetById(map_mode_); - if (!map_mode_meta || !map_mode_meta->IsOpen()) { + map_mode_meta_ = mt::MapMode::GetById(map_mode_); + if (!map_mode_meta_) { parse_ok_ = false; return; } @@ -272,7 +272,11 @@ RoomMode_e CustomBattle::GetRoomMode() if (IsMoba()) { return kMobaMode; } else { - return kPvpMode; + if (match_mode_) { + return kPvpRankMode; + } else { + return kPvpMode; + } } } @@ -381,14 +385,14 @@ void CustomBattle::GameStart() if (IsPvp()) { room = RoomMgr::Instance()->CreateRoom (self_room_type, - GetMapMode(), + GetMapModeMeta()->id(), GetMapId(), GetRoomMode(), nullptr); } else { room = RoomMgr::Instance()->CreateRoom (self_room_type, - GetMapMode(), + GetMapModeMeta()->id(), GetMapId(), GetRoomMode(), nullptr); diff --git a/server/gameserver/custom_battle.h b/server/gameserver/custom_battle.h index e84e1a9a..6c3cab9a 100644 --- a/server/gameserver/custom_battle.h +++ b/server/gameserver/custom_battle.h @@ -26,7 +26,7 @@ class CustomBattle : public std::enable_shared_from_this int GetZoneId() { return zone_id_; } int GetNodeId() { return zone_id_; } int GetMatchMode() { return match_mode_; } - int GetMapMode() { return map_mode_; } + const mt::MapMode* GetMapModeMeta() { return map_mode_meta_; } int GetMapId() { return map_id_; } RoomType_e GetRoomType(); RoomMode_e GetRoomMode(); @@ -75,6 +75,7 @@ private: int map_id_ = 0; int start_time_ = 0; int team1_average_hero_lv_ = 0; + const mt::MapMode* map_mode_meta_ = nullptr; std::string sign_; std::shared_ptr raw_data_; std::vector> team_list_; diff --git a/server/gameserver/mt/MapMode.h b/server/gameserver/mt/MapMode.h index 9534ad80..032c2d59 100644 --- a/server/gameserver/mt/MapMode.h +++ b/server/gameserver/mt/MapMode.h @@ -5,6 +5,8 @@ namespace mt { + const int kPvpRankMode = 501; + DECLARE_ID_TABLE(MapMode, mtb::MapMode, "mapMode@mapMode.json", "id") diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 80065f66..3d122995 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3783,7 +3783,7 @@ bool Room::CanJoin(std::shared_ptr p) if (map_meta_->map_id() != p->GetMapId()) { return false; } - if (GetMapModeMeta()->id() != p->GetMapMode()) { + if (GetMapModeMeta() != p->GetMapModeMeta()) { return false; } diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index c403783c..191468fb 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -512,13 +512,6 @@ void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr* hdr, const cs::CMJoin& msg, int cu return; } } - { - const mt::MapMode* map_mode_meta = mt::MapMode::GetById(p->GetMapMode()); - if (!map_mode_meta || !map_mode_meta->IsOpen()) { - RoomMgr::Instance()->JoinErrorHandle(msg, 3, socket_handle); - return; - } - } { const mt::Map* map_meta = mt::Map::GetById(p->GetMapId()); if (!map_meta || !map_meta->IsOpen()) {